diff --git a/.changeset/ten-doors-scream.md b/.changeset/ten-doors-scream.md new file mode 100644 index 0000000000..03b2b0d747 --- /dev/null +++ b/.changeset/ten-doors-scream.md @@ -0,0 +1,5 @@ +--- +"changelog": patch +--- + +Correct versioning for `SourceUnitMember` and `ContractMember` children. diff --git a/crates/solidity/inputs/language/definition/01-file-structure/02-source-unit/productions.yml b/crates/solidity/inputs/language/definition/01-file-structure/02-source-unit/productions.yml index 455f1e2d2e..bce49ad34b 100644 --- a/crates/solidity/inputs/language/definition/01-file-structure/02-source-unit/productions.yml +++ b/crates/solidity/inputs/language/definition/01-file-structure/02-source-unit/productions.yml @@ -21,29 +21,83 @@ versioned: 0.4.11: choice: + - reference: "PragmaDirective" + - reference: "ImportDirective" - reference: "ContractDefinition" + - reference: "InterfaceDefinition" - reference: "LibraryDefinition" + 0.6.0: + choice: + - reference: "PragmaDirective" + - reference: "ImportDirective" + - reference: "ContractDefinition" - reference: "InterfaceDefinition" + - reference: "LibraryDefinition" + # added" - reference: "StructDefinition" - reference: "EnumDefinition" - - reference: "ConstantDefinition" + 0.7.1: + choice: + - reference: "PragmaDirective" + - reference: "ImportDirective" + - reference: "ContractDefinition" + - reference: "InterfaceDefinition" + - reference: "LibraryDefinition" + - reference: "StructDefinition" + - reference: "EnumDefinition" + # added - reference: "FunctionDefinition" - - reference: "ErrorDefinition" + 0.7.4: + choice: + - reference: "PragmaDirective" - reference: "ImportDirective" + - reference: "ContractDefinition" + - reference: "InterfaceDefinition" + - reference: "LibraryDefinition" + - reference: "StructDefinition" + - reference: "EnumDefinition" + - reference: "FunctionDefinition" + # added + - reference: "ConstantDefinition" + 0.8.4: + choice: - reference: "PragmaDirective" - - reference: "UsingDirective" + - reference: "ImportDirective" + - reference: "ContractDefinition" + - reference: "InterfaceDefinition" + - reference: "LibraryDefinition" + - reference: "StructDefinition" + - reference: "EnumDefinition" + - reference: "FunctionDefinition" + - reference: "ConstantDefinition" + # added: + - reference: "ErrorDefinition" 0.8.8: choice: + - reference: "PragmaDirective" + - reference: "ImportDirective" - reference: "ContractDefinition" - - reference: "LibraryDefinition" - reference: "InterfaceDefinition" + - reference: "LibraryDefinition" - reference: "StructDefinition" - reference: "EnumDefinition" - - reference: "ConstantDefinition" - reference: "FunctionDefinition" + - reference: "ConstantDefinition" - reference: "ErrorDefinition" - - reference: "ImportDirective" - - reference: "PragmaDirective" - - reference: "UsingDirective" # added: - reference: "UserDefinedValueTypeDefinition" + 0.8.13: + choice: + - reference: "PragmaDirective" + - reference: "ImportDirective" + - reference: "ContractDefinition" + - reference: "InterfaceDefinition" + - reference: "LibraryDefinition" + - reference: "StructDefinition" + - reference: "EnumDefinition" + - reference: "FunctionDefinition" + - reference: "ConstantDefinition" + - reference: "ErrorDefinition" + - reference: "UserDefinedValueTypeDefinition" + # added: + - reference: "UsingDirective" diff --git a/crates/solidity/inputs/language/definition/01-file-structure/07-keywords/productions.yml b/crates/solidity/inputs/language/definition/01-file-structure/07-keywords/productions.yml index 57cf940661..98800bbb79 100644 --- a/crates/solidity/inputs/language/definition/01-file-structure/07-keywords/productions.yml +++ b/crates/solidity/inputs/language/definition/01-file-structure/07-keywords/productions.yml @@ -214,12 +214,13 @@ - name: "ErrorKeyword" kind: "Scanner" - unversioned: - trailingContext: - scanner: - terminal: "error" - notFollowedBy: - reference: "IdentifierPart" + versioned: + 0.8.4: + trailingContext: + scanner: + terminal: "error" + notFollowedBy: + reference: "IdentifierPart" - name: "EtherKeyword" kind: "Scanner" diff --git a/crates/solidity/inputs/language/definition/02-definitions/01-contracts/productions.yml b/crates/solidity/inputs/language/definition/02-definitions/01-contracts/productions.yml index f791ea8f84..0e00a9eb8c 100644 --- a/crates/solidity/inputs/language/definition/02-definitions/01-contracts/productions.yml +++ b/crates/solidity/inputs/language/definition/02-definitions/01-contracts/productions.yml @@ -78,7 +78,6 @@ - reference: "StructDefinition" - reference: "EnumDefinition" - reference: "EventDefinition" - - reference: "ErrorDefinition" - reference: "StateVariableDefinition" 0.4.22: # added: "ConstructorDefinition" @@ -91,12 +90,24 @@ - reference: "StructDefinition" - reference: "EnumDefinition" - reference: "EventDefinition" - - reference: "ErrorDefinition" - reference: "StateVariableDefinition" 0.6.0: # added: "ReceiveFunctionDefinition" # added: "FallbackFunctionDefinition" # removed: "UnnamedFunctionDefinition" + choice: + - reference: "UsingDirective" + - reference: "ConstructorDefinition" + - reference: "FunctionDefinition" + - reference: "FallbackFunctionDefinition" + - reference: "ReceiveFunctionDefinition" + - reference: "ModifierDefinition" + - reference: "StructDefinition" + - reference: "EnumDefinition" + - reference: "EventDefinition" + - reference: "StateVariableDefinition" + 0.8.4: + # added: "ErrorDefinition" choice: - reference: "UsingDirective" - reference: "ConstructorDefinition" diff --git a/crates/solidity/inputs/language/definition/02-definitions/06-constants/productions.yml b/crates/solidity/inputs/language/definition/02-definitions/06-constants/productions.yml index 56daa42298..1237b6d3b5 100644 --- a/crates/solidity/inputs/language/definition/02-definitions/06-constants/productions.yml +++ b/crates/solidity/inputs/language/definition/02-definitions/06-constants/productions.yml @@ -2,14 +2,15 @@ - name: "ConstantDefinition" kind: "Parser" - unversioned: - terminatedBy: - parser: - sequence: - - reference: "TypeName" - - reference: "ConstantKeyword" - - reference: "Identifier" - - reference: "Equal" - - reference: "Expression" - terminator: - reference: "Semicolon" + versioned: + 0.7.4: + terminatedBy: + parser: + sequence: + - reference: "TypeName" + - reference: "ConstantKeyword" + - reference: "Identifier" + - reference: "Equal" + - reference: "Expression" + terminator: + reference: "Semicolon" diff --git a/crates/solidity/inputs/language/definition/02-definitions/12-errors/productions.yml b/crates/solidity/inputs/language/definition/02-definitions/12-errors/productions.yml index 92b6f43016..a05b6e1da7 100644 --- a/crates/solidity/inputs/language/definition/02-definitions/12-errors/productions.yml +++ b/crates/solidity/inputs/language/definition/02-definitions/12-errors/productions.yml @@ -2,36 +2,39 @@ - name: "ErrorDefinition" kind: "Parser" - unversioned: - terminatedBy: - parser: - sequence: - - reference: "ErrorKeyword" - - reference: "Identifier" - - delimitedBy: - open: - reference: "OpenParen" - parser: - optional: - reference: "ErrorParametersList" - close: - reference: "CloseParen" - terminator: - reference: "Semicolon" + versioned: + 0.8.4: + terminatedBy: + parser: + sequence: + - reference: "ErrorKeyword" + - reference: "Identifier" + - delimitedBy: + open: + reference: "OpenParen" + parser: + optional: + reference: "ErrorParametersList" + close: + reference: "CloseParen" + terminator: + reference: "Semicolon" - name: "ErrorParametersList" kind: "Parser" - unversioned: - separatedBy: - separator: - reference: "Comma" - parser: - reference: "ErrorParameter" + versioned: + 0.8.4: + separatedBy: + separator: + reference: "Comma" + parser: + reference: "ErrorParameter" - name: "ErrorParameter" kind: "Parser" - unversioned: - sequence: - - reference: "TypeName" - - optional: - reference: "Identifier" + versioned: + 0.8.4: + sequence: + - reference: "TypeName" + - optional: + reference: "Identifier" diff --git a/crates/solidity/outputs/cargo/crate/src/legacy/generated/language.rs b/crates/solidity/outputs/cargo/crate/src/legacy/generated/language.rs index 4204402b4a..f5d1c829a9 100644 --- a/crates/solidity/outputs/cargo/crate/src/legacy/generated/language.rs +++ b/crates/solidity/outputs/cargo/crate/src/legacy/generated/language.rs @@ -21,9 +21,13 @@ pub struct Language { pub(crate) version_is_equal_to_or_greater_than_0_6_2: bool, pub(crate) version_is_equal_to_or_greater_than_0_6_5: bool, pub(crate) version_is_equal_to_or_greater_than_0_7_0: bool, + pub(crate) version_is_equal_to_or_greater_than_0_7_1: bool, + pub(crate) version_is_equal_to_or_greater_than_0_7_4: bool, pub(crate) version_is_equal_to_or_greater_than_0_8_0: bool, + pub(crate) version_is_equal_to_or_greater_than_0_8_13: bool, pub(crate) version_is_equal_to_or_greater_than_0_8_18: bool, pub(crate) version_is_equal_to_or_greater_than_0_8_19: bool, + pub(crate) version_is_equal_to_or_greater_than_0_8_4: bool, pub(crate) version_is_equal_to_or_greater_than_0_8_8: bool, } @@ -68,12 +72,20 @@ impl Language { <= version, version_is_equal_to_or_greater_than_0_7_0: Version::parse("0.7.0").unwrap() <= version, + version_is_equal_to_or_greater_than_0_7_1: Version::parse("0.7.1").unwrap() + <= version, + version_is_equal_to_or_greater_than_0_7_4: Version::parse("0.7.4").unwrap() + <= version, version_is_equal_to_or_greater_than_0_8_0: Version::parse("0.8.0").unwrap() <= version, + version_is_equal_to_or_greater_than_0_8_13: Version::parse("0.8.13").unwrap() + <= version, version_is_equal_to_or_greater_than_0_8_18: Version::parse("0.8.18").unwrap() <= version, version_is_equal_to_or_greater_than_0_8_19: Version::parse("0.8.19").unwrap() <= version, + version_is_equal_to_or_greater_than_0_8_4: Version::parse("0.8.4").unwrap() + <= version, version_is_equal_to_or_greater_than_0_8_8: Version::parse("0.8.8").unwrap() <= version, version, @@ -230,7 +242,7 @@ impl Language { Language::equal_greater_than.scan(self, input, TokenKind::EqualGreaterThan) } ProductionKind::ErrorKeyword => { - Language::error_keyword.scan(self, input, TokenKind::ErrorKeyword) + Language::error_keyword__sparse_dispatch.scan(self, input, TokenKind::ErrorKeyword) } ProductionKind::EtherKeyword => { Language::ether_keyword.scan(self, input, TokenKind::EtherKeyword) @@ -573,7 +585,9 @@ impl Language { ProductionKind::CatchClausesList => { Language::catch_clauses_list__sparse_dispatch.parse(self, input) } - ProductionKind::ConstantDefinition => Language::constant_definition.parse(self, input), + ProductionKind::ConstantDefinition => { + Language::constant_definition__sparse_dispatch.parse(self, input) + } ProductionKind::ConstructorAttributesList => { Language::constructor_attributes_list__sparse_dispatch.parse(self, input) } @@ -601,10 +615,14 @@ impl Language { } ProductionKind::EndOfFileTrivia => Language::end_of_file_trivia.parse(self, input), ProductionKind::EnumDefinition => Language::enum_definition.parse(self, input), - ProductionKind::ErrorDefinition => Language::error_definition.parse(self, input), - ProductionKind::ErrorParameter => Language::error_parameter.parse(self, input), + ProductionKind::ErrorDefinition => { + Language::error_definition__sparse_dispatch.parse(self, input) + } + ProductionKind::ErrorParameter => { + Language::error_parameter__sparse_dispatch.parse(self, input) + } ProductionKind::ErrorParametersList => { - Language::error_parameters_list.parse(self, input) + Language::error_parameters_list__sparse_dispatch.parse(self, input) } ProductionKind::EventDefinition => Language::event_definition.parse(self, input), ProductionKind::EventParameter => Language::event_parameter.parse(self, input), diff --git a/crates/solidity/outputs/cargo/crate/src/legacy/generated/parsers.rs b/crates/solidity/outputs/cargo/crate/src/legacy/generated/parsers.rs index 14224d4ef3..e7c3081a7e 100644 --- a/crates/solidity/outputs/cargo/crate/src/legacy/generated/parsers.rs +++ b/crates/solidity/outputs/cargo/crate/src/legacy/generated/parsers.rs @@ -850,11 +850,11 @@ impl Language { } } + // (* v0.7.4 *) // ConstantDefinition = TypeName CONSTANT_KEYWORD IDENTIFIER EQUAL Expression SEMICOLON; - #[allow(dead_code)] - #[allow(unused_assignments, unused_parens)] - pub(crate) fn constant_definition(&self, stream: &mut Stream) -> ParserResult { + #[allow(dead_code, non_snake_case)] + fn constant_definition__0_7_4(&self, stream: &mut Stream) -> ParserResult { { let mut running_result = ParserResult::r#match(vec![], vec![]); loop { @@ -906,6 +906,24 @@ impl Language { .with_kind(RuleKind::ConstantDefinition) } + #[allow(non_snake_case)] + pub(crate) fn constant_definition__sparse_dispatch( + &self, + stream: &mut Stream, + ) -> Option { + if self.version_is_equal_to_or_greater_than_0_7_4 { + Some(self.constant_definition__0_7_4(stream)) + } else { + None + } + } + + #[inline] + pub(crate) fn constant_definition(&self, stream: &mut Stream) -> ParserResult { + self.constant_definition__sparse_dispatch(stream) + .expect("Validation should have checked that references are valid between versions") + } + // (* v0.4.22 *) // «ConstructorAttribute» = ModifierInvocation // | INTERNAL_KEYWORD @@ -1228,7 +1246,6 @@ impl Language { // | StructDefinition // | EnumDefinition // | EventDefinition - // | ErrorDefinition // | StateVariableDefinition; #[allow(dead_code, non_snake_case)] @@ -1267,10 +1284,6 @@ impl Language { break; } stream.set_position(start_position); - if running_result.incorporate_choice_result(self.error_definition(stream)) { - break; - } - stream.set_position(start_position); if running_result.incorporate_choice_result(self.state_variable_definition(stream)) { break; @@ -1294,7 +1307,6 @@ impl Language { // | StructDefinition // | EnumDefinition // | EventDefinition - // | ErrorDefinition // | StateVariableDefinition; #[allow(dead_code, non_snake_case)] @@ -1337,7 +1349,75 @@ impl Language { break; } stream.set_position(start_position); - if running_result.incorporate_choice_result(self.error_definition(stream)) { + if running_result.incorporate_choice_result(self.state_variable_definition(stream)) + { + break; + } + stream.set_position(start_position); + break; + } + if let ParserResult::IncompleteMatch(incomplete_match) = &running_result { + incomplete_match.consume_stream(stream); + } + running_result + } + } + + // (* v0.6.0 *) + // «ContractMember» = UsingDirective + // | ConstructorDefinition + // | FunctionDefinition + // | FallbackFunctionDefinition + // | ReceiveFunctionDefinition + // | ModifierDefinition + // | StructDefinition + // | EnumDefinition + // | EventDefinition + // | StateVariableDefinition; + + #[allow(dead_code, non_snake_case)] + fn contract_member__0_6_0(&self, stream: &mut Stream) -> ParserResult { + { + let mut running_result = ParserResult::no_match(vec![]); + let start_position = stream.position(); + loop { + if running_result.incorporate_choice_result(self.using_directive(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.constructor_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.function_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result + .incorporate_choice_result(self.fallback_function_definition(stream)) + { + break; + } + stream.set_position(start_position); + if running_result + .incorporate_choice_result(self.receive_function_definition(stream)) + { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.modifier_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.struct_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.enum_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.event_definition(stream)) { break; } stream.set_position(start_position); @@ -1355,7 +1435,7 @@ impl Language { } } - // (* v0.6.0 *) + // (* v0.8.4 *) // «ContractMember» = UsingDirective // | ConstructorDefinition // | FunctionDefinition @@ -1369,7 +1449,7 @@ impl Language { // | StateVariableDefinition; #[allow(dead_code, non_snake_case)] - fn contract_member__0_6_0(&self, stream: &mut Stream) -> ParserResult { + fn contract_member__0_8_4(&self, stream: &mut Stream) -> ParserResult { { let mut running_result = ParserResult::no_match(vec![]); let start_position = stream.position(); @@ -1519,6 +1599,8 @@ impl Language { pub(crate) fn contract_member(&self, stream: &mut Stream) -> ParserResult { if self.version_is_equal_to_or_greater_than_0_8_8 { self.contract_member__0_8_8(stream) + } else if self.version_is_equal_to_or_greater_than_0_8_4 { + self.contract_member__0_8_4(stream) } else if self.version_is_equal_to_or_greater_than_0_6_0 { self.contract_member__0_6_0(stream) } else if self.version_is_equal_to_or_greater_than_0_4_22 { @@ -2566,11 +2648,11 @@ impl Language { } } + // (* v0.8.4 *) // ErrorDefinition = ERROR_KEYWORD IDENTIFIER OPEN_PAREN ErrorParametersList? CLOSE_PAREN SEMICOLON; - #[allow(dead_code)] - #[allow(unused_assignments, unused_parens)] - pub(crate) fn error_definition(&self, stream: &mut Stream) -> ParserResult { + #[allow(dead_code, non_snake_case)] + fn error_definition__0_8_4(&self, stream: &mut Stream) -> ParserResult { { let mut running_result = ParserResult::r#match(vec![], vec![]); loop { @@ -2641,11 +2723,29 @@ impl Language { .with_kind(RuleKind::ErrorDefinition) } + #[allow(non_snake_case)] + pub(crate) fn error_definition__sparse_dispatch( + &self, + stream: &mut Stream, + ) -> Option { + if self.version_is_equal_to_or_greater_than_0_8_4 { + Some(self.error_definition__0_8_4(stream)) + } else { + None + } + } + + #[inline] + pub(crate) fn error_definition(&self, stream: &mut Stream) -> ParserResult { + self.error_definition__sparse_dispatch(stream) + .expect("Validation should have checked that references are valid between versions") + } + + // (* v0.8.4 *) // ErrorParameter = TypeName IDENTIFIER?; - #[allow(dead_code)] - #[allow(unused_assignments, unused_parens)] - pub(crate) fn error_parameter(&self, stream: &mut Stream) -> ParserResult { + #[allow(dead_code, non_snake_case)] + fn error_parameter__0_8_4(&self, stream: &mut Stream) -> ParserResult { { let mut running_result = ParserResult::r#match(vec![], vec![]); loop { @@ -2662,11 +2762,29 @@ impl Language { .with_kind(RuleKind::ErrorParameter) } + #[allow(non_snake_case)] + pub(crate) fn error_parameter__sparse_dispatch( + &self, + stream: &mut Stream, + ) -> Option { + if self.version_is_equal_to_or_greater_than_0_8_4 { + Some(self.error_parameter__0_8_4(stream)) + } else { + None + } + } + + #[inline] + pub(crate) fn error_parameter(&self, stream: &mut Stream) -> ParserResult { + self.error_parameter__sparse_dispatch(stream) + .expect("Validation should have checked that references are valid between versions") + } + + // (* v0.8.4 *) // ErrorParametersList = ErrorParameter (COMMA ErrorParameter)*; - #[allow(dead_code)] - #[allow(unused_assignments, unused_parens)] - pub(crate) fn error_parameters_list(&self, stream: &mut Stream) -> ParserResult { + #[allow(dead_code, non_snake_case)] + fn error_parameters_list__0_8_4(&self, stream: &mut Stream) -> ParserResult { { let mut running_result = ParserResult::r#match(vec![], vec![]); loop { @@ -2702,6 +2820,24 @@ impl Language { .with_kind(RuleKind::ErrorParametersList) } + #[allow(non_snake_case)] + pub(crate) fn error_parameters_list__sparse_dispatch( + &self, + stream: &mut Stream, + ) -> Option { + if self.version_is_equal_to_or_greater_than_0_8_4 { + Some(self.error_parameters_list__0_8_4(stream)) + } else { + None + } + } + + #[inline] + pub(crate) fn error_parameters_list(&self, stream: &mut Stream) -> ParserResult { + self.error_parameters_list__sparse_dispatch(stream) + .expect("Validation should have checked that references are valid between versions") + } + // EventDefinition = EVENT_KEYWORD IDENTIFIER OPEN_PAREN EventParametersList? CLOSE_PAREN ANONYMOUS_KEYWORD? SEMICOLON; #[allow(dead_code)] @@ -7163,17 +7299,11 @@ impl Language { } // (* v0.4.11 *) - // «SourceUnitMember» = ContractDefinition - // | LibraryDefinition - // | InterfaceDefinition - // | StructDefinition - // | EnumDefinition - // | ConstantDefinition - // | FunctionDefinition - // | ErrorDefinition + // «SourceUnitMember» = PragmaDirective // | ImportDirective - // | PragmaDirective - // | UsingDirective; + // | ContractDefinition + // | InterfaceDefinition + // | LibraryDefinition; #[allow(dead_code, non_snake_case)] fn source_unit_member__0_4_11(&self, stream: &mut Stream) -> ParserResult { @@ -7181,18 +7311,70 @@ impl Language { let mut running_result = ParserResult::no_match(vec![]); let start_position = stream.position(); loop { + if running_result.incorporate_choice_result(self.pragma_directive(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.import_directive(stream)) { + break; + } + stream.set_position(start_position); if running_result.incorporate_choice_result(self.contract_definition(stream)) { break; } stream.set_position(start_position); + if running_result.incorporate_choice_result(self.interface_definition(stream)) { + break; + } + stream.set_position(start_position); if running_result.incorporate_choice_result(self.library_definition(stream)) { break; } stream.set_position(start_position); + break; + } + if let ParserResult::IncompleteMatch(incomplete_match) = &running_result { + incomplete_match.consume_stream(stream); + } + running_result + } + } + + // (* v0.6.0 *) + // «SourceUnitMember» = PragmaDirective + // | ImportDirective + // | ContractDefinition + // | InterfaceDefinition + // | LibraryDefinition + // | StructDefinition + // | EnumDefinition; + + #[allow(dead_code, non_snake_case)] + fn source_unit_member__0_6_0(&self, stream: &mut Stream) -> ParserResult { + { + let mut running_result = ParserResult::no_match(vec![]); + let start_position = stream.position(); + loop { + if running_result.incorporate_choice_result(self.pragma_directive(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.import_directive(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.contract_definition(stream)) { + break; + } + stream.set_position(start_position); if running_result.incorporate_choice_result(self.interface_definition(stream)) { break; } stream.set_position(start_position); + if running_result.incorporate_choice_result(self.library_definition(stream)) { + break; + } + stream.set_position(start_position); if running_result.incorporate_choice_result(self.struct_definition(stream)) { break; } @@ -7201,7 +7383,56 @@ impl Language { break; } stream.set_position(start_position); - if running_result.incorporate_choice_result(self.constant_definition(stream)) { + break; + } + if let ParserResult::IncompleteMatch(incomplete_match) = &running_result { + incomplete_match.consume_stream(stream); + } + running_result + } + } + + // (* v0.7.1 *) + // «SourceUnitMember» = PragmaDirective + // | ImportDirective + // | ContractDefinition + // | InterfaceDefinition + // | LibraryDefinition + // | StructDefinition + // | EnumDefinition + // | FunctionDefinition; + + #[allow(dead_code, non_snake_case)] + fn source_unit_member__0_7_1(&self, stream: &mut Stream) -> ParserResult { + { + let mut running_result = ParserResult::no_match(vec![]); + let start_position = stream.position(); + loop { + if running_result.incorporate_choice_result(self.pragma_directive(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.import_directive(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.contract_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.interface_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.library_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.struct_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.enum_definition(stream)) { break; } stream.set_position(start_position); @@ -7209,7 +7440,33 @@ impl Language { break; } stream.set_position(start_position); - if running_result.incorporate_choice_result(self.error_definition(stream)) { + break; + } + if let ParserResult::IncompleteMatch(incomplete_match) = &running_result { + incomplete_match.consume_stream(stream); + } + running_result + } + } + + // (* v0.7.4 *) + // «SourceUnitMember» = PragmaDirective + // | ImportDirective + // | ContractDefinition + // | InterfaceDefinition + // | LibraryDefinition + // | StructDefinition + // | EnumDefinition + // | FunctionDefinition + // | ConstantDefinition; + + #[allow(dead_code, non_snake_case)] + fn source_unit_member__0_7_4(&self, stream: &mut Stream) -> ParserResult { + { + let mut running_result = ParserResult::no_match(vec![]); + let start_position = stream.position(); + loop { + if running_result.incorporate_choice_result(self.pragma_directive(stream)) { break; } stream.set_position(start_position); @@ -7217,11 +7474,98 @@ impl Language { break; } stream.set_position(start_position); + if running_result.incorporate_choice_result(self.contract_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.interface_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.library_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.struct_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.enum_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.function_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.constant_definition(stream)) { + break; + } + stream.set_position(start_position); + break; + } + if let ParserResult::IncompleteMatch(incomplete_match) = &running_result { + incomplete_match.consume_stream(stream); + } + running_result + } + } + + // (* v0.8.4 *) + // «SourceUnitMember» = PragmaDirective + // | ImportDirective + // | ContractDefinition + // | InterfaceDefinition + // | LibraryDefinition + // | StructDefinition + // | EnumDefinition + // | FunctionDefinition + // | ConstantDefinition + // | ErrorDefinition; + + #[allow(dead_code, non_snake_case)] + fn source_unit_member__0_8_4(&self, stream: &mut Stream) -> ParserResult { + { + let mut running_result = ParserResult::no_match(vec![]); + let start_position = stream.position(); + loop { if running_result.incorporate_choice_result(self.pragma_directive(stream)) { break; } stream.set_position(start_position); - if running_result.incorporate_choice_result(self.using_directive(stream)) { + if running_result.incorporate_choice_result(self.import_directive(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.contract_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.interface_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.library_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.struct_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.enum_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.function_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.constant_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.error_definition(stream)) { break; } stream.set_position(start_position); @@ -7235,17 +7579,16 @@ impl Language { } // (* v0.8.8 *) - // «SourceUnitMember» = ContractDefinition - // | LibraryDefinition + // «SourceUnitMember» = PragmaDirective + // | ImportDirective + // | ContractDefinition // | InterfaceDefinition + // | LibraryDefinition // | StructDefinition // | EnumDefinition - // | ConstantDefinition // | FunctionDefinition + // | ConstantDefinition // | ErrorDefinition - // | ImportDirective - // | PragmaDirective - // | UsingDirective // | UserDefinedValueTypeDefinition; #[allow(dead_code, non_snake_case)] @@ -7254,11 +7597,15 @@ impl Language { let mut running_result = ParserResult::no_match(vec![]); let start_position = stream.position(); loop { - if running_result.incorporate_choice_result(self.contract_definition(stream)) { + if running_result.incorporate_choice_result(self.pragma_directive(stream)) { break; } stream.set_position(start_position); - if running_result.incorporate_choice_result(self.library_definition(stream)) { + if running_result.incorporate_choice_result(self.import_directive(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.contract_definition(stream)) { break; } stream.set_position(start_position); @@ -7266,6 +7613,10 @@ impl Language { break; } stream.set_position(start_position); + if running_result.incorporate_choice_result(self.library_definition(stream)) { + break; + } + stream.set_position(start_position); if running_result.incorporate_choice_result(self.struct_definition(stream)) { break; } @@ -7274,11 +7625,11 @@ impl Language { break; } stream.set_position(start_position); - if running_result.incorporate_choice_result(self.constant_definition(stream)) { + if running_result.incorporate_choice_result(self.function_definition(stream)) { break; } stream.set_position(start_position); - if running_result.incorporate_choice_result(self.function_definition(stream)) { + if running_result.incorporate_choice_result(self.constant_definition(stream)) { break; } stream.set_position(start_position); @@ -7286,15 +7637,78 @@ impl Language { break; } stream.set_position(start_position); - if running_result.incorporate_choice_result(self.import_directive(stream)) { + if running_result + .incorporate_choice_result(self.user_defined_value_type_definition(stream)) + { break; } stream.set_position(start_position); + break; + } + if let ParserResult::IncompleteMatch(incomplete_match) = &running_result { + incomplete_match.consume_stream(stream); + } + running_result + } + } + + // (* v0.8.13 *) + // «SourceUnitMember» = PragmaDirective + // | ImportDirective + // | ContractDefinition + // | InterfaceDefinition + // | LibraryDefinition + // | StructDefinition + // | EnumDefinition + // | FunctionDefinition + // | ConstantDefinition + // | ErrorDefinition + // | UserDefinedValueTypeDefinition + // | UsingDirective; + + #[allow(dead_code, non_snake_case)] + fn source_unit_member__0_8_13(&self, stream: &mut Stream) -> ParserResult { + { + let mut running_result = ParserResult::no_match(vec![]); + let start_position = stream.position(); + loop { if running_result.incorporate_choice_result(self.pragma_directive(stream)) { break; } stream.set_position(start_position); - if running_result.incorporate_choice_result(self.using_directive(stream)) { + if running_result.incorporate_choice_result(self.import_directive(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.contract_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.interface_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.library_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.struct_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.enum_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.function_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.constant_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.error_definition(stream)) { break; } stream.set_position(start_position); @@ -7304,6 +7718,10 @@ impl Language { break; } stream.set_position(start_position); + if running_result.incorporate_choice_result(self.using_directive(stream)) { + break; + } + stream.set_position(start_position); break; } if let ParserResult::IncompleteMatch(incomplete_match) = &running_result { @@ -7314,8 +7732,18 @@ impl Language { } pub(crate) fn source_unit_member(&self, stream: &mut Stream) -> ParserResult { - if self.version_is_equal_to_or_greater_than_0_8_8 { + if self.version_is_equal_to_or_greater_than_0_8_13 { + self.source_unit_member__0_8_13(stream) + } else if self.version_is_equal_to_or_greater_than_0_8_8 { self.source_unit_member__0_8_8(stream) + } else if self.version_is_equal_to_or_greater_than_0_8_4 { + self.source_unit_member__0_8_4(stream) + } else if self.version_is_equal_to_or_greater_than_0_7_4 { + self.source_unit_member__0_7_4(stream) + } else if self.version_is_equal_to_or_greater_than_0_7_1 { + self.source_unit_member__0_7_1(stream) + } else if self.version_is_equal_to_or_greater_than_0_6_0 { + self.source_unit_member__0_6_0(stream) } else { self.source_unit_member__0_4_11(stream) } diff --git a/crates/solidity/outputs/cargo/crate/src/legacy/generated/scanners.rs b/crates/solidity/outputs/cargo/crate/src/legacy/generated/scanners.rs index 304537cd09..f1fe444b4d 100644 --- a/crates/solidity/outputs/cargo/crate/src/legacy/generated/scanners.rs +++ b/crates/solidity/outputs/cargo/crate/src/legacy/generated/scanners.rs @@ -870,11 +870,11 @@ impl Language { scan_chars!(stream, '=', '>') } + // (* v0.8.4 *) // ERROR_KEYWORD = "error"; - #[allow(dead_code)] - #[allow(unused_assignments, unused_parens)] - pub(crate) fn error_keyword(&self, stream: &mut Stream) -> bool { + #[allow(dead_code, non_snake_case)] + fn error_keyword__0_8_4(&self, stream: &mut Stream) -> bool { scan_not_followed_by!( stream, scan_chars!(stream, 'e', 'r', 'r', 'o', 'r'), @@ -886,6 +886,21 @@ impl Language { ) } + #[allow(non_snake_case)] + pub(crate) fn error_keyword__sparse_dispatch(&self, stream: &mut Stream) -> Option { + if self.version_is_equal_to_or_greater_than_0_8_4 { + Some(self.error_keyword__0_8_4(stream)) + } else { + None + } + } + + #[inline] + pub(crate) fn error_keyword(&self, stream: &mut Stream) -> bool { + self.error_keyword__sparse_dispatch(stream) + .expect("Validation should have checked that references are valid between versions") + } + // «ESCAPE_SEQUENCE» = "\\" («ASCII_ESCAPE» | «HEX_BYTE_ESCAPE» | «UNICODE_ESCAPE»); #[allow(dead_code)] diff --git a/crates/solidity/outputs/cargo/crate/src/syntax/nodes/generated/production_kind.rs b/crates/solidity/outputs/cargo/crate/src/syntax/nodes/generated/production_kind.rs index c9ce5e5730..427b7541ff 100644 --- a/crates/solidity/outputs/cargo/crate/src/syntax/nodes/generated/production_kind.rs +++ b/crates/solidity/outputs/cargo/crate/src/syntax/nodes/generated/production_kind.rs @@ -303,7 +303,7 @@ pub enum ProductionKind { /// COMMA = ","; /// ``` Comma, - /// ## Unversioned + /// ## v0.7.4 /// /// ```ebnf /// ConstantDefinition = TypeName CONSTANT_KEYWORD IDENTIFIER EQUAL Expression SEMICOLON; @@ -495,25 +495,25 @@ pub enum ProductionKind { /// EQUAL_GREATER_THAN = "=>"; /// ``` EqualGreaterThan, - /// ## Unversioned + /// ## v0.8.4 /// /// ```ebnf /// ErrorDefinition = ERROR_KEYWORD IDENTIFIER OPEN_PAREN ErrorParametersList? CLOSE_PAREN SEMICOLON; /// ``` ErrorDefinition, - /// ## Unversioned + /// ## v0.8.4 /// /// ```ebnf /// ERROR_KEYWORD = "error"; /// ``` ErrorKeyword, - /// ## Unversioned + /// ## v0.8.4 /// /// ```ebnf /// ErrorParameter = TypeName IDENTIFIER?; /// ``` ErrorParameter, - /// ## Unversioned + /// ## v0.8.4 /// /// ```ebnf /// ErrorParametersList = ErrorParameter (COMMA ErrorParameter)*; diff --git a/crates/solidity/outputs/cargo/crate/src/syntax/nodes/generated/rule_kind.rs b/crates/solidity/outputs/cargo/crate/src/syntax/nodes/generated/rule_kind.rs index 9209ec4ed5..d0a93f205a 100644 --- a/crates/solidity/outputs/cargo/crate/src/syntax/nodes/generated/rule_kind.rs +++ b/crates/solidity/outputs/cargo/crate/src/syntax/nodes/generated/rule_kind.rs @@ -156,7 +156,7 @@ pub enum RuleKind { /// ConditionalExpression = Expression «ConditionalOperator» (* Unary Operator, Postfix *); /// ``` ConditionalExpression, - /// ## Unversioned + /// ## v0.7.4 /// /// ```ebnf /// ConstantDefinition = TypeName CONSTANT_KEYWORD IDENTIFIER EQUAL Expression SEMICOLON; @@ -246,19 +246,19 @@ pub enum RuleKind { /// EnumDefinition = ENUM_KEYWORD IDENTIFIER OPEN_BRACE IdentifiersList? CLOSE_BRACE; /// ``` EnumDefinition, - /// ## Unversioned + /// ## v0.8.4 /// /// ```ebnf /// ErrorDefinition = ERROR_KEYWORD IDENTIFIER OPEN_PAREN ErrorParametersList? CLOSE_PAREN SEMICOLON; /// ``` ErrorDefinition, - /// ## Unversioned + /// ## v0.8.4 /// /// ```ebnf /// ErrorParameter = TypeName IDENTIFIER?; /// ``` ErrorParameter, - /// ## Unversioned + /// ## v0.8.4 /// /// ```ebnf /// ErrorParametersList = ErrorParameter (COMMA ErrorParameter)*; diff --git a/crates/solidity/outputs/cargo/crate/src/syntax/nodes/generated/token_kind.rs b/crates/solidity/outputs/cargo/crate/src/syntax/nodes/generated/token_kind.rs index 7bfa40ec31..133a6c2d63 100644 --- a/crates/solidity/outputs/cargo/crate/src/syntax/nodes/generated/token_kind.rs +++ b/crates/solidity/outputs/cargo/crate/src/syntax/nodes/generated/token_kind.rs @@ -329,7 +329,7 @@ pub enum TokenKind { /// EQUAL_GREATER_THAN = "=>"; /// ``` EqualGreaterThan, - /// ## Unversioned + /// ## v0.8.4 /// /// ```ebnf /// ERROR_KEYWORD = "error"; diff --git a/crates/solidity/outputs/cargo/tests/src/cst_output/generated/ConstantDefinition.rs b/crates/solidity/outputs/cargo/tests/src/cst_output/generated/ConstantDefinition.rs new file mode 100644 index 0000000000..b51957850e --- /dev/null +++ b/crates/solidity/outputs/cargo/tests/src/cst_output/generated/ConstantDefinition.rs @@ -0,0 +1,9 @@ +// This file is generated automatically by infrastructure scripts. Please don't edit by hand. + +use crate::cst_output::runner::run; +use anyhow::Result; + +#[test] +fn int() -> Result<()> { + return run("ConstantDefinition", "int"); +} diff --git a/crates/solidity/outputs/cargo/tests/src/cst_output/generated/ErrorDefinition.rs b/crates/solidity/outputs/cargo/tests/src/cst_output/generated/ErrorDefinition.rs new file mode 100644 index 0000000000..ef08721ce3 --- /dev/null +++ b/crates/solidity/outputs/cargo/tests/src/cst_output/generated/ErrorDefinition.rs @@ -0,0 +1,9 @@ +// This file is generated automatically by infrastructure scripts. Please don't edit by hand. + +use crate::cst_output::runner::run; +use anyhow::Result; + +#[test] +fn top_level() -> Result<()> { + return run("ErrorDefinition", "top_level"); +} diff --git a/crates/solidity/outputs/cargo/tests/src/cst_output/generated/SourceUnit.rs b/crates/solidity/outputs/cargo/tests/src/cst_output/generated/SourceUnit.rs index 69e7db61d2..52d8a2fae0 100644 --- a/crates/solidity/outputs/cargo/tests/src/cst_output/generated/SourceUnit.rs +++ b/crates/solidity/outputs/cargo/tests/src/cst_output/generated/SourceUnit.rs @@ -23,6 +23,11 @@ fn partial_definition() -> Result<()> { return run("SourceUnit", "partial_definition"); } +#[test] +fn top_level_function() -> Result<()> { + return run("SourceUnit", "top_level_function"); +} + #[test] fn trailing_trivia() -> Result<()> { return run("SourceUnit", "trailing_trivia"); diff --git a/crates/solidity/outputs/cargo/tests/src/cst_output/generated/UserDefinedValueTypeDefinition.rs b/crates/solidity/outputs/cargo/tests/src/cst_output/generated/UserDefinedValueTypeDefinition.rs new file mode 100644 index 0000000000..df9b364b08 --- /dev/null +++ b/crates/solidity/outputs/cargo/tests/src/cst_output/generated/UserDefinedValueTypeDefinition.rs @@ -0,0 +1,9 @@ +// This file is generated automatically by infrastructure scripts. Please don't edit by hand. + +use crate::cst_output::runner::run; +use anyhow::Result; + +#[test] +fn bool() -> Result<()> { + return run("UserDefinedValueTypeDefinition", "bool"); +} diff --git a/crates/solidity/outputs/cargo/tests/src/cst_output/generated/mod.rs b/crates/solidity/outputs/cargo/tests/src/cst_output/generated/mod.rs index e336d870b8..615e0c43f2 100644 --- a/crates/solidity/outputs/cargo/tests/src/cst_output/generated/mod.rs +++ b/crates/solidity/outputs/cargo/tests/src/cst_output/generated/mod.rs @@ -5,6 +5,8 @@ mod AsciiStringLiteralsList; #[allow(non_snake_case)] mod Block; #[allow(non_snake_case)] +mod ConstantDefinition; +#[allow(non_snake_case)] mod ConstructorDefinition; #[allow(non_snake_case)] mod ContractDefinition; @@ -17,6 +19,8 @@ mod DeleteStatement; #[allow(non_snake_case)] mod EnumDefinition; #[allow(non_snake_case)] +mod ErrorDefinition; +#[allow(non_snake_case)] mod Expression; #[allow(non_snake_case)] mod FallbackFunctionDefinition; @@ -65,6 +69,8 @@ mod UnicodeStringLiteralsList; #[allow(non_snake_case)] mod UnsignedIntegerType; #[allow(non_snake_case)] +mod UserDefinedValueTypeDefinition; +#[allow(non_snake_case)] mod UsingDirective; #[allow(non_snake_case)] mod UsingDirectiveSymbol; @@ -77,7 +83,7 @@ mod YulExpression; #[allow(non_snake_case)] mod YulStatement; -pub const VERSION_BREAKS: [&str; 14] = [ +pub const VERSION_BREAKS: [&str; 18] = [ "0.4.11", "0.4.21", "0.4.22", "0.5.0", "0.5.3", "0.6.0", "0.6.2", "0.6.5", "0.6.11", "0.7.0", - "0.8.0", "0.8.8", "0.8.18", "0.8.19", + "0.7.1", "0.7.4", "0.8.0", "0.8.4", "0.8.8", "0.8.13", "0.8.18", "0.8.19", ]; diff --git a/crates/solidity/outputs/npm/crate/src/legacy/generated/language.rs b/crates/solidity/outputs/npm/crate/src/legacy/generated/language.rs index 9bbf4710d4..5ec2ac2e87 100644 --- a/crates/solidity/outputs/npm/crate/src/legacy/generated/language.rs +++ b/crates/solidity/outputs/npm/crate/src/legacy/generated/language.rs @@ -21,9 +21,13 @@ pub struct Language { pub(crate) version_is_equal_to_or_greater_than_0_6_2: bool, pub(crate) version_is_equal_to_or_greater_than_0_6_5: bool, pub(crate) version_is_equal_to_or_greater_than_0_7_0: bool, + pub(crate) version_is_equal_to_or_greater_than_0_7_1: bool, + pub(crate) version_is_equal_to_or_greater_than_0_7_4: bool, pub(crate) version_is_equal_to_or_greater_than_0_8_0: bool, + pub(crate) version_is_equal_to_or_greater_than_0_8_13: bool, pub(crate) version_is_equal_to_or_greater_than_0_8_18: bool, pub(crate) version_is_equal_to_or_greater_than_0_8_19: bool, + pub(crate) version_is_equal_to_or_greater_than_0_8_4: bool, pub(crate) version_is_equal_to_or_greater_than_0_8_8: bool, } @@ -83,12 +87,20 @@ impl Language { <= version, version_is_equal_to_or_greater_than_0_7_0: Version::parse("0.7.0").unwrap() <= version, + version_is_equal_to_or_greater_than_0_7_1: Version::parse("0.7.1").unwrap() + <= version, + version_is_equal_to_or_greater_than_0_7_4: Version::parse("0.7.4").unwrap() + <= version, version_is_equal_to_or_greater_than_0_8_0: Version::parse("0.8.0").unwrap() <= version, + version_is_equal_to_or_greater_than_0_8_13: Version::parse("0.8.13").unwrap() + <= version, version_is_equal_to_or_greater_than_0_8_18: Version::parse("0.8.18").unwrap() <= version, version_is_equal_to_or_greater_than_0_8_19: Version::parse("0.8.19").unwrap() <= version, + version_is_equal_to_or_greater_than_0_8_4: Version::parse("0.8.4").unwrap() + <= version, version_is_equal_to_or_greater_than_0_8_8: Version::parse("0.8.8").unwrap() <= version, version, @@ -246,7 +258,7 @@ impl Language { Language::equal_greater_than.scan(self, input, TokenKind::EqualGreaterThan) } ProductionKind::ErrorKeyword => { - Language::error_keyword.scan(self, input, TokenKind::ErrorKeyword) + Language::error_keyword__sparse_dispatch.scan(self, input, TokenKind::ErrorKeyword) } ProductionKind::EtherKeyword => { Language::ether_keyword.scan(self, input, TokenKind::EtherKeyword) @@ -589,7 +601,9 @@ impl Language { ProductionKind::CatchClausesList => { Language::catch_clauses_list__sparse_dispatch.parse(self, input) } - ProductionKind::ConstantDefinition => Language::constant_definition.parse(self, input), + ProductionKind::ConstantDefinition => { + Language::constant_definition__sparse_dispatch.parse(self, input) + } ProductionKind::ConstructorAttributesList => { Language::constructor_attributes_list__sparse_dispatch.parse(self, input) } @@ -617,10 +631,14 @@ impl Language { } ProductionKind::EndOfFileTrivia => Language::end_of_file_trivia.parse(self, input), ProductionKind::EnumDefinition => Language::enum_definition.parse(self, input), - ProductionKind::ErrorDefinition => Language::error_definition.parse(self, input), - ProductionKind::ErrorParameter => Language::error_parameter.parse(self, input), + ProductionKind::ErrorDefinition => { + Language::error_definition__sparse_dispatch.parse(self, input) + } + ProductionKind::ErrorParameter => { + Language::error_parameter__sparse_dispatch.parse(self, input) + } ProductionKind::ErrorParametersList => { - Language::error_parameters_list.parse(self, input) + Language::error_parameters_list__sparse_dispatch.parse(self, input) } ProductionKind::EventDefinition => Language::event_definition.parse(self, input), ProductionKind::EventParameter => Language::event_parameter.parse(self, input), diff --git a/crates/solidity/outputs/npm/crate/src/legacy/generated/parsers.rs b/crates/solidity/outputs/npm/crate/src/legacy/generated/parsers.rs index 14224d4ef3..e7c3081a7e 100644 --- a/crates/solidity/outputs/npm/crate/src/legacy/generated/parsers.rs +++ b/crates/solidity/outputs/npm/crate/src/legacy/generated/parsers.rs @@ -850,11 +850,11 @@ impl Language { } } + // (* v0.7.4 *) // ConstantDefinition = TypeName CONSTANT_KEYWORD IDENTIFIER EQUAL Expression SEMICOLON; - #[allow(dead_code)] - #[allow(unused_assignments, unused_parens)] - pub(crate) fn constant_definition(&self, stream: &mut Stream) -> ParserResult { + #[allow(dead_code, non_snake_case)] + fn constant_definition__0_7_4(&self, stream: &mut Stream) -> ParserResult { { let mut running_result = ParserResult::r#match(vec![], vec![]); loop { @@ -906,6 +906,24 @@ impl Language { .with_kind(RuleKind::ConstantDefinition) } + #[allow(non_snake_case)] + pub(crate) fn constant_definition__sparse_dispatch( + &self, + stream: &mut Stream, + ) -> Option { + if self.version_is_equal_to_or_greater_than_0_7_4 { + Some(self.constant_definition__0_7_4(stream)) + } else { + None + } + } + + #[inline] + pub(crate) fn constant_definition(&self, stream: &mut Stream) -> ParserResult { + self.constant_definition__sparse_dispatch(stream) + .expect("Validation should have checked that references are valid between versions") + } + // (* v0.4.22 *) // «ConstructorAttribute» = ModifierInvocation // | INTERNAL_KEYWORD @@ -1228,7 +1246,6 @@ impl Language { // | StructDefinition // | EnumDefinition // | EventDefinition - // | ErrorDefinition // | StateVariableDefinition; #[allow(dead_code, non_snake_case)] @@ -1267,10 +1284,6 @@ impl Language { break; } stream.set_position(start_position); - if running_result.incorporate_choice_result(self.error_definition(stream)) { - break; - } - stream.set_position(start_position); if running_result.incorporate_choice_result(self.state_variable_definition(stream)) { break; @@ -1294,7 +1307,6 @@ impl Language { // | StructDefinition // | EnumDefinition // | EventDefinition - // | ErrorDefinition // | StateVariableDefinition; #[allow(dead_code, non_snake_case)] @@ -1337,7 +1349,75 @@ impl Language { break; } stream.set_position(start_position); - if running_result.incorporate_choice_result(self.error_definition(stream)) { + if running_result.incorporate_choice_result(self.state_variable_definition(stream)) + { + break; + } + stream.set_position(start_position); + break; + } + if let ParserResult::IncompleteMatch(incomplete_match) = &running_result { + incomplete_match.consume_stream(stream); + } + running_result + } + } + + // (* v0.6.0 *) + // «ContractMember» = UsingDirective + // | ConstructorDefinition + // | FunctionDefinition + // | FallbackFunctionDefinition + // | ReceiveFunctionDefinition + // | ModifierDefinition + // | StructDefinition + // | EnumDefinition + // | EventDefinition + // | StateVariableDefinition; + + #[allow(dead_code, non_snake_case)] + fn contract_member__0_6_0(&self, stream: &mut Stream) -> ParserResult { + { + let mut running_result = ParserResult::no_match(vec![]); + let start_position = stream.position(); + loop { + if running_result.incorporate_choice_result(self.using_directive(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.constructor_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.function_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result + .incorporate_choice_result(self.fallback_function_definition(stream)) + { + break; + } + stream.set_position(start_position); + if running_result + .incorporate_choice_result(self.receive_function_definition(stream)) + { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.modifier_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.struct_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.enum_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.event_definition(stream)) { break; } stream.set_position(start_position); @@ -1355,7 +1435,7 @@ impl Language { } } - // (* v0.6.0 *) + // (* v0.8.4 *) // «ContractMember» = UsingDirective // | ConstructorDefinition // | FunctionDefinition @@ -1369,7 +1449,7 @@ impl Language { // | StateVariableDefinition; #[allow(dead_code, non_snake_case)] - fn contract_member__0_6_0(&self, stream: &mut Stream) -> ParserResult { + fn contract_member__0_8_4(&self, stream: &mut Stream) -> ParserResult { { let mut running_result = ParserResult::no_match(vec![]); let start_position = stream.position(); @@ -1519,6 +1599,8 @@ impl Language { pub(crate) fn contract_member(&self, stream: &mut Stream) -> ParserResult { if self.version_is_equal_to_or_greater_than_0_8_8 { self.contract_member__0_8_8(stream) + } else if self.version_is_equal_to_or_greater_than_0_8_4 { + self.contract_member__0_8_4(stream) } else if self.version_is_equal_to_or_greater_than_0_6_0 { self.contract_member__0_6_0(stream) } else if self.version_is_equal_to_or_greater_than_0_4_22 { @@ -2566,11 +2648,11 @@ impl Language { } } + // (* v0.8.4 *) // ErrorDefinition = ERROR_KEYWORD IDENTIFIER OPEN_PAREN ErrorParametersList? CLOSE_PAREN SEMICOLON; - #[allow(dead_code)] - #[allow(unused_assignments, unused_parens)] - pub(crate) fn error_definition(&self, stream: &mut Stream) -> ParserResult { + #[allow(dead_code, non_snake_case)] + fn error_definition__0_8_4(&self, stream: &mut Stream) -> ParserResult { { let mut running_result = ParserResult::r#match(vec![], vec![]); loop { @@ -2641,11 +2723,29 @@ impl Language { .with_kind(RuleKind::ErrorDefinition) } + #[allow(non_snake_case)] + pub(crate) fn error_definition__sparse_dispatch( + &self, + stream: &mut Stream, + ) -> Option { + if self.version_is_equal_to_or_greater_than_0_8_4 { + Some(self.error_definition__0_8_4(stream)) + } else { + None + } + } + + #[inline] + pub(crate) fn error_definition(&self, stream: &mut Stream) -> ParserResult { + self.error_definition__sparse_dispatch(stream) + .expect("Validation should have checked that references are valid between versions") + } + + // (* v0.8.4 *) // ErrorParameter = TypeName IDENTIFIER?; - #[allow(dead_code)] - #[allow(unused_assignments, unused_parens)] - pub(crate) fn error_parameter(&self, stream: &mut Stream) -> ParserResult { + #[allow(dead_code, non_snake_case)] + fn error_parameter__0_8_4(&self, stream: &mut Stream) -> ParserResult { { let mut running_result = ParserResult::r#match(vec![], vec![]); loop { @@ -2662,11 +2762,29 @@ impl Language { .with_kind(RuleKind::ErrorParameter) } + #[allow(non_snake_case)] + pub(crate) fn error_parameter__sparse_dispatch( + &self, + stream: &mut Stream, + ) -> Option { + if self.version_is_equal_to_or_greater_than_0_8_4 { + Some(self.error_parameter__0_8_4(stream)) + } else { + None + } + } + + #[inline] + pub(crate) fn error_parameter(&self, stream: &mut Stream) -> ParserResult { + self.error_parameter__sparse_dispatch(stream) + .expect("Validation should have checked that references are valid between versions") + } + + // (* v0.8.4 *) // ErrorParametersList = ErrorParameter (COMMA ErrorParameter)*; - #[allow(dead_code)] - #[allow(unused_assignments, unused_parens)] - pub(crate) fn error_parameters_list(&self, stream: &mut Stream) -> ParserResult { + #[allow(dead_code, non_snake_case)] + fn error_parameters_list__0_8_4(&self, stream: &mut Stream) -> ParserResult { { let mut running_result = ParserResult::r#match(vec![], vec![]); loop { @@ -2702,6 +2820,24 @@ impl Language { .with_kind(RuleKind::ErrorParametersList) } + #[allow(non_snake_case)] + pub(crate) fn error_parameters_list__sparse_dispatch( + &self, + stream: &mut Stream, + ) -> Option { + if self.version_is_equal_to_or_greater_than_0_8_4 { + Some(self.error_parameters_list__0_8_4(stream)) + } else { + None + } + } + + #[inline] + pub(crate) fn error_parameters_list(&self, stream: &mut Stream) -> ParserResult { + self.error_parameters_list__sparse_dispatch(stream) + .expect("Validation should have checked that references are valid between versions") + } + // EventDefinition = EVENT_KEYWORD IDENTIFIER OPEN_PAREN EventParametersList? CLOSE_PAREN ANONYMOUS_KEYWORD? SEMICOLON; #[allow(dead_code)] @@ -7163,17 +7299,11 @@ impl Language { } // (* v0.4.11 *) - // «SourceUnitMember» = ContractDefinition - // | LibraryDefinition - // | InterfaceDefinition - // | StructDefinition - // | EnumDefinition - // | ConstantDefinition - // | FunctionDefinition - // | ErrorDefinition + // «SourceUnitMember» = PragmaDirective // | ImportDirective - // | PragmaDirective - // | UsingDirective; + // | ContractDefinition + // | InterfaceDefinition + // | LibraryDefinition; #[allow(dead_code, non_snake_case)] fn source_unit_member__0_4_11(&self, stream: &mut Stream) -> ParserResult { @@ -7181,18 +7311,70 @@ impl Language { let mut running_result = ParserResult::no_match(vec![]); let start_position = stream.position(); loop { + if running_result.incorporate_choice_result(self.pragma_directive(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.import_directive(stream)) { + break; + } + stream.set_position(start_position); if running_result.incorporate_choice_result(self.contract_definition(stream)) { break; } stream.set_position(start_position); + if running_result.incorporate_choice_result(self.interface_definition(stream)) { + break; + } + stream.set_position(start_position); if running_result.incorporate_choice_result(self.library_definition(stream)) { break; } stream.set_position(start_position); + break; + } + if let ParserResult::IncompleteMatch(incomplete_match) = &running_result { + incomplete_match.consume_stream(stream); + } + running_result + } + } + + // (* v0.6.0 *) + // «SourceUnitMember» = PragmaDirective + // | ImportDirective + // | ContractDefinition + // | InterfaceDefinition + // | LibraryDefinition + // | StructDefinition + // | EnumDefinition; + + #[allow(dead_code, non_snake_case)] + fn source_unit_member__0_6_0(&self, stream: &mut Stream) -> ParserResult { + { + let mut running_result = ParserResult::no_match(vec![]); + let start_position = stream.position(); + loop { + if running_result.incorporate_choice_result(self.pragma_directive(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.import_directive(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.contract_definition(stream)) { + break; + } + stream.set_position(start_position); if running_result.incorporate_choice_result(self.interface_definition(stream)) { break; } stream.set_position(start_position); + if running_result.incorporate_choice_result(self.library_definition(stream)) { + break; + } + stream.set_position(start_position); if running_result.incorporate_choice_result(self.struct_definition(stream)) { break; } @@ -7201,7 +7383,56 @@ impl Language { break; } stream.set_position(start_position); - if running_result.incorporate_choice_result(self.constant_definition(stream)) { + break; + } + if let ParserResult::IncompleteMatch(incomplete_match) = &running_result { + incomplete_match.consume_stream(stream); + } + running_result + } + } + + // (* v0.7.1 *) + // «SourceUnitMember» = PragmaDirective + // | ImportDirective + // | ContractDefinition + // | InterfaceDefinition + // | LibraryDefinition + // | StructDefinition + // | EnumDefinition + // | FunctionDefinition; + + #[allow(dead_code, non_snake_case)] + fn source_unit_member__0_7_1(&self, stream: &mut Stream) -> ParserResult { + { + let mut running_result = ParserResult::no_match(vec![]); + let start_position = stream.position(); + loop { + if running_result.incorporate_choice_result(self.pragma_directive(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.import_directive(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.contract_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.interface_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.library_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.struct_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.enum_definition(stream)) { break; } stream.set_position(start_position); @@ -7209,7 +7440,33 @@ impl Language { break; } stream.set_position(start_position); - if running_result.incorporate_choice_result(self.error_definition(stream)) { + break; + } + if let ParserResult::IncompleteMatch(incomplete_match) = &running_result { + incomplete_match.consume_stream(stream); + } + running_result + } + } + + // (* v0.7.4 *) + // «SourceUnitMember» = PragmaDirective + // | ImportDirective + // | ContractDefinition + // | InterfaceDefinition + // | LibraryDefinition + // | StructDefinition + // | EnumDefinition + // | FunctionDefinition + // | ConstantDefinition; + + #[allow(dead_code, non_snake_case)] + fn source_unit_member__0_7_4(&self, stream: &mut Stream) -> ParserResult { + { + let mut running_result = ParserResult::no_match(vec![]); + let start_position = stream.position(); + loop { + if running_result.incorporate_choice_result(self.pragma_directive(stream)) { break; } stream.set_position(start_position); @@ -7217,11 +7474,98 @@ impl Language { break; } stream.set_position(start_position); + if running_result.incorporate_choice_result(self.contract_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.interface_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.library_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.struct_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.enum_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.function_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.constant_definition(stream)) { + break; + } + stream.set_position(start_position); + break; + } + if let ParserResult::IncompleteMatch(incomplete_match) = &running_result { + incomplete_match.consume_stream(stream); + } + running_result + } + } + + // (* v0.8.4 *) + // «SourceUnitMember» = PragmaDirective + // | ImportDirective + // | ContractDefinition + // | InterfaceDefinition + // | LibraryDefinition + // | StructDefinition + // | EnumDefinition + // | FunctionDefinition + // | ConstantDefinition + // | ErrorDefinition; + + #[allow(dead_code, non_snake_case)] + fn source_unit_member__0_8_4(&self, stream: &mut Stream) -> ParserResult { + { + let mut running_result = ParserResult::no_match(vec![]); + let start_position = stream.position(); + loop { if running_result.incorporate_choice_result(self.pragma_directive(stream)) { break; } stream.set_position(start_position); - if running_result.incorporate_choice_result(self.using_directive(stream)) { + if running_result.incorporate_choice_result(self.import_directive(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.contract_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.interface_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.library_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.struct_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.enum_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.function_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.constant_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.error_definition(stream)) { break; } stream.set_position(start_position); @@ -7235,17 +7579,16 @@ impl Language { } // (* v0.8.8 *) - // «SourceUnitMember» = ContractDefinition - // | LibraryDefinition + // «SourceUnitMember» = PragmaDirective + // | ImportDirective + // | ContractDefinition // | InterfaceDefinition + // | LibraryDefinition // | StructDefinition // | EnumDefinition - // | ConstantDefinition // | FunctionDefinition + // | ConstantDefinition // | ErrorDefinition - // | ImportDirective - // | PragmaDirective - // | UsingDirective // | UserDefinedValueTypeDefinition; #[allow(dead_code, non_snake_case)] @@ -7254,11 +7597,15 @@ impl Language { let mut running_result = ParserResult::no_match(vec![]); let start_position = stream.position(); loop { - if running_result.incorporate_choice_result(self.contract_definition(stream)) { + if running_result.incorporate_choice_result(self.pragma_directive(stream)) { break; } stream.set_position(start_position); - if running_result.incorporate_choice_result(self.library_definition(stream)) { + if running_result.incorporate_choice_result(self.import_directive(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.contract_definition(stream)) { break; } stream.set_position(start_position); @@ -7266,6 +7613,10 @@ impl Language { break; } stream.set_position(start_position); + if running_result.incorporate_choice_result(self.library_definition(stream)) { + break; + } + stream.set_position(start_position); if running_result.incorporate_choice_result(self.struct_definition(stream)) { break; } @@ -7274,11 +7625,11 @@ impl Language { break; } stream.set_position(start_position); - if running_result.incorporate_choice_result(self.constant_definition(stream)) { + if running_result.incorporate_choice_result(self.function_definition(stream)) { break; } stream.set_position(start_position); - if running_result.incorporate_choice_result(self.function_definition(stream)) { + if running_result.incorporate_choice_result(self.constant_definition(stream)) { break; } stream.set_position(start_position); @@ -7286,15 +7637,78 @@ impl Language { break; } stream.set_position(start_position); - if running_result.incorporate_choice_result(self.import_directive(stream)) { + if running_result + .incorporate_choice_result(self.user_defined_value_type_definition(stream)) + { break; } stream.set_position(start_position); + break; + } + if let ParserResult::IncompleteMatch(incomplete_match) = &running_result { + incomplete_match.consume_stream(stream); + } + running_result + } + } + + // (* v0.8.13 *) + // «SourceUnitMember» = PragmaDirective + // | ImportDirective + // | ContractDefinition + // | InterfaceDefinition + // | LibraryDefinition + // | StructDefinition + // | EnumDefinition + // | FunctionDefinition + // | ConstantDefinition + // | ErrorDefinition + // | UserDefinedValueTypeDefinition + // | UsingDirective; + + #[allow(dead_code, non_snake_case)] + fn source_unit_member__0_8_13(&self, stream: &mut Stream) -> ParserResult { + { + let mut running_result = ParserResult::no_match(vec![]); + let start_position = stream.position(); + loop { if running_result.incorporate_choice_result(self.pragma_directive(stream)) { break; } stream.set_position(start_position); - if running_result.incorporate_choice_result(self.using_directive(stream)) { + if running_result.incorporate_choice_result(self.import_directive(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.contract_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.interface_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.library_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.struct_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.enum_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.function_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.constant_definition(stream)) { + break; + } + stream.set_position(start_position); + if running_result.incorporate_choice_result(self.error_definition(stream)) { break; } stream.set_position(start_position); @@ -7304,6 +7718,10 @@ impl Language { break; } stream.set_position(start_position); + if running_result.incorporate_choice_result(self.using_directive(stream)) { + break; + } + stream.set_position(start_position); break; } if let ParserResult::IncompleteMatch(incomplete_match) = &running_result { @@ -7314,8 +7732,18 @@ impl Language { } pub(crate) fn source_unit_member(&self, stream: &mut Stream) -> ParserResult { - if self.version_is_equal_to_or_greater_than_0_8_8 { + if self.version_is_equal_to_or_greater_than_0_8_13 { + self.source_unit_member__0_8_13(stream) + } else if self.version_is_equal_to_or_greater_than_0_8_8 { self.source_unit_member__0_8_8(stream) + } else if self.version_is_equal_to_or_greater_than_0_8_4 { + self.source_unit_member__0_8_4(stream) + } else if self.version_is_equal_to_or_greater_than_0_7_4 { + self.source_unit_member__0_7_4(stream) + } else if self.version_is_equal_to_or_greater_than_0_7_1 { + self.source_unit_member__0_7_1(stream) + } else if self.version_is_equal_to_or_greater_than_0_6_0 { + self.source_unit_member__0_6_0(stream) } else { self.source_unit_member__0_4_11(stream) } diff --git a/crates/solidity/outputs/npm/crate/src/legacy/generated/scanners.rs b/crates/solidity/outputs/npm/crate/src/legacy/generated/scanners.rs index 304537cd09..f1fe444b4d 100644 --- a/crates/solidity/outputs/npm/crate/src/legacy/generated/scanners.rs +++ b/crates/solidity/outputs/npm/crate/src/legacy/generated/scanners.rs @@ -870,11 +870,11 @@ impl Language { scan_chars!(stream, '=', '>') } + // (* v0.8.4 *) // ERROR_KEYWORD = "error"; - #[allow(dead_code)] - #[allow(unused_assignments, unused_parens)] - pub(crate) fn error_keyword(&self, stream: &mut Stream) -> bool { + #[allow(dead_code, non_snake_case)] + fn error_keyword__0_8_4(&self, stream: &mut Stream) -> bool { scan_not_followed_by!( stream, scan_chars!(stream, 'e', 'r', 'r', 'o', 'r'), @@ -886,6 +886,21 @@ impl Language { ) } + #[allow(non_snake_case)] + pub(crate) fn error_keyword__sparse_dispatch(&self, stream: &mut Stream) -> Option { + if self.version_is_equal_to_or_greater_than_0_8_4 { + Some(self.error_keyword__0_8_4(stream)) + } else { + None + } + } + + #[inline] + pub(crate) fn error_keyword(&self, stream: &mut Stream) -> bool { + self.error_keyword__sparse_dispatch(stream) + .expect("Validation should have checked that references are valid between versions") + } + // «ESCAPE_SEQUENCE» = "\\" («ASCII_ESCAPE» | «HEX_BYTE_ESCAPE» | «UNICODE_ESCAPE»); #[allow(dead_code)] diff --git a/crates/solidity/outputs/npm/package/src/generated/index.d.ts b/crates/solidity/outputs/npm/package/src/generated/index.d.ts index 2e4d14ce63..43e10b712d 100644 --- a/crates/solidity/outputs/npm/package/src/generated/index.d.ts +++ b/crates/solidity/outputs/npm/package/src/generated/index.d.ts @@ -442,7 +442,7 @@ export namespace syntax$nodes { */ Comma = "Comma", /** - * ## Unversioned + * ## v0.7.4 * * ```ebnf * ConstantDefinition = TypeName CONSTANT_KEYWORD IDENTIFIER EQUAL Expression SEMICOLON; @@ -696,7 +696,7 @@ export namespace syntax$nodes { */ EqualGreaterThan = "EqualGreaterThan", /** - * ## Unversioned + * ## v0.8.4 * * ```ebnf * ErrorDefinition = ERROR_KEYWORD IDENTIFIER OPEN_PAREN ErrorParametersList? CLOSE_PAREN SEMICOLON; @@ -704,7 +704,7 @@ export namespace syntax$nodes { */ ErrorDefinition = "ErrorDefinition", /** - * ## Unversioned + * ## v0.8.4 * * ```ebnf * ERROR_KEYWORD = "error"; @@ -712,7 +712,7 @@ export namespace syntax$nodes { */ ErrorKeyword = "ErrorKeyword", /** - * ## Unversioned + * ## v0.8.4 * * ```ebnf * ErrorParameter = TypeName IDENTIFIER?; @@ -720,7 +720,7 @@ export namespace syntax$nodes { */ ErrorParameter = "ErrorParameter", /** - * ## Unversioned + * ## v0.8.4 * * ```ebnf * ErrorParametersList = ErrorParameter (COMMA ErrorParameter)*; @@ -2769,7 +2769,7 @@ export namespace syntax$nodes { */ ConditionalExpression = "ConditionalExpression", /** - * ## Unversioned + * ## v0.7.4 * * ```ebnf * ConstantDefinition = TypeName CONSTANT_KEYWORD IDENTIFIER EQUAL Expression SEMICOLON; @@ -2887,7 +2887,7 @@ export namespace syntax$nodes { */ EnumDefinition = "EnumDefinition", /** - * ## Unversioned + * ## v0.8.4 * * ```ebnf * ErrorDefinition = ERROR_KEYWORD IDENTIFIER OPEN_PAREN ErrorParametersList? CLOSE_PAREN SEMICOLON; @@ -2895,7 +2895,7 @@ export namespace syntax$nodes { */ ErrorDefinition = "ErrorDefinition", /** - * ## Unversioned + * ## v0.8.4 * * ```ebnf * ErrorParameter = TypeName IDENTIFIER?; @@ -2903,7 +2903,7 @@ export namespace syntax$nodes { */ ErrorParameter = "ErrorParameter", /** - * ## Unversioned + * ## v0.8.4 * * ```ebnf * ErrorParametersList = ErrorParameter (COMMA ErrorParameter)*; @@ -4424,7 +4424,7 @@ export namespace syntax$nodes { */ EqualGreaterThan = "EqualGreaterThan", /** - * ## Unversioned + * ## v0.8.4 * * ```ebnf * ERROR_KEYWORD = "error"; diff --git a/crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.4.11.md b/crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.4.11.md index 389ab4c2bd..1d4a0886d0 100644 --- a/crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.4.11.md +++ b/crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.4.11.md @@ -1,15 +1,9 @@ ```{ .ebnf .slang-ebnf #SourceUnitMember } -«SourceUnitMember» = ContractDefinition - | LibraryDefinition - | InterfaceDefinition - | StructDefinition - | EnumDefinition - | ConstantDefinition - | FunctionDefinition - | ErrorDefinition +«SourceUnitMember» = PragmaDirective | ImportDirective - | PragmaDirective - | UsingDirective; + | ContractDefinition + | InterfaceDefinition + | LibraryDefinition; ``` diff --git a/crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.6.0.md b/crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.6.0.md new file mode 100644 index 0000000000..9d759ce8d5 --- /dev/null +++ b/crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.6.0.md @@ -0,0 +1,11 @@ + + +```{ .ebnf .slang-ebnf #SourceUnitMember } +«SourceUnitMember» = PragmaDirective + | ImportDirective + | ContractDefinition + | InterfaceDefinition + | LibraryDefinition + | StructDefinition + | EnumDefinition; +``` diff --git a/crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.7.1.md b/crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.7.1.md new file mode 100644 index 0000000000..c3983d5901 --- /dev/null +++ b/crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.7.1.md @@ -0,0 +1,12 @@ + + +```{ .ebnf .slang-ebnf #SourceUnitMember } +«SourceUnitMember» = PragmaDirective + | ImportDirective + | ContractDefinition + | InterfaceDefinition + | LibraryDefinition + | StructDefinition + | EnumDefinition + | FunctionDefinition; +``` diff --git a/crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.7.4.md b/crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.7.4.md new file mode 100644 index 0000000000..ac5c2e26be --- /dev/null +++ b/crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.7.4.md @@ -0,0 +1,13 @@ + + +```{ .ebnf .slang-ebnf #SourceUnitMember } +«SourceUnitMember» = PragmaDirective + | ImportDirective + | ContractDefinition + | InterfaceDefinition + | LibraryDefinition + | StructDefinition + | EnumDefinition + | FunctionDefinition + | ConstantDefinition; +``` diff --git a/crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.8.13.md b/crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.8.13.md new file mode 100644 index 0000000000..5360ae37b4 --- /dev/null +++ b/crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.8.13.md @@ -0,0 +1,16 @@ + + +```{ .ebnf .slang-ebnf #SourceUnitMember } +«SourceUnitMember» = PragmaDirective + | ImportDirective + | ContractDefinition + | InterfaceDefinition + | LibraryDefinition + | StructDefinition + | EnumDefinition + | FunctionDefinition + | ConstantDefinition + | ErrorDefinition + | UserDefinedValueTypeDefinition + | UsingDirective; +``` diff --git a/crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.8.4.md b/crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.8.4.md new file mode 100644 index 0000000000..d45b8b533a --- /dev/null +++ b/crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.8.4.md @@ -0,0 +1,14 @@ + + +```{ .ebnf .slang-ebnf #SourceUnitMember } +«SourceUnitMember» = PragmaDirective + | ImportDirective + | ContractDefinition + | InterfaceDefinition + | LibraryDefinition + | StructDefinition + | EnumDefinition + | FunctionDefinition + | ConstantDefinition + | ErrorDefinition; +``` diff --git a/crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.8.8.md b/crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.8.8.md index 818956b648..15d2802988 100644 --- a/crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.8.8.md +++ b/crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.8.8.md @@ -1,16 +1,15 @@ ```{ .ebnf .slang-ebnf #SourceUnitMember } -«SourceUnitMember» = ContractDefinition - | LibraryDefinition +«SourceUnitMember» = PragmaDirective + | ImportDirective + | ContractDefinition | InterfaceDefinition + | LibraryDefinition | StructDefinition | EnumDefinition - | ConstantDefinition | FunctionDefinition + | ConstantDefinition | ErrorDefinition - | ImportDirective - | PragmaDirective - | UsingDirective | UserDefinedValueTypeDefinition; ``` diff --git a/crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/error-keyword/unversioned.md b/crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/error-keyword/0.8.4.md similarity index 100% rename from crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/error-keyword/unversioned.md rename to crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/error-keyword/0.8.4.md diff --git a/crates/solidity/outputs/spec/generated/ebnf/02-definitions/01-contracts/contract-member/0.4.11.md b/crates/solidity/outputs/spec/generated/ebnf/02-definitions/01-contracts/contract-member/0.4.11.md index 70869be051..1454b9b81a 100644 --- a/crates/solidity/outputs/spec/generated/ebnf/02-definitions/01-contracts/contract-member/0.4.11.md +++ b/crates/solidity/outputs/spec/generated/ebnf/02-definitions/01-contracts/contract-member/0.4.11.md @@ -8,6 +8,5 @@ | StructDefinition | EnumDefinition | EventDefinition - | ErrorDefinition | StateVariableDefinition; ``` diff --git a/crates/solidity/outputs/spec/generated/ebnf/02-definitions/01-contracts/contract-member/0.4.22.md b/crates/solidity/outputs/spec/generated/ebnf/02-definitions/01-contracts/contract-member/0.4.22.md index 2ec01a4f6c..1f853869ed 100644 --- a/crates/solidity/outputs/spec/generated/ebnf/02-definitions/01-contracts/contract-member/0.4.22.md +++ b/crates/solidity/outputs/spec/generated/ebnf/02-definitions/01-contracts/contract-member/0.4.22.md @@ -9,6 +9,5 @@ | StructDefinition | EnumDefinition | EventDefinition - | ErrorDefinition | StateVariableDefinition; ``` diff --git a/crates/solidity/outputs/spec/generated/ebnf/02-definitions/01-contracts/contract-member/0.6.0.md b/crates/solidity/outputs/spec/generated/ebnf/02-definitions/01-contracts/contract-member/0.6.0.md index a5b86ee7e5..77b922c80a 100644 --- a/crates/solidity/outputs/spec/generated/ebnf/02-definitions/01-contracts/contract-member/0.6.0.md +++ b/crates/solidity/outputs/spec/generated/ebnf/02-definitions/01-contracts/contract-member/0.6.0.md @@ -10,6 +10,5 @@ | StructDefinition | EnumDefinition | EventDefinition - | ErrorDefinition | StateVariableDefinition; ``` diff --git a/crates/solidity/outputs/spec/generated/ebnf/02-definitions/01-contracts/contract-member/0.8.4.md b/crates/solidity/outputs/spec/generated/ebnf/02-definitions/01-contracts/contract-member/0.8.4.md new file mode 100644 index 0000000000..a5b86ee7e5 --- /dev/null +++ b/crates/solidity/outputs/spec/generated/ebnf/02-definitions/01-contracts/contract-member/0.8.4.md @@ -0,0 +1,15 @@ + + +```{ .ebnf .slang-ebnf #ContractMember } +«ContractMember» = UsingDirective + | ConstructorDefinition + | FunctionDefinition + | FallbackFunctionDefinition + | ReceiveFunctionDefinition + | ModifierDefinition + | StructDefinition + | EnumDefinition + | EventDefinition + | ErrorDefinition + | StateVariableDefinition; +``` diff --git a/crates/solidity/outputs/spec/generated/ebnf/02-definitions/06-constants/constant-definition/unversioned.md b/crates/solidity/outputs/spec/generated/ebnf/02-definitions/06-constants/constant-definition/0.7.4.md similarity index 100% rename from crates/solidity/outputs/spec/generated/ebnf/02-definitions/06-constants/constant-definition/unversioned.md rename to crates/solidity/outputs/spec/generated/ebnf/02-definitions/06-constants/constant-definition/0.7.4.md diff --git a/crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-definition/unversioned.md b/crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-definition/0.8.4.md similarity index 100% rename from crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-definition/unversioned.md rename to crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-definition/0.8.4.md diff --git a/crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameter/unversioned.md b/crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameter/0.8.4.md similarity index 100% rename from crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameter/unversioned.md rename to crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameter/0.8.4.md diff --git a/crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameters-list/unversioned.md b/crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameters-list/0.8.4.md similarity index 100% rename from crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameters-list/unversioned.md rename to crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameters-list/0.8.4.md diff --git a/crates/solidity/outputs/spec/generated/public/grammar/NAV.md b/crates/solidity/outputs/spec/generated/public/grammar/NAV.md index 90b7ac6f48..b64ab3ba9c 100644 --- a/crates/solidity/outputs/spec/generated/public/grammar/NAV.md +++ b/crates/solidity/outputs/spec/generated/public/grammar/NAV.md @@ -11,7 +11,11 @@ - [v0.6.5](./v0.6.5/index.md) - [v0.6.11](./v0.6.11/index.md) - [v0.7.0](./v0.7.0/index.md) +- [v0.7.1](./v0.7.1/index.md) +- [v0.7.4](./v0.7.4/index.md) - [v0.8.0](./v0.8.0/index.md) +- [v0.8.4](./v0.8.4/index.md) - [v0.8.8](./v0.8.8/index.md) +- [v0.8.13](./v0.8.13/index.md) - [v0.8.18](./v0.8.18/index.md) - [v0.8.19](./v0.8.19/index.md) diff --git a/crates/solidity/outputs/spec/generated/public/grammar/index.md b/crates/solidity/outputs/spec/generated/public/grammar/index.md index 3b061ac023..8fe956bd01 100644 --- a/crates/solidity/outputs/spec/generated/public/grammar/index.md +++ b/crates/solidity/outputs/spec/generated/public/grammar/index.md @@ -12,7 +12,11 @@ - [v0.6.5](./v0.6.5/index.md) - [v0.6.11](./v0.6.11/index.md) - [v0.7.0](./v0.7.0/index.md) +- [v0.7.1](./v0.7.1/index.md) +- [v0.7.4](./v0.7.4/index.md) - [v0.8.0](./v0.8.0/index.md) +- [v0.8.4](./v0.8.4/index.md) - [v0.8.8](./v0.8.8/index.md) +- [v0.8.13](./v0.8.13/index.md) - [v0.8.18](./v0.8.18/index.md) - [v0.8.19](./v0.8.19/index.md) diff --git a/crates/solidity/outputs/spec/generated/public/grammar/v0.4.11/index.md b/crates/solidity/outputs/spec/generated/public/grammar/v0.4.11/index.md index 05389c3352..a1ff66c742 100644 --- a/crates/solidity/outputs/spec/generated/public/grammar/v0.4.11/index.md +++ b/crates/solidity/outputs/spec/generated/public/grammar/v0.4.11/index.md @@ -68,7 +68,6 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/do-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/else-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/enum-keyword/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/error-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/ether-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/event-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/experimental-keyword/unversioned.md" @@ -205,10 +204,6 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/05-enums/enum-definition/unversioned.md" -### 2.6. Constants - ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/06-constants/constant-definition/unversioned.md" - ### 2.7. State Variables --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/07-state-variables/state-variable-definition/unversioned.md" @@ -242,12 +237,6 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/10-events/event-parameters-list/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/10-events/event-parameter/unversioned.md" -### 2.12. Errors - ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-definition/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameters-list/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameter/unversioned.md" - ## 3. Types ### 3.1. Advanced Types diff --git a/crates/solidity/outputs/spec/generated/public/grammar/v0.4.21/index.md b/crates/solidity/outputs/spec/generated/public/grammar/v0.4.21/index.md index 30ed6d7f15..bdf253439d 100644 --- a/crates/solidity/outputs/spec/generated/public/grammar/v0.4.21/index.md +++ b/crates/solidity/outputs/spec/generated/public/grammar/v0.4.21/index.md @@ -69,7 +69,6 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/else-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/emit-keyword/0.4.21.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/enum-keyword/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/error-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/ether-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/event-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/experimental-keyword/unversioned.md" @@ -206,10 +205,6 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/05-enums/enum-definition/unversioned.md" -### 2.6. Constants - ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/06-constants/constant-definition/unversioned.md" - ### 2.7. State Variables --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/07-state-variables/state-variable-definition/unversioned.md" @@ -243,12 +238,6 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/10-events/event-parameters-list/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/10-events/event-parameter/unversioned.md" -### 2.12. Errors - ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-definition/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameters-list/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameter/unversioned.md" - ## 3. Types ### 3.1. Advanced Types diff --git a/crates/solidity/outputs/spec/generated/public/grammar/v0.4.22/index.md b/crates/solidity/outputs/spec/generated/public/grammar/v0.4.22/index.md index 0cbdaa727f..95ba163d1f 100644 --- a/crates/solidity/outputs/spec/generated/public/grammar/v0.4.22/index.md +++ b/crates/solidity/outputs/spec/generated/public/grammar/v0.4.22/index.md @@ -70,7 +70,6 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/else-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/emit-keyword/0.4.21.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/enum-keyword/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/error-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/ether-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/event-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/experimental-keyword/unversioned.md" @@ -207,10 +206,6 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/05-enums/enum-definition/unversioned.md" -### 2.6. Constants - ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/06-constants/constant-definition/unversioned.md" - ### 2.7. State Variables --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/07-state-variables/state-variable-definition/unversioned.md" @@ -247,12 +242,6 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/10-events/event-parameters-list/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/10-events/event-parameter/unversioned.md" -### 2.12. Errors - ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-definition/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameters-list/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameter/unversioned.md" - ## 3. Types ### 3.1. Advanced Types diff --git a/crates/solidity/outputs/spec/generated/public/grammar/v0.5.0/index.md b/crates/solidity/outputs/spec/generated/public/grammar/v0.5.0/index.md index f2cfdd185d..068f6c01ba 100644 --- a/crates/solidity/outputs/spec/generated/public/grammar/v0.5.0/index.md +++ b/crates/solidity/outputs/spec/generated/public/grammar/v0.5.0/index.md @@ -71,7 +71,6 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/else-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/emit-keyword/0.4.21.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/enum-keyword/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/error-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/ether-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/event-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/experimental-keyword/unversioned.md" @@ -205,10 +204,6 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/05-enums/enum-definition/unversioned.md" -### 2.6. Constants - ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/06-constants/constant-definition/unversioned.md" - ### 2.7. State Variables --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/07-state-variables/state-variable-definition/unversioned.md" @@ -245,12 +240,6 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/10-events/event-parameters-list/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/10-events/event-parameter/unversioned.md" -### 2.12. Errors - ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-definition/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameters-list/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameter/unversioned.md" - ## 3. Types ### 3.1. Advanced Types diff --git a/crates/solidity/outputs/spec/generated/public/grammar/v0.5.3/index.md b/crates/solidity/outputs/spec/generated/public/grammar/v0.5.3/index.md index 1eec2c1847..e0f7a4a8e1 100644 --- a/crates/solidity/outputs/spec/generated/public/grammar/v0.5.3/index.md +++ b/crates/solidity/outputs/spec/generated/public/grammar/v0.5.3/index.md @@ -71,7 +71,6 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/else-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/emit-keyword/0.4.21.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/enum-keyword/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/error-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/ether-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/event-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/experimental-keyword/unversioned.md" @@ -206,10 +205,6 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/05-enums/enum-definition/unversioned.md" -### 2.6. Constants - ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/06-constants/constant-definition/unversioned.md" - ### 2.7. State Variables --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/07-state-variables/state-variable-definition/unversioned.md" @@ -246,12 +241,6 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/10-events/event-parameters-list/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/10-events/event-parameter/unversioned.md" -### 2.12. Errors - ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-definition/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameters-list/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameter/unversioned.md" - ## 3. Types ### 3.1. Advanced Types diff --git a/crates/solidity/outputs/spec/generated/public/grammar/v0.6.0/index.md b/crates/solidity/outputs/spec/generated/public/grammar/v0.6.0/index.md index fee4a1f953..f303a90afd 100644 --- a/crates/solidity/outputs/spec/generated/public/grammar/v0.6.0/index.md +++ b/crates/solidity/outputs/spec/generated/public/grammar/v0.6.0/index.md @@ -8,7 +8,7 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-members-list/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.4.11.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.6.0.md" ### 1.3. Pragmas @@ -73,7 +73,6 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/else-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/emit-keyword/0.4.21.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/enum-keyword/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/error-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/ether-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/event-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/experimental-keyword/unversioned.md" @@ -211,10 +210,6 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/05-enums/enum-definition/unversioned.md" -### 2.6. Constants - ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/06-constants/constant-definition/unversioned.md" - ### 2.7. State Variables --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/07-state-variables/state-variable-definition/unversioned.md" @@ -254,12 +249,6 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/10-events/event-parameters-list/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/10-events/event-parameter/unversioned.md" -### 2.12. Errors - ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-definition/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameters-list/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameter/unversioned.md" - ## 3. Types ### 3.1. Advanced Types diff --git a/crates/solidity/outputs/spec/generated/public/grammar/v0.6.11/index.md b/crates/solidity/outputs/spec/generated/public/grammar/v0.6.11/index.md index cbeb87ac6a..0a29717cc0 100644 --- a/crates/solidity/outputs/spec/generated/public/grammar/v0.6.11/index.md +++ b/crates/solidity/outputs/spec/generated/public/grammar/v0.6.11/index.md @@ -8,7 +8,7 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-members-list/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.4.11.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.6.0.md" ### 1.3. Pragmas @@ -73,7 +73,6 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/else-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/emit-keyword/0.4.21.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/enum-keyword/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/error-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/ether-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/event-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/experimental-keyword/unversioned.md" @@ -213,10 +212,6 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/05-enums/enum-definition/unversioned.md" -### 2.6. Constants - ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/06-constants/constant-definition/unversioned.md" - ### 2.7. State Variables --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/07-state-variables/state-variable-definition/unversioned.md" @@ -256,12 +251,6 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/10-events/event-parameters-list/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/10-events/event-parameter/unversioned.md" -### 2.12. Errors - ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-definition/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameters-list/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameter/unversioned.md" - ## 3. Types ### 3.1. Advanced Types diff --git a/crates/solidity/outputs/spec/generated/public/grammar/v0.6.2/index.md b/crates/solidity/outputs/spec/generated/public/grammar/v0.6.2/index.md index 01e7e2d7a1..a60d5dbc7a 100644 --- a/crates/solidity/outputs/spec/generated/public/grammar/v0.6.2/index.md +++ b/crates/solidity/outputs/spec/generated/public/grammar/v0.6.2/index.md @@ -8,7 +8,7 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-members-list/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.4.11.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.6.0.md" ### 1.3. Pragmas @@ -73,7 +73,6 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/else-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/emit-keyword/0.4.21.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/enum-keyword/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/error-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/ether-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/event-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/experimental-keyword/unversioned.md" @@ -211,10 +210,6 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/05-enums/enum-definition/unversioned.md" -### 2.6. Constants - ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/06-constants/constant-definition/unversioned.md" - ### 2.7. State Variables --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/07-state-variables/state-variable-definition/unversioned.md" @@ -254,12 +249,6 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/10-events/event-parameters-list/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/10-events/event-parameter/unversioned.md" -### 2.12. Errors - ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-definition/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameters-list/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameter/unversioned.md" - ## 3. Types ### 3.1. Advanced Types diff --git a/crates/solidity/outputs/spec/generated/public/grammar/v0.6.5/index.md b/crates/solidity/outputs/spec/generated/public/grammar/v0.6.5/index.md index 6e6c40f717..ffb804fdba 100644 --- a/crates/solidity/outputs/spec/generated/public/grammar/v0.6.5/index.md +++ b/crates/solidity/outputs/spec/generated/public/grammar/v0.6.5/index.md @@ -8,7 +8,7 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-members-list/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.4.11.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.6.0.md" ### 1.3. Pragmas @@ -73,7 +73,6 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/else-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/emit-keyword/0.4.21.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/enum-keyword/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/error-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/ether-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/event-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/experimental-keyword/unversioned.md" @@ -212,10 +211,6 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/05-enums/enum-definition/unversioned.md" -### 2.6. Constants - ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/06-constants/constant-definition/unversioned.md" - ### 2.7. State Variables --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/07-state-variables/state-variable-definition/unversioned.md" @@ -255,12 +250,6 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/10-events/event-parameters-list/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/10-events/event-parameter/unversioned.md" -### 2.12. Errors - ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-definition/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameters-list/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameter/unversioned.md" - ## 3. Types ### 3.1. Advanced Types diff --git a/crates/solidity/outputs/spec/generated/public/grammar/v0.7.0/index.md b/crates/solidity/outputs/spec/generated/public/grammar/v0.7.0/index.md index 83bfbe896a..35120d5136 100644 --- a/crates/solidity/outputs/spec/generated/public/grammar/v0.7.0/index.md +++ b/crates/solidity/outputs/spec/generated/public/grammar/v0.7.0/index.md @@ -8,7 +8,7 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-members-list/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.4.11.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.6.0.md" ### 1.3. Pragmas @@ -73,7 +73,6 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/else-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/emit-keyword/0.4.21.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/enum-keyword/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/error-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/ether-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/event-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/experimental-keyword/unversioned.md" @@ -211,10 +210,6 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/05-enums/enum-definition/unversioned.md" -### 2.6. Constants - ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/06-constants/constant-definition/unversioned.md" - ### 2.7. State Variables --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/07-state-variables/state-variable-definition/unversioned.md" @@ -254,12 +249,6 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/10-events/event-parameters-list/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/10-events/event-parameter/unversioned.md" -### 2.12. Errors - ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-definition/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameters-list/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameter/unversioned.md" - ## 3. Types ### 3.1. Advanced Types diff --git a/crates/solidity/outputs/spec/generated/public/grammar/v0.7.1/index.md b/crates/solidity/outputs/spec/generated/public/grammar/v0.7.1/index.md new file mode 100644 index 0000000000..22ab9053de --- /dev/null +++ b/crates/solidity/outputs/spec/generated/public/grammar/v0.7.1/index.md @@ -0,0 +1,446 @@ + + +# Grammar + +## 1. File Structure + +### 1.2. Source Unit + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-members-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.7.1.md" + +### 1.3. Pragmas + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/pragma-directive/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/abi-coder-pragma/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/experimental-pragma/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/version-pragma/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/version-pragma-expressions-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/version-pragma-expression/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/version-pragma-or-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/version-pragma-range-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/version-pragma-unary-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/version-pragma-specifier/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/version-pragma-value/unversioned.md" + +### 1.4. Imports + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/import-directive/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/path-import/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/named-import/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/deconstruction-import/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/deconstruction-import-symbols-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/deconstruction-import-symbol/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/using-directive/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/using-directive-path/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/using-directive-deconstruction/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/using-directive-symbols-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/using-directive-symbol/0.4.11.md" + +### 1.5. Trivia + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/05-trivia/leading-trivia/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/05-trivia/trailing-trivia/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/05-trivia/end-of-file-trivia/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/05-trivia/whitespace/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/05-trivia/end-of-line/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/05-trivia/multiline-comment/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/05-trivia/single-line-comment/unversioned.md" + +### 1.7. Keywords + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/abicoder-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/abstract-keyword/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/address-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/anonymous-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/as-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/assembly-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/bool-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/break-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/byte-keyword/0.4.11.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/calldata-keyword/0.5.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/case-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/catch-keyword/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/constant-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/constructor-keyword/0.4.22.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/continue-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/contract-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/days-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/default-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/delete-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/do-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/else-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/emit-keyword/0.4.21.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/enum-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/ether-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/event-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/experimental-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/external-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/fallback-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/false-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/for-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/from-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/function-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/global-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/gwei-keyword/0.6.11.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/hours-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/if-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/immutable-keyword/0.6.5.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/import-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/indexed-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/interface-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/internal-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/is-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/leave-keyword/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/let-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/library-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/mapping-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/memory-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/minutes-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/modifier-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/new-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/override-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/payable-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/pragma-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/private-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/public-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/pure-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/receive-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/return-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/returns-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/revert-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/seconds-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/solidity-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/storage-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/string-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/struct-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/switch-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/true-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/try-keyword/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/type-keyword/0.5.3.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/using-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/view-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/virtual-keyword/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/weeks-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/wei-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/while-keyword/unversioned.md" + +### 1.8 Punctuation + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/open-paren/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/close-paren/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/open-bracket/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/close-bracket/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/open-brace/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/close-brace/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/comma/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/period/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/question-mark/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/semicolon/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/colon/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/colon-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/equal-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/equal-greater-than/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/asterisk/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/asterisk-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/asterisk-asterisk/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/bar/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/bar-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/bar-bar/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/ampersand/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/ampersand-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/ampersand-ampersand/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/less-than/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/less-than-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/less-than-less-than/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/less-than-less-than-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/greater-than/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/greater-than-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/greater-than-greater-than/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/greater-than-greater-than-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/greater-than-greater-than-greater-than/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/greater-than-greater-than-greater-than-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/plus/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/plus-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/plus-plus/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/minus/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/minus-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/minus-minus/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/minus-greater-than/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/slash/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/slash-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/percent/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/percent-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/bang/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/bang-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/caret/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/caret-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/tilde/unversioned.md" + +## 2. Definitions + +### 2.1. Contracts + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/01-contracts/contract-definition/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/01-contracts/inheritance-specifier/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/01-contracts/inheritance-types-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/01-contracts/inheritance-type/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/01-contracts/contract-members-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/01-contracts/contract-member/0.6.0.md" + +### 2.2. Interfaces + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/02-interfaces/interface-definition/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/02-interfaces/interface-members-list/unversioned.md" + +### 2.3. Libraries + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/03-libraries/library-definition/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/03-libraries/library-members-list/unversioned.md" + +### 2.4. Structs + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/04-structs/struct-definition/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/04-structs/struct-members-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/04-structs/struct-member/unversioned.md" + +### 2.5. Enums + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/05-enums/enum-definition/unversioned.md" + +### 2.7. State Variables + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/07-state-variables/state-variable-definition/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/07-state-variables/state-variable-attributes-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/07-state-variables/state-variable-attribute/0.6.5.md" + +### 2.8. Functions + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/function-definition/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/returns-declaration/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/function-attributes-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/function-attribute/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/override-specifier/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/parameters-declaration/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/parameters-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/parameter/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/constructor-definition/0.4.22.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/constructor-attributes-list/0.4.22.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/constructor-attribute/0.4.22.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/fallback-function-definition/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/fallback-function-attributes-list/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/fallback-function-attribute/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/receive-function-definition/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/receive-function-attributes-list/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/receive-function-attribute/0.6.0.md" + +### 2.9. Modifiers + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/09-modifiers/modifier-definition/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/09-modifiers/modifier-attributes-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/09-modifiers/modifier-attribute/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/09-modifiers/modifier-invocation/unversioned.md" + +### 2.10 Events + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/10-events/event-definition/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/10-events/event-parameters-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/10-events/event-parameter/unversioned.md" + +## 3. Types + +### 3.1. Advanced Types + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/01-advanced-types/type-name/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/01-advanced-types/array-type-name-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/01-advanced-types/function-type/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/01-advanced-types/function-type-attributes-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/01-advanced-types/function-type-attribute/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/01-advanced-types/mapping-type/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/01-advanced-types/mapping-key-type/0.4.11.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/01-advanced-types/mapping-value-type/0.4.11.md" + +### 3.2. Elementary Types + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/02-elementary-types/elementary-type/0.4.11.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/02-elementary-types/address-type/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/02-elementary-types/fixed-bytes-type/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/02-elementary-types/fixed-bytes-type-size/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/02-elementary-types/signed-integer-type/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/02-elementary-types/unsigned-integer-type/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/02-elementary-types/integer-type-size/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/02-elementary-types/signed-fixed-type/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/02-elementary-types/unsigned-fixed-type/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/02-elementary-types/fixed-type-size/unversioned.md" + +## 4. Statements + +### 4.1. Blocks + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/01-blocks/block/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/01-blocks/statements-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/01-blocks/statement/0.4.11.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/01-blocks/control-statement/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/01-blocks/simple-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/01-blocks/expression-statement/unversioned.md" + +### 4.2. Declaration Statements + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/02-declaration-statements/tuple-deconstruction-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/02-declaration-statements/tuple-members-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/02-declaration-statements/tuple-member/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/02-declaration-statements/variable-declaration-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/02-declaration-statements/variable-declaration/0.5.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/02-declaration-statements/data-location/0.5.0.md" + +### 4.3. Control Statements + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/if-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/for-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/while-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/do-while-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/continue-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/break-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/return-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/emit-statement/0.4.21.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/delete-statement/unversioned.md" + +### 4.4. Error Handling + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/04-error-handling/try-statement/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/04-error-handling/catch-clauses-list/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/04-error-handling/catch-clause/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/04-error-handling/catch-clause-error/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/04-error-handling/revert-statement/unversioned.md" + +## 5. Expressions + +### 5.1. Base Expressions + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/expression/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/assignment-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/conditional-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/or-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/and-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/equality-comparison-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/order-comparison-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/bitwise-or-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/bitwise-x-or-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/bitwise-and-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/shift-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/add-sub-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/mul-div-mod-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/exponentiation-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/unary-postfix-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/unary-prefix-operator/0.5.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/function-call-operator/0.6.2.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/member-access-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/index-access-operator/unversioned.md" + +### 5.2. Function Calls + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/02-function-calls/arguments-declaration/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/02-function-calls/positional-arguments-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/02-function-calls/function-call-options/0.6.2.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/02-function-calls/named-arguments-declaration/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/02-function-calls/named-arguments-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/02-function-calls/named-argument/unversioned.md" + +### 5.3. Primary Expressions + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/03-primary-expressions/primary-expression/0.5.3.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/03-primary-expressions/type-expression/0.5.3.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/03-primary-expressions/new-expression/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/03-primary-expressions/tuple-expression/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/03-primary-expressions/tuple-values-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/03-primary-expressions/array-expression/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/03-primary-expressions/array-values-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/03-primary-expressions/boolean-expression/unversioned.md" + +### 5.4. Numbers + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/04-numbers/numeric-expression/0.5.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/04-numbers/hex-literal/0.5.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/04-numbers/decimal-literal/0.5.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/04-numbers/decimal-digits/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/04-numbers/decimal-exponent/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/04-numbers/number-unit/0.7.0.md" + +### 5.5. Strings + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/string-expression/0.7.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/hex-string-literals-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/hex-string-literal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/single-quoted-hex-string-literal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/double-quoted-hex-string-literal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/hex-string-contents/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/hex-character/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/ascii-string-literals-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/ascii-string-literal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/single-quoted-ascii-string-literal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/double-quoted-ascii-string-literal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/unicode-string-literals-list/0.7.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/unicode-string-literal/0.7.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/single-quoted-unicode-string-literal/0.7.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/double-quoted-unicode-string-literal/0.7.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/escape-sequence/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/ascii-escape/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/hex-byte-escape/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/unicode-escape/unversioned.md" + +### 5.6. Identifiers + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/identifier-paths-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/identifier-path/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/identifiers-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/identifier/0.5.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/keyword-in-any-version/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/keyword-in-some-version/0.7.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/reserved-word-in-any-version/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/reserved-word-in-some-version/0.5.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/raw-identifier/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/identifier-start/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/identifier-part/unversioned.md" + +## 6. Yul + +### 6.1. Assembly Block + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/01-assembly-block/assembly-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/01-assembly-block/assembly-flags-list/unversioned.md" + +### 6.2. Yul Statements + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-block/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-statements-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-statement/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-declaration-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-function-definition/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-parameters-declaration/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-returns-declaration/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-assignment-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-if-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-leave-statement/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-break-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-continue-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-for-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-switch-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-switch-cases-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-switch-case/unversioned.md" + +### 6.3. Yul Expressions + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-expressions-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-expression/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-function-call-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-identifier-paths-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-identifier-path/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-identifiers-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-identifier/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-keyword/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-reserved-word/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-literal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-hex-literal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-decimal-literal/unversioned.md" diff --git a/crates/solidity/outputs/spec/generated/public/grammar/v0.7.4/index.md b/crates/solidity/outputs/spec/generated/public/grammar/v0.7.4/index.md new file mode 100644 index 0000000000..946d51a290 --- /dev/null +++ b/crates/solidity/outputs/spec/generated/public/grammar/v0.7.4/index.md @@ -0,0 +1,450 @@ + + +# Grammar + +## 1. File Structure + +### 1.2. Source Unit + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-members-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.7.4.md" + +### 1.3. Pragmas + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/pragma-directive/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/abi-coder-pragma/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/experimental-pragma/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/version-pragma/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/version-pragma-expressions-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/version-pragma-expression/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/version-pragma-or-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/version-pragma-range-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/version-pragma-unary-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/version-pragma-specifier/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/version-pragma-value/unversioned.md" + +### 1.4. Imports + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/import-directive/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/path-import/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/named-import/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/deconstruction-import/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/deconstruction-import-symbols-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/deconstruction-import-symbol/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/using-directive/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/using-directive-path/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/using-directive-deconstruction/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/using-directive-symbols-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/using-directive-symbol/0.4.11.md" + +### 1.5. Trivia + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/05-trivia/leading-trivia/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/05-trivia/trailing-trivia/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/05-trivia/end-of-file-trivia/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/05-trivia/whitespace/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/05-trivia/end-of-line/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/05-trivia/multiline-comment/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/05-trivia/single-line-comment/unversioned.md" + +### 1.7. Keywords + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/abicoder-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/abstract-keyword/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/address-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/anonymous-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/as-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/assembly-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/bool-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/break-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/byte-keyword/0.4.11.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/calldata-keyword/0.5.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/case-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/catch-keyword/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/constant-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/constructor-keyword/0.4.22.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/continue-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/contract-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/days-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/default-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/delete-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/do-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/else-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/emit-keyword/0.4.21.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/enum-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/ether-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/event-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/experimental-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/external-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/fallback-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/false-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/for-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/from-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/function-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/global-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/gwei-keyword/0.6.11.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/hours-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/if-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/immutable-keyword/0.6.5.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/import-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/indexed-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/interface-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/internal-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/is-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/leave-keyword/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/let-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/library-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/mapping-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/memory-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/minutes-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/modifier-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/new-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/override-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/payable-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/pragma-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/private-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/public-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/pure-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/receive-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/return-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/returns-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/revert-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/seconds-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/solidity-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/storage-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/string-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/struct-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/switch-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/true-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/try-keyword/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/type-keyword/0.5.3.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/using-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/view-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/virtual-keyword/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/weeks-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/wei-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/while-keyword/unversioned.md" + +### 1.8 Punctuation + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/open-paren/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/close-paren/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/open-bracket/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/close-bracket/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/open-brace/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/close-brace/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/comma/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/period/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/question-mark/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/semicolon/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/colon/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/colon-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/equal-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/equal-greater-than/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/asterisk/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/asterisk-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/asterisk-asterisk/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/bar/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/bar-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/bar-bar/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/ampersand/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/ampersand-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/ampersand-ampersand/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/less-than/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/less-than-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/less-than-less-than/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/less-than-less-than-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/greater-than/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/greater-than-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/greater-than-greater-than/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/greater-than-greater-than-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/greater-than-greater-than-greater-than/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/greater-than-greater-than-greater-than-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/plus/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/plus-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/plus-plus/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/minus/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/minus-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/minus-minus/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/minus-greater-than/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/slash/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/slash-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/percent/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/percent-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/bang/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/bang-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/caret/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/caret-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/tilde/unversioned.md" + +## 2. Definitions + +### 2.1. Contracts + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/01-contracts/contract-definition/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/01-contracts/inheritance-specifier/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/01-contracts/inheritance-types-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/01-contracts/inheritance-type/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/01-contracts/contract-members-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/01-contracts/contract-member/0.6.0.md" + +### 2.2. Interfaces + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/02-interfaces/interface-definition/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/02-interfaces/interface-members-list/unversioned.md" + +### 2.3. Libraries + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/03-libraries/library-definition/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/03-libraries/library-members-list/unversioned.md" + +### 2.4. Structs + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/04-structs/struct-definition/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/04-structs/struct-members-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/04-structs/struct-member/unversioned.md" + +### 2.5. Enums + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/05-enums/enum-definition/unversioned.md" + +### 2.6. Constants + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/06-constants/constant-definition/0.7.4.md" + +### 2.7. State Variables + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/07-state-variables/state-variable-definition/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/07-state-variables/state-variable-attributes-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/07-state-variables/state-variable-attribute/0.6.5.md" + +### 2.8. Functions + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/function-definition/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/returns-declaration/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/function-attributes-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/function-attribute/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/override-specifier/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/parameters-declaration/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/parameters-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/parameter/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/constructor-definition/0.4.22.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/constructor-attributes-list/0.4.22.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/constructor-attribute/0.4.22.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/fallback-function-definition/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/fallback-function-attributes-list/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/fallback-function-attribute/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/receive-function-definition/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/receive-function-attributes-list/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/receive-function-attribute/0.6.0.md" + +### 2.9. Modifiers + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/09-modifiers/modifier-definition/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/09-modifiers/modifier-attributes-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/09-modifiers/modifier-attribute/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/09-modifiers/modifier-invocation/unversioned.md" + +### 2.10 Events + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/10-events/event-definition/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/10-events/event-parameters-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/10-events/event-parameter/unversioned.md" + +## 3. Types + +### 3.1. Advanced Types + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/01-advanced-types/type-name/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/01-advanced-types/array-type-name-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/01-advanced-types/function-type/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/01-advanced-types/function-type-attributes-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/01-advanced-types/function-type-attribute/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/01-advanced-types/mapping-type/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/01-advanced-types/mapping-key-type/0.4.11.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/01-advanced-types/mapping-value-type/0.4.11.md" + +### 3.2. Elementary Types + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/02-elementary-types/elementary-type/0.4.11.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/02-elementary-types/address-type/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/02-elementary-types/fixed-bytes-type/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/02-elementary-types/fixed-bytes-type-size/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/02-elementary-types/signed-integer-type/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/02-elementary-types/unsigned-integer-type/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/02-elementary-types/integer-type-size/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/02-elementary-types/signed-fixed-type/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/02-elementary-types/unsigned-fixed-type/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/02-elementary-types/fixed-type-size/unversioned.md" + +## 4. Statements + +### 4.1. Blocks + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/01-blocks/block/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/01-blocks/statements-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/01-blocks/statement/0.4.11.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/01-blocks/control-statement/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/01-blocks/simple-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/01-blocks/expression-statement/unversioned.md" + +### 4.2. Declaration Statements + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/02-declaration-statements/tuple-deconstruction-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/02-declaration-statements/tuple-members-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/02-declaration-statements/tuple-member/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/02-declaration-statements/variable-declaration-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/02-declaration-statements/variable-declaration/0.5.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/02-declaration-statements/data-location/0.5.0.md" + +### 4.3. Control Statements + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/if-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/for-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/while-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/do-while-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/continue-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/break-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/return-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/emit-statement/0.4.21.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/delete-statement/unversioned.md" + +### 4.4. Error Handling + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/04-error-handling/try-statement/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/04-error-handling/catch-clauses-list/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/04-error-handling/catch-clause/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/04-error-handling/catch-clause-error/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/04-error-handling/revert-statement/unversioned.md" + +## 5. Expressions + +### 5.1. Base Expressions + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/expression/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/assignment-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/conditional-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/or-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/and-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/equality-comparison-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/order-comparison-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/bitwise-or-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/bitwise-x-or-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/bitwise-and-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/shift-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/add-sub-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/mul-div-mod-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/exponentiation-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/unary-postfix-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/unary-prefix-operator/0.5.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/function-call-operator/0.6.2.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/member-access-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/index-access-operator/unversioned.md" + +### 5.2. Function Calls + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/02-function-calls/arguments-declaration/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/02-function-calls/positional-arguments-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/02-function-calls/function-call-options/0.6.2.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/02-function-calls/named-arguments-declaration/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/02-function-calls/named-arguments-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/02-function-calls/named-argument/unversioned.md" + +### 5.3. Primary Expressions + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/03-primary-expressions/primary-expression/0.5.3.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/03-primary-expressions/type-expression/0.5.3.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/03-primary-expressions/new-expression/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/03-primary-expressions/tuple-expression/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/03-primary-expressions/tuple-values-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/03-primary-expressions/array-expression/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/03-primary-expressions/array-values-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/03-primary-expressions/boolean-expression/unversioned.md" + +### 5.4. Numbers + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/04-numbers/numeric-expression/0.5.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/04-numbers/hex-literal/0.5.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/04-numbers/decimal-literal/0.5.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/04-numbers/decimal-digits/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/04-numbers/decimal-exponent/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/04-numbers/number-unit/0.7.0.md" + +### 5.5. Strings + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/string-expression/0.7.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/hex-string-literals-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/hex-string-literal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/single-quoted-hex-string-literal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/double-quoted-hex-string-literal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/hex-string-contents/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/hex-character/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/ascii-string-literals-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/ascii-string-literal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/single-quoted-ascii-string-literal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/double-quoted-ascii-string-literal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/unicode-string-literals-list/0.7.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/unicode-string-literal/0.7.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/single-quoted-unicode-string-literal/0.7.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/double-quoted-unicode-string-literal/0.7.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/escape-sequence/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/ascii-escape/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/hex-byte-escape/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/unicode-escape/unversioned.md" + +### 5.6. Identifiers + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/identifier-paths-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/identifier-path/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/identifiers-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/identifier/0.5.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/keyword-in-any-version/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/keyword-in-some-version/0.7.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/reserved-word-in-any-version/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/reserved-word-in-some-version/0.5.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/raw-identifier/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/identifier-start/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/identifier-part/unversioned.md" + +## 6. Yul + +### 6.1. Assembly Block + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/01-assembly-block/assembly-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/01-assembly-block/assembly-flags-list/unversioned.md" + +### 6.2. Yul Statements + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-block/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-statements-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-statement/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-declaration-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-function-definition/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-parameters-declaration/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-returns-declaration/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-assignment-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-if-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-leave-statement/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-break-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-continue-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-for-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-switch-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-switch-cases-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-switch-case/unversioned.md" + +### 6.3. Yul Expressions + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-expressions-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-expression/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-function-call-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-identifier-paths-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-identifier-path/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-identifiers-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-identifier/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-keyword/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-reserved-word/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-literal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-hex-literal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-decimal-literal/unversioned.md" diff --git a/crates/solidity/outputs/spec/generated/public/grammar/v0.8.0/index.md b/crates/solidity/outputs/spec/generated/public/grammar/v0.8.0/index.md index b2a41ce4eb..2c3b0e3892 100644 --- a/crates/solidity/outputs/spec/generated/public/grammar/v0.8.0/index.md +++ b/crates/solidity/outputs/spec/generated/public/grammar/v0.8.0/index.md @@ -8,7 +8,7 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-members-list/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.4.11.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.7.4.md" ### 1.3. Pragmas @@ -72,7 +72,6 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/else-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/emit-keyword/0.4.21.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/enum-keyword/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/error-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/ether-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/event-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/experimental-keyword/unversioned.md" @@ -213,7 +212,7 @@ ### 2.6. Constants ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/06-constants/constant-definition/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/06-constants/constant-definition/0.7.4.md" ### 2.7. State Variables @@ -254,12 +253,6 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/10-events/event-parameters-list/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/10-events/event-parameter/unversioned.md" -### 2.12. Errors - ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-definition/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameters-list/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameter/unversioned.md" - ## 3. Types ### 3.1. Advanced Types diff --git a/crates/solidity/outputs/spec/generated/public/grammar/v0.8.13/index.md b/crates/solidity/outputs/spec/generated/public/grammar/v0.8.13/index.md new file mode 100644 index 0000000000..15d31895cd --- /dev/null +++ b/crates/solidity/outputs/spec/generated/public/grammar/v0.8.13/index.md @@ -0,0 +1,462 @@ + + +# Grammar + +## 1. File Structure + +### 1.2. Source Unit + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-members-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.8.13.md" + +### 1.3. Pragmas + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/pragma-directive/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/abi-coder-pragma/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/experimental-pragma/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/version-pragma/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/version-pragma-expressions-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/version-pragma-expression/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/version-pragma-or-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/version-pragma-range-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/version-pragma-unary-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/version-pragma-specifier/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/version-pragma-value/unversioned.md" + +### 1.4. Imports + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/import-directive/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/path-import/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/named-import/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/deconstruction-import/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/deconstruction-import-symbols-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/deconstruction-import-symbol/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/using-directive/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/using-directive-path/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/using-directive-deconstruction/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/using-directive-symbols-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/using-directive-symbol/0.4.11.md" + +### 1.5. Trivia + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/05-trivia/leading-trivia/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/05-trivia/trailing-trivia/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/05-trivia/end-of-file-trivia/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/05-trivia/whitespace/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/05-trivia/end-of-line/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/05-trivia/multiline-comment/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/05-trivia/single-line-comment/unversioned.md" + +### 1.7. Keywords + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/abicoder-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/abstract-keyword/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/address-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/anonymous-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/as-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/assembly-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/bool-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/break-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/calldata-keyword/0.5.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/case-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/catch-keyword/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/constant-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/constructor-keyword/0.4.22.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/continue-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/contract-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/days-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/default-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/delete-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/do-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/else-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/emit-keyword/0.4.21.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/enum-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/error-keyword/0.8.4.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/ether-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/event-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/experimental-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/external-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/fallback-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/false-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/for-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/from-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/function-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/global-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/gwei-keyword/0.6.11.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/hours-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/if-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/immutable-keyword/0.6.5.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/import-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/indexed-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/interface-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/internal-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/is-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/leave-keyword/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/let-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/library-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/mapping-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/memory-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/minutes-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/modifier-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/new-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/override-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/payable-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/pragma-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/private-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/public-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/pure-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/receive-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/return-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/returns-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/revert-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/seconds-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/solidity-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/storage-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/string-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/struct-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/switch-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/true-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/try-keyword/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/type-keyword/0.5.3.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/unchecked-keyword/0.8.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/using-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/view-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/virtual-keyword/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/weeks-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/wei-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/while-keyword/unversioned.md" + +### 1.8 Punctuation + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/open-paren/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/close-paren/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/open-bracket/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/close-bracket/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/open-brace/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/close-brace/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/comma/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/period/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/question-mark/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/semicolon/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/colon/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/colon-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/equal-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/equal-greater-than/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/asterisk/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/asterisk-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/asterisk-asterisk/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/bar/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/bar-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/bar-bar/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/ampersand/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/ampersand-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/ampersand-ampersand/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/less-than/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/less-than-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/less-than-less-than/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/less-than-less-than-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/greater-than/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/greater-than-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/greater-than-greater-than/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/greater-than-greater-than-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/greater-than-greater-than-greater-than/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/greater-than-greater-than-greater-than-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/plus/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/plus-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/plus-plus/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/minus/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/minus-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/minus-minus/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/minus-greater-than/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/slash/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/slash-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/percent/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/percent-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/bang/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/bang-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/caret/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/caret-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/tilde/unversioned.md" + +## 2. Definitions + +### 2.1. Contracts + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/01-contracts/contract-definition/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/01-contracts/inheritance-specifier/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/01-contracts/inheritance-types-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/01-contracts/inheritance-type/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/01-contracts/contract-members-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/01-contracts/contract-member/0.8.8.md" + +### 2.2. Interfaces + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/02-interfaces/interface-definition/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/02-interfaces/interface-members-list/unversioned.md" + +### 2.3. Libraries + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/03-libraries/library-definition/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/03-libraries/library-members-list/unversioned.md" + +### 2.4. Structs + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/04-structs/struct-definition/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/04-structs/struct-members-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/04-structs/struct-member/unversioned.md" + +### 2.5. Enums + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/05-enums/enum-definition/unversioned.md" + +### 2.6. Constants + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/06-constants/constant-definition/0.7.4.md" + +### 2.7. State Variables + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/07-state-variables/state-variable-definition/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/07-state-variables/state-variable-attributes-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/07-state-variables/state-variable-attribute/0.6.5.md" + +### 2.8. Functions + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/function-definition/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/returns-declaration/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/function-attributes-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/function-attribute/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/override-specifier/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/parameters-declaration/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/parameters-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/parameter/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/constructor-definition/0.4.22.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/constructor-attributes-list/0.4.22.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/constructor-attribute/0.4.22.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/fallback-function-definition/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/fallback-function-attributes-list/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/fallback-function-attribute/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/receive-function-definition/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/receive-function-attributes-list/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/receive-function-attribute/0.6.0.md" + +### 2.9. Modifiers + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/09-modifiers/modifier-definition/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/09-modifiers/modifier-attributes-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/09-modifiers/modifier-attribute/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/09-modifiers/modifier-invocation/unversioned.md" + +### 2.10 Events + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/10-events/event-definition/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/10-events/event-parameters-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/10-events/event-parameter/unversioned.md" + +### 2.11. User Defined Value Types + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/11-user-defined-value-types/user-defined-value-type-definition/0.8.8.md" + +### 2.12. Errors + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-definition/0.8.4.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameters-list/0.8.4.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameter/0.8.4.md" + +## 3. Types + +### 3.1. Advanced Types + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/01-advanced-types/type-name/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/01-advanced-types/array-type-name-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/01-advanced-types/function-type/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/01-advanced-types/function-type-attributes-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/01-advanced-types/function-type-attribute/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/01-advanced-types/mapping-type/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/01-advanced-types/mapping-key-type/0.4.11.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/01-advanced-types/mapping-value-type/0.4.11.md" + +### 3.2. Elementary Types + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/02-elementary-types/elementary-type/0.8.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/02-elementary-types/address-type/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/02-elementary-types/fixed-bytes-type/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/02-elementary-types/fixed-bytes-type-size/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/02-elementary-types/signed-integer-type/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/02-elementary-types/unsigned-integer-type/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/02-elementary-types/integer-type-size/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/02-elementary-types/signed-fixed-type/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/02-elementary-types/unsigned-fixed-type/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/02-elementary-types/fixed-type-size/unversioned.md" + +## 4. Statements + +### 4.1. Blocks + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/01-blocks/block/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/01-blocks/statements-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/01-blocks/statement/0.8.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/01-blocks/control-statement/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/01-blocks/simple-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/01-blocks/expression-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/01-blocks/unchecked-block/0.8.0.md" + +### 4.2. Declaration Statements + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/02-declaration-statements/tuple-deconstruction-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/02-declaration-statements/tuple-members-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/02-declaration-statements/tuple-member/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/02-declaration-statements/variable-declaration-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/02-declaration-statements/variable-declaration/0.5.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/02-declaration-statements/data-location/0.5.0.md" + +### 4.3. Control Statements + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/if-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/for-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/while-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/do-while-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/continue-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/break-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/return-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/emit-statement/0.4.21.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/delete-statement/unversioned.md" + +### 4.4. Error Handling + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/04-error-handling/try-statement/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/04-error-handling/catch-clauses-list/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/04-error-handling/catch-clause/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/04-error-handling/catch-clause-error/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/04-error-handling/revert-statement/unversioned.md" + +## 5. Expressions + +### 5.1. Base Expressions + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/expression/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/assignment-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/conditional-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/or-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/and-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/equality-comparison-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/order-comparison-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/bitwise-or-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/bitwise-x-or-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/bitwise-and-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/shift-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/add-sub-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/mul-div-mod-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/exponentiation-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/unary-postfix-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/unary-prefix-operator/0.5.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/function-call-operator/0.6.2.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/member-access-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/index-access-operator/unversioned.md" + +### 5.2. Function Calls + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/02-function-calls/arguments-declaration/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/02-function-calls/positional-arguments-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/02-function-calls/function-call-options/0.8.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/02-function-calls/named-arguments-declaration/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/02-function-calls/named-arguments-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/02-function-calls/named-argument/unversioned.md" + +### 5.3. Primary Expressions + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/03-primary-expressions/primary-expression/0.5.3.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/03-primary-expressions/type-expression/0.5.3.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/03-primary-expressions/new-expression/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/03-primary-expressions/tuple-expression/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/03-primary-expressions/tuple-values-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/03-primary-expressions/array-expression/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/03-primary-expressions/array-values-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/03-primary-expressions/boolean-expression/unversioned.md" + +### 5.4. Numbers + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/04-numbers/numeric-expression/0.5.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/04-numbers/hex-literal/0.5.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/04-numbers/decimal-literal/0.5.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/04-numbers/decimal-digits/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/04-numbers/decimal-exponent/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/04-numbers/number-unit/0.7.0.md" + +### 5.5. Strings + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/string-expression/0.7.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/hex-string-literals-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/hex-string-literal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/single-quoted-hex-string-literal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/double-quoted-hex-string-literal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/hex-string-contents/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/hex-character/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/ascii-string-literals-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/ascii-string-literal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/single-quoted-ascii-string-literal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/double-quoted-ascii-string-literal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/unicode-string-literals-list/0.7.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/unicode-string-literal/0.7.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/single-quoted-unicode-string-literal/0.7.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/double-quoted-unicode-string-literal/0.7.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/escape-sequence/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/ascii-escape/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/hex-byte-escape/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/unicode-escape/unversioned.md" + +### 5.6. Identifiers + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/identifier-paths-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/identifier-path/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/identifiers-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/identifier/0.5.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/keyword-in-any-version/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/keyword-in-some-version/0.8.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/reserved-word-in-any-version/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/reserved-word-in-some-version/0.5.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/raw-identifier/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/identifier-start/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/identifier-part/unversioned.md" + +## 6. Yul + +### 6.1. Assembly Block + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/01-assembly-block/assembly-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/01-assembly-block/assembly-flags-list/unversioned.md" + +### 6.2. Yul Statements + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-block/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-statements-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-statement/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-declaration-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-function-definition/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-parameters-declaration/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-returns-declaration/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-assignment-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-if-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-leave-statement/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-break-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-continue-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-for-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-switch-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-switch-cases-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-switch-case/unversioned.md" + +### 6.3. Yul Expressions + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-expressions-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-expression/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-function-call-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-identifier-paths-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-identifier-path/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-identifiers-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-identifier/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-keyword/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-reserved-word/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-literal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-hex-literal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-decimal-literal/unversioned.md" diff --git a/crates/solidity/outputs/spec/generated/public/grammar/v0.8.18/index.md b/crates/solidity/outputs/spec/generated/public/grammar/v0.8.18/index.md index 4e9a210a99..0b801bcb29 100644 --- a/crates/solidity/outputs/spec/generated/public/grammar/v0.8.18/index.md +++ b/crates/solidity/outputs/spec/generated/public/grammar/v0.8.18/index.md @@ -8,7 +8,7 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-members-list/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.8.8.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.8.13.md" ### 1.3. Pragmas @@ -72,7 +72,7 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/else-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/emit-keyword/0.4.21.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/enum-keyword/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/error-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/error-keyword/0.8.4.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/ether-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/event-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/experimental-keyword/unversioned.md" @@ -213,7 +213,7 @@ ### 2.6. Constants ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/06-constants/constant-definition/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/06-constants/constant-definition/0.7.4.md" ### 2.7. State Variables @@ -260,9 +260,9 @@ ### 2.12. Errors ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-definition/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameters-list/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameter/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-definition/0.8.4.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameters-list/0.8.4.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameter/0.8.4.md" ## 3. Types diff --git a/crates/solidity/outputs/spec/generated/public/grammar/v0.8.19/index.md b/crates/solidity/outputs/spec/generated/public/grammar/v0.8.19/index.md index 8e8fc6ea33..7621dc54b9 100644 --- a/crates/solidity/outputs/spec/generated/public/grammar/v0.8.19/index.md +++ b/crates/solidity/outputs/spec/generated/public/grammar/v0.8.19/index.md @@ -8,7 +8,7 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-members-list/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.8.8.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.8.13.md" ### 1.3. Pragmas @@ -73,7 +73,7 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/else-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/emit-keyword/0.4.21.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/enum-keyword/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/error-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/error-keyword/0.8.4.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/ether-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/event-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/experimental-keyword/unversioned.md" @@ -214,7 +214,7 @@ ### 2.6. Constants ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/06-constants/constant-definition/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/06-constants/constant-definition/0.7.4.md" ### 2.7. State Variables @@ -261,9 +261,9 @@ ### 2.12. Errors ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-definition/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameters-list/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameter/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-definition/0.8.4.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameters-list/0.8.4.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameter/0.8.4.md" ## 3. Types diff --git a/crates/solidity/outputs/spec/generated/public/grammar/v0.8.4/index.md b/crates/solidity/outputs/spec/generated/public/grammar/v0.8.4/index.md new file mode 100644 index 0000000000..2d4fd13d81 --- /dev/null +++ b/crates/solidity/outputs/spec/generated/public/grammar/v0.8.4/index.md @@ -0,0 +1,458 @@ + + +# Grammar + +## 1. File Structure + +### 1.2. Source Unit + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-members-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/02-source-unit/source-unit-member/0.8.4.md" + +### 1.3. Pragmas + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/pragma-directive/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/abi-coder-pragma/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/experimental-pragma/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/version-pragma/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/version-pragma-expressions-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/version-pragma-expression/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/version-pragma-or-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/version-pragma-range-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/version-pragma-unary-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/version-pragma-specifier/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/03-pragmas/version-pragma-value/unversioned.md" + +### 1.4. Imports + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/import-directive/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/path-import/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/named-import/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/deconstruction-import/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/deconstruction-import-symbols-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/deconstruction-import-symbol/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/using-directive/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/using-directive-path/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/using-directive-deconstruction/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/using-directive-symbols-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/04-imports/using-directive-symbol/0.4.11.md" + +### 1.5. Trivia + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/05-trivia/leading-trivia/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/05-trivia/trailing-trivia/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/05-trivia/end-of-file-trivia/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/05-trivia/whitespace/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/05-trivia/end-of-line/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/05-trivia/multiline-comment/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/05-trivia/single-line-comment/unversioned.md" + +### 1.7. Keywords + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/abicoder-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/abstract-keyword/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/address-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/anonymous-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/as-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/assembly-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/bool-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/break-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/calldata-keyword/0.5.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/case-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/catch-keyword/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/constant-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/constructor-keyword/0.4.22.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/continue-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/contract-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/days-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/default-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/delete-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/do-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/else-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/emit-keyword/0.4.21.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/enum-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/error-keyword/0.8.4.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/ether-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/event-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/experimental-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/external-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/fallback-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/false-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/for-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/from-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/function-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/global-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/gwei-keyword/0.6.11.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/hours-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/if-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/immutable-keyword/0.6.5.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/import-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/indexed-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/interface-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/internal-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/is-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/leave-keyword/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/let-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/library-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/mapping-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/memory-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/minutes-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/modifier-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/new-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/override-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/payable-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/pragma-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/private-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/public-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/pure-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/receive-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/return-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/returns-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/revert-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/seconds-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/solidity-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/storage-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/string-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/struct-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/switch-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/true-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/try-keyword/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/type-keyword/0.5.3.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/unchecked-keyword/0.8.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/using-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/view-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/virtual-keyword/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/weeks-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/wei-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/while-keyword/unversioned.md" + +### 1.8 Punctuation + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/open-paren/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/close-paren/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/open-bracket/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/close-bracket/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/open-brace/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/close-brace/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/comma/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/period/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/question-mark/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/semicolon/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/colon/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/colon-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/equal-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/equal-greater-than/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/asterisk/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/asterisk-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/asterisk-asterisk/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/bar/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/bar-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/bar-bar/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/ampersand/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/ampersand-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/ampersand-ampersand/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/less-than/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/less-than-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/less-than-less-than/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/less-than-less-than-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/greater-than/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/greater-than-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/greater-than-greater-than/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/greater-than-greater-than-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/greater-than-greater-than-greater-than/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/greater-than-greater-than-greater-than-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/plus/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/plus-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/plus-plus/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/minus/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/minus-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/minus-minus/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/minus-greater-than/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/slash/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/slash-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/percent/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/percent-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/bang/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/bang-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/caret/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/caret-equal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/08-punctuation/tilde/unversioned.md" + +## 2. Definitions + +### 2.1. Contracts + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/01-contracts/contract-definition/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/01-contracts/inheritance-specifier/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/01-contracts/inheritance-types-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/01-contracts/inheritance-type/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/01-contracts/contract-members-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/01-contracts/contract-member/0.8.4.md" + +### 2.2. Interfaces + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/02-interfaces/interface-definition/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/02-interfaces/interface-members-list/unversioned.md" + +### 2.3. Libraries + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/03-libraries/library-definition/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/03-libraries/library-members-list/unversioned.md" + +### 2.4. Structs + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/04-structs/struct-definition/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/04-structs/struct-members-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/04-structs/struct-member/unversioned.md" + +### 2.5. Enums + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/05-enums/enum-definition/unversioned.md" + +### 2.6. Constants + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/06-constants/constant-definition/0.7.4.md" + +### 2.7. State Variables + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/07-state-variables/state-variable-definition/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/07-state-variables/state-variable-attributes-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/07-state-variables/state-variable-attribute/0.6.5.md" + +### 2.8. Functions + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/function-definition/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/returns-declaration/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/function-attributes-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/function-attribute/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/override-specifier/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/parameters-declaration/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/parameters-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/parameter/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/constructor-definition/0.4.22.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/constructor-attributes-list/0.4.22.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/constructor-attribute/0.4.22.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/fallback-function-definition/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/fallback-function-attributes-list/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/fallback-function-attribute/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/receive-function-definition/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/receive-function-attributes-list/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/08-functions/receive-function-attribute/0.6.0.md" + +### 2.9. Modifiers + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/09-modifiers/modifier-definition/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/09-modifiers/modifier-attributes-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/09-modifiers/modifier-attribute/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/09-modifiers/modifier-invocation/unversioned.md" + +### 2.10 Events + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/10-events/event-definition/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/10-events/event-parameters-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/10-events/event-parameter/unversioned.md" + +### 2.12. Errors + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-definition/0.8.4.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameters-list/0.8.4.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameter/0.8.4.md" + +## 3. Types + +### 3.1. Advanced Types + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/01-advanced-types/type-name/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/01-advanced-types/array-type-name-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/01-advanced-types/function-type/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/01-advanced-types/function-type-attributes-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/01-advanced-types/function-type-attribute/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/01-advanced-types/mapping-type/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/01-advanced-types/mapping-key-type/0.4.11.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/01-advanced-types/mapping-value-type/0.4.11.md" + +### 3.2. Elementary Types + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/02-elementary-types/elementary-type/0.8.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/02-elementary-types/address-type/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/02-elementary-types/fixed-bytes-type/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/02-elementary-types/fixed-bytes-type-size/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/02-elementary-types/signed-integer-type/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/02-elementary-types/unsigned-integer-type/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/02-elementary-types/integer-type-size/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/02-elementary-types/signed-fixed-type/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/02-elementary-types/unsigned-fixed-type/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/03-types/02-elementary-types/fixed-type-size/unversioned.md" + +## 4. Statements + +### 4.1. Blocks + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/01-blocks/block/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/01-blocks/statements-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/01-blocks/statement/0.8.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/01-blocks/control-statement/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/01-blocks/simple-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/01-blocks/expression-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/01-blocks/unchecked-block/0.8.0.md" + +### 4.2. Declaration Statements + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/02-declaration-statements/tuple-deconstruction-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/02-declaration-statements/tuple-members-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/02-declaration-statements/tuple-member/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/02-declaration-statements/variable-declaration-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/02-declaration-statements/variable-declaration/0.5.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/02-declaration-statements/data-location/0.5.0.md" + +### 4.3. Control Statements + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/if-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/for-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/while-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/do-while-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/continue-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/break-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/return-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/emit-statement/0.4.21.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/delete-statement/unversioned.md" + +### 4.4. Error Handling + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/04-error-handling/try-statement/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/04-error-handling/catch-clauses-list/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/04-error-handling/catch-clause/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/04-error-handling/catch-clause-error/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/04-statements/04-error-handling/revert-statement/unversioned.md" + +## 5. Expressions + +### 5.1. Base Expressions + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/expression/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/assignment-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/conditional-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/or-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/and-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/equality-comparison-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/order-comparison-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/bitwise-or-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/bitwise-x-or-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/bitwise-and-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/shift-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/add-sub-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/mul-div-mod-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/exponentiation-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/unary-postfix-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/unary-prefix-operator/0.5.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/function-call-operator/0.6.2.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/member-access-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/01-base-expressions/index-access-operator/unversioned.md" + +### 5.2. Function Calls + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/02-function-calls/arguments-declaration/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/02-function-calls/positional-arguments-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/02-function-calls/function-call-options/0.8.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/02-function-calls/named-arguments-declaration/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/02-function-calls/named-arguments-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/02-function-calls/named-argument/unversioned.md" + +### 5.3. Primary Expressions + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/03-primary-expressions/primary-expression/0.5.3.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/03-primary-expressions/type-expression/0.5.3.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/03-primary-expressions/new-expression/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/03-primary-expressions/tuple-expression/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/03-primary-expressions/tuple-values-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/03-primary-expressions/array-expression/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/03-primary-expressions/array-values-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/03-primary-expressions/boolean-expression/unversioned.md" + +### 5.4. Numbers + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/04-numbers/numeric-expression/0.5.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/04-numbers/hex-literal/0.5.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/04-numbers/decimal-literal/0.5.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/04-numbers/decimal-digits/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/04-numbers/decimal-exponent/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/04-numbers/number-unit/0.7.0.md" + +### 5.5. Strings + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/string-expression/0.7.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/hex-string-literals-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/hex-string-literal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/single-quoted-hex-string-literal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/double-quoted-hex-string-literal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/hex-string-contents/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/hex-character/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/ascii-string-literals-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/ascii-string-literal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/single-quoted-ascii-string-literal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/double-quoted-ascii-string-literal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/unicode-string-literals-list/0.7.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/unicode-string-literal/0.7.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/single-quoted-unicode-string-literal/0.7.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/double-quoted-unicode-string-literal/0.7.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/escape-sequence/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/ascii-escape/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/hex-byte-escape/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/05-strings/unicode-escape/unversioned.md" + +### 5.6. Identifiers + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/identifier-paths-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/identifier-path/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/identifiers-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/identifier/0.5.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/keyword-in-any-version/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/keyword-in-some-version/0.8.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/reserved-word-in-any-version/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/reserved-word-in-some-version/0.5.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/raw-identifier/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/identifier-start/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/05-expressions/06-identifiers/identifier-part/unversioned.md" + +## 6. Yul + +### 6.1. Assembly Block + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/01-assembly-block/assembly-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/01-assembly-block/assembly-flags-list/unversioned.md" + +### 6.2. Yul Statements + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-block/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-statements-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-statement/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-declaration-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-function-definition/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-parameters-declaration/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-returns-declaration/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-assignment-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-if-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-leave-statement/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-break-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-continue-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-for-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-switch-statement/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-switch-cases-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-switch-case/unversioned.md" + +### 6.3. Yul Expressions + +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-expressions-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-expression/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-function-call-operator/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-identifier-paths-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-identifier-path/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-identifiers-list/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-identifier/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-keyword/0.6.0.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-reserved-word/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-literal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-hex-literal/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/06-yul/03-yul-expressions/yul-decimal-literal/unversioned.md" diff --git a/crates/solidity/outputs/spec/generated/public/grammar/v0.8.8/index.md b/crates/solidity/outputs/spec/generated/public/grammar/v0.8.8/index.md index b25d28d457..e81900e822 100644 --- a/crates/solidity/outputs/spec/generated/public/grammar/v0.8.8/index.md +++ b/crates/solidity/outputs/spec/generated/public/grammar/v0.8.8/index.md @@ -72,7 +72,7 @@ --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/else-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/emit-keyword/0.4.21.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/enum-keyword/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/error-keyword/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/error-keyword/0.8.4.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/ether-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/event-keyword/unversioned.md" --8<-- "crates/solidity/outputs/spec/generated/ebnf/01-file-structure/07-keywords/experimental-keyword/unversioned.md" @@ -213,7 +213,7 @@ ### 2.6. Constants ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/06-constants/constant-definition/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/06-constants/constant-definition/0.7.4.md" ### 2.7. State Variables @@ -260,9 +260,9 @@ ### 2.12. Errors ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-definition/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameters-list/unversioned.md" ---8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameter/unversioned.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-definition/0.8.4.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameters-list/0.8.4.md" +--8<-- "crates/solidity/outputs/spec/generated/ebnf/02-definitions/12-errors/error-parameter/0.8.4.md" ## 3. Types diff --git a/crates/solidity/outputs/spec/generated/public/supported-versions/index.md b/crates/solidity/outputs/spec/generated/public/supported-versions/index.md index 217f5e6dd7..703cf2b56a 100644 --- a/crates/solidity/outputs/spec/generated/public/supported-versions/index.md +++ b/crates/solidity/outputs/spec/generated/public/supported-versions/index.md @@ -2,7 +2,7 @@ # Supported Versions -This specification compiles information from 74 publicly released versions of Solidity. Among which, 14 versions had syntax-related changes: +This specification compiles information from 74 publicly released versions of Solidity. Among which, 18 versions had syntax-related changes: - [0.4.11](../grammar/v0.4.11/) - [0.4.21](../grammar/v0.4.21/) @@ -14,8 +14,12 @@ This specification compiles information from 74 publicly released versions of So - [0.6.5](../grammar/v0.6.5/) - [0.6.11](../grammar/v0.6.11/) - [0.7.0](../grammar/v0.7.0/) +- [0.7.1](../grammar/v0.7.1/) +- [0.7.4](../grammar/v0.7.4/) - [0.8.0](../grammar/v0.8.0/) +- [0.8.4](../grammar/v0.8.4/) - [0.8.8](../grammar/v0.8.8/) +- [0.8.13](../grammar/v0.8.13/) - [0.8.18](../grammar/v0.8.18/) - [0.8.19](../grammar/v0.8.19/) diff --git a/crates/solidity/testing/snapshots/cst_output/ConstantDefinition/int/generated/0.7.4-success.yml b/crates/solidity/testing/snapshots/cst_output/ConstantDefinition/int/generated/0.7.4-success.yml new file mode 100644 index 0000000000..c69014cca6 --- /dev/null +++ b/crates/solidity/testing/snapshots/cst_output/ConstantDefinition/int/generated/0.7.4-success.yml @@ -0,0 +1,18 @@ +# This file is generated automatically by infrastructure scripts. Please don't edit by hand. + +Source: > + 1 │ int constant foo = 0; │ 0..21 + +Errors: [] + +Tree: + - ConstantDefinition (Rule): # 0..21 "int constant foo = 0;" + - TypeName (Rule): # 0..3 "int" + - SignedIntegerType (Token): "int" # 0..3 + - ConstantKeyword (Token): "constant" # 4..12 + - Identifier (Token): "foo" # 13..16 + - Equal (Token): "=" # 17..18 + - Expression (Rule): # 18..20 " 0" + - NumericExpression (Rule): # 18..20 " 0" + - DecimalLiteral (Token): "0" # 19..20 + - Semicolon (Token): ";" # 20..21 diff --git a/crates/solidity/testing/snapshots/cst_output/ConstantDefinition/int/input.sol b/crates/solidity/testing/snapshots/cst_output/ConstantDefinition/int/input.sol new file mode 100644 index 0000000000..f25a7598fa --- /dev/null +++ b/crates/solidity/testing/snapshots/cst_output/ConstantDefinition/int/input.sol @@ -0,0 +1 @@ +int constant foo = 0; \ No newline at end of file diff --git a/crates/solidity/testing/snapshots/cst_output/ContractDefinition/member_error_definition/generated/0.4.11-failure.yml b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/member_error_definition/generated/0.4.11-failure.yml new file mode 100644 index 0000000000..b1159ba0bd --- /dev/null +++ b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/member_error_definition/generated/0.4.11-failure.yml @@ -0,0 +1,30 @@ +# This file is generated automatically by infrastructure scripts. Please don't edit by hand. + +Source: > + 1 │ contract Sample { │ 0..17 + 2 │ error Error1(); │ 18..35 + 3 │ } │ 36..37 + +Errors: # 1 total + - > + Error: Expected Equal or Semicolon. + ╭─[crates/solidity/testing/snapshots/cst_output/ContractDefinition/member_error_definition/input.sol:2:15] + │ + 2 │ ╭─▶ error Error1(); + 3 │ ├─▶ } + │ │ + │ ╰────── Error occurred here. + ───╯ + +Tree: + - ContractDefinition (Rule): # 0..37 "contract Sample {\n error Error1();\n}" + - ContractKeyword (Token): "contract" # 0..8 + - Identifier (Token): "Sample" # 9..15 + - OpenBrace (Token): "{" # 16..17 + - ContractMembersList (Rule): # 18..32 " error Error1" + - StateVariableDefinition (Rule): # 18..32 " error Error1" + - TypeName (Rule): # 18..25 " error" + - IdentifierPath (Rule): # 18..25 " error" + - Identifier (Token): "error" # 20..25 + - Identifier (Token): "Error1" # 26..32 + - SKIPPED (Token): "();\n}" # 32..37 diff --git a/crates/solidity/testing/snapshots/cst_output/ContractDefinition/member_error_definition/generated/0.4.11-success.yml b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/member_error_definition/generated/0.8.4-success.yml similarity index 100% rename from crates/solidity/testing/snapshots/cst_output/ContractDefinition/member_error_definition/generated/0.4.11-success.yml rename to crates/solidity/testing/snapshots/cst_output/ContractDefinition/member_error_definition/generated/0.8.4-success.yml diff --git a/crates/solidity/testing/snapshots/cst_output/ContractDefinition/member_user_defined_value_type_definition/generated/0.4.11-failure.yml b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/member_user_defined_value_type_definition/generated/0.4.11-failure.yml index 150faa921b..a591ded4b3 100644 --- a/crates/solidity/testing/snapshots/cst_output/ContractDefinition/member_user_defined_value_type_definition/generated/0.4.11-failure.yml +++ b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/member_user_defined_value_type_definition/generated/0.4.11-failure.yml @@ -7,7 +7,7 @@ Source: > Errors: # 1 total - > - Error: Expected AddressKeyword or BoolKeyword or ByteKeyword or CloseBrace or EnumKeyword or ErrorKeyword or EventKeyword or FixedBytesType or FunctionKeyword or Identifier or MappingKeyword or ModifierKeyword or PayableKeyword or SignedFixedType or SignedIntegerType or StringKeyword or StructKeyword or UnsignedFixedType or UnsignedIntegerType or UsingKeyword. + Error: Expected AddressKeyword or BoolKeyword or ByteKeyword or CloseBrace or EnumKeyword or EventKeyword or FixedBytesType or FunctionKeyword or Identifier or MappingKeyword or ModifierKeyword or PayableKeyword or SignedFixedType or SignedIntegerType or StringKeyword or StructKeyword or UnsignedFixedType or UnsignedIntegerType or UsingKeyword. ╭─[crates/solidity/testing/snapshots/cst_output/ContractDefinition/member_user_defined_value_type_definition/input.sol:2:1] │ 2 │ ╭─▶ type Foo is bool; diff --git a/crates/solidity/testing/snapshots/cst_output/ContractDefinition/member_user_defined_value_type_definition/generated/0.4.22-failure.yml b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/member_user_defined_value_type_definition/generated/0.4.22-failure.yml index e33830d2ca..c727ca70b9 100644 --- a/crates/solidity/testing/snapshots/cst_output/ContractDefinition/member_user_defined_value_type_definition/generated/0.4.22-failure.yml +++ b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/member_user_defined_value_type_definition/generated/0.4.22-failure.yml @@ -7,7 +7,7 @@ Source: > Errors: # 1 total - > - Error: Expected AddressKeyword or BoolKeyword or ByteKeyword or CloseBrace or ConstructorKeyword or EnumKeyword or ErrorKeyword or EventKeyword or FixedBytesType or FunctionKeyword or Identifier or MappingKeyword or ModifierKeyword or PayableKeyword or SignedFixedType or SignedIntegerType or StringKeyword or StructKeyword or UnsignedFixedType or UnsignedIntegerType or UsingKeyword. + Error: Expected AddressKeyword or BoolKeyword or ByteKeyword or CloseBrace or ConstructorKeyword or EnumKeyword or EventKeyword or FixedBytesType or FunctionKeyword or Identifier or MappingKeyword or ModifierKeyword or PayableKeyword or SignedFixedType or SignedIntegerType or StringKeyword or StructKeyword or UnsignedFixedType or UnsignedIntegerType or UsingKeyword. ╭─[crates/solidity/testing/snapshots/cst_output/ContractDefinition/member_user_defined_value_type_definition/input.sol:2:1] │ 2 │ ╭─▶ type Foo is bool; diff --git a/crates/solidity/testing/snapshots/cst_output/ContractDefinition/member_user_defined_value_type_definition/generated/0.6.0-failure.yml b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/member_user_defined_value_type_definition/generated/0.6.0-failure.yml index ce3d19be1b..89257e7189 100644 --- a/crates/solidity/testing/snapshots/cst_output/ContractDefinition/member_user_defined_value_type_definition/generated/0.6.0-failure.yml +++ b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/member_user_defined_value_type_definition/generated/0.6.0-failure.yml @@ -7,7 +7,7 @@ Source: > Errors: # 1 total - > - Error: Expected AddressKeyword or BoolKeyword or ByteKeyword or CloseBrace or ConstructorKeyword or EnumKeyword or ErrorKeyword or EventKeyword or FallbackKeyword or FixedBytesType or FunctionKeyword or Identifier or MappingKeyword or ModifierKeyword or PayableKeyword or ReceiveKeyword or SignedFixedType or SignedIntegerType or StringKeyword or StructKeyword or UnsignedFixedType or UnsignedIntegerType or UsingKeyword. + Error: Expected AddressKeyword or BoolKeyword or ByteKeyword or CloseBrace or ConstructorKeyword or EnumKeyword or EventKeyword or FallbackKeyword or FixedBytesType or FunctionKeyword or Identifier or MappingKeyword or ModifierKeyword or PayableKeyword or ReceiveKeyword or SignedFixedType or SignedIntegerType or StringKeyword or StructKeyword or UnsignedFixedType or UnsignedIntegerType or UsingKeyword. ╭─[crates/solidity/testing/snapshots/cst_output/ContractDefinition/member_user_defined_value_type_definition/input.sol:2:1] │ 2 │ ╭─▶ type Foo is bool; diff --git a/crates/solidity/testing/snapshots/cst_output/ContractDefinition/member_user_defined_value_type_definition/generated/0.8.0-failure.yml b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/member_user_defined_value_type_definition/generated/0.8.0-failure.yml index b70b2439d4..886bee0dc1 100644 --- a/crates/solidity/testing/snapshots/cst_output/ContractDefinition/member_user_defined_value_type_definition/generated/0.8.0-failure.yml +++ b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/member_user_defined_value_type_definition/generated/0.8.0-failure.yml @@ -7,7 +7,7 @@ Source: > Errors: # 1 total - > - Error: Expected AddressKeyword or BoolKeyword or CloseBrace or ConstructorKeyword or EnumKeyword or ErrorKeyword or EventKeyword or FallbackKeyword or FixedBytesType or FunctionKeyword or Identifier or MappingKeyword or ModifierKeyword or PayableKeyword or ReceiveKeyword or SignedFixedType or SignedIntegerType or StringKeyword or StructKeyword or UnsignedFixedType or UnsignedIntegerType or UsingKeyword. + Error: Expected AddressKeyword or BoolKeyword or CloseBrace or ConstructorKeyword or EnumKeyword or EventKeyword or FallbackKeyword or FixedBytesType or FunctionKeyword or Identifier or MappingKeyword or ModifierKeyword or PayableKeyword or ReceiveKeyword or SignedFixedType or SignedIntegerType or StringKeyword or StructKeyword or UnsignedFixedType or UnsignedIntegerType or UsingKeyword. ╭─[crates/solidity/testing/snapshots/cst_output/ContractDefinition/member_user_defined_value_type_definition/input.sol:2:1] │ 2 │ ╭─▶ type Foo is bool; diff --git a/crates/solidity/testing/snapshots/cst_output/ContractDefinition/member_user_defined_value_type_definition/generated/0.8.4-failure.yml b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/member_user_defined_value_type_definition/generated/0.8.4-failure.yml new file mode 100644 index 0000000000..b70b2439d4 --- /dev/null +++ b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/member_user_defined_value_type_definition/generated/0.8.4-failure.yml @@ -0,0 +1,24 @@ +# This file is generated automatically by infrastructure scripts. Please don't edit by hand. + +Source: > + 1 │ contract Sample { │ 0..17 + 2 │ type Foo is bool; │ 18..37 + 3 │ } │ 38..39 + +Errors: # 1 total + - > + Error: Expected AddressKeyword or BoolKeyword or CloseBrace or ConstructorKeyword or EnumKeyword or ErrorKeyword or EventKeyword or FallbackKeyword or FixedBytesType or FunctionKeyword or Identifier or MappingKeyword or ModifierKeyword or PayableKeyword or ReceiveKeyword or SignedFixedType or SignedIntegerType or StringKeyword or StructKeyword or UnsignedFixedType or UnsignedIntegerType or UsingKeyword. + ╭─[crates/solidity/testing/snapshots/cst_output/ContractDefinition/member_user_defined_value_type_definition/input.sol:2:1] + │ + 2 │ ╭─▶ type Foo is bool; + 3 │ ├─▶ } + │ │ + │ ╰────── Error occurred here. + ───╯ + +Tree: + - ContractDefinition (Rule): # 0..39 "contract Sample {\n type Foo is bool;\n}" + - ContractKeyword (Token): "contract" # 0..8 + - Identifier (Token): "Sample" # 9..15 + - OpenBrace (Token): "{" # 16..17 + - SKIPPED (Token): " type Foo is bool;\n}" # 18..39 diff --git a/crates/solidity/testing/snapshots/cst_output/ContractDefinition/unterminated_body/generated/0.4.11-failure.yml b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/unterminated_body/generated/0.4.11-failure.yml index 5fc5968322..865c891ffb 100644 --- a/crates/solidity/testing/snapshots/cst_output/ContractDefinition/unterminated_body/generated/0.4.11-failure.yml +++ b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/unterminated_body/generated/0.4.11-failure.yml @@ -5,7 +5,7 @@ Source: > Errors: # 1 total - > - Error: Expected AddressKeyword or BoolKeyword or ByteKeyword or CloseBrace or EnumKeyword or ErrorKeyword or EventKeyword or FixedBytesType or FunctionKeyword or Identifier or MappingKeyword or ModifierKeyword or PayableKeyword or SignedFixedType or SignedIntegerType or StringKeyword or StructKeyword or UnsignedFixedType or UnsignedIntegerType or UsingKeyword. + Error: Expected AddressKeyword or BoolKeyword or ByteKeyword or CloseBrace or EnumKeyword or EventKeyword or FixedBytesType or FunctionKeyword or Identifier or MappingKeyword or ModifierKeyword or PayableKeyword or SignedFixedType or SignedIntegerType or StringKeyword or StructKeyword or UnsignedFixedType or UnsignedIntegerType or UsingKeyword. ╭─[crates/solidity/testing/snapshots/cst_output/ContractDefinition/unterminated_body/input.sol:1:18] │ 1 │ contract Sample { diff --git a/crates/solidity/testing/snapshots/cst_output/ContractDefinition/unterminated_body/generated/0.4.22-failure.yml b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/unterminated_body/generated/0.4.22-failure.yml index 1b9a1cdcb4..d1a6024b65 100644 --- a/crates/solidity/testing/snapshots/cst_output/ContractDefinition/unterminated_body/generated/0.4.22-failure.yml +++ b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/unterminated_body/generated/0.4.22-failure.yml @@ -5,7 +5,7 @@ Source: > Errors: # 1 total - > - Error: Expected AddressKeyword or BoolKeyword or ByteKeyword or CloseBrace or ConstructorKeyword or EnumKeyword or ErrorKeyword or EventKeyword or FixedBytesType or FunctionKeyword or Identifier or MappingKeyword or ModifierKeyword or PayableKeyword or SignedFixedType or SignedIntegerType or StringKeyword or StructKeyword or UnsignedFixedType or UnsignedIntegerType or UsingKeyword. + Error: Expected AddressKeyword or BoolKeyword or ByteKeyword or CloseBrace or ConstructorKeyword or EnumKeyword or EventKeyword or FixedBytesType or FunctionKeyword or Identifier or MappingKeyword or ModifierKeyword or PayableKeyword or SignedFixedType or SignedIntegerType or StringKeyword or StructKeyword or UnsignedFixedType or UnsignedIntegerType or UsingKeyword. ╭─[crates/solidity/testing/snapshots/cst_output/ContractDefinition/unterminated_body/input.sol:1:18] │ 1 │ contract Sample { diff --git a/crates/solidity/testing/snapshots/cst_output/ContractDefinition/unterminated_body/generated/0.6.0-failure.yml b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/unterminated_body/generated/0.6.0-failure.yml index 3be5cd018a..5cf0553de6 100644 --- a/crates/solidity/testing/snapshots/cst_output/ContractDefinition/unterminated_body/generated/0.6.0-failure.yml +++ b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/unterminated_body/generated/0.6.0-failure.yml @@ -5,7 +5,7 @@ Source: > Errors: # 1 total - > - Error: Expected AddressKeyword or BoolKeyword or ByteKeyword or CloseBrace or ConstructorKeyword or EnumKeyword or ErrorKeyword or EventKeyword or FallbackKeyword or FixedBytesType or FunctionKeyword or Identifier or MappingKeyword or ModifierKeyword or PayableKeyword or ReceiveKeyword or SignedFixedType or SignedIntegerType or StringKeyword or StructKeyword or UnsignedFixedType or UnsignedIntegerType or UsingKeyword. + Error: Expected AddressKeyword or BoolKeyword or ByteKeyword or CloseBrace or ConstructorKeyword or EnumKeyword or EventKeyword or FallbackKeyword or FixedBytesType or FunctionKeyword or Identifier or MappingKeyword or ModifierKeyword or PayableKeyword or ReceiveKeyword or SignedFixedType or SignedIntegerType or StringKeyword or StructKeyword or UnsignedFixedType or UnsignedIntegerType or UsingKeyword. ╭─[crates/solidity/testing/snapshots/cst_output/ContractDefinition/unterminated_body/input.sol:1:18] │ 1 │ contract Sample { diff --git a/crates/solidity/testing/snapshots/cst_output/ContractDefinition/unterminated_body/generated/0.8.0-failure.yml b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/unterminated_body/generated/0.8.0-failure.yml index a05a57a206..bd392f357c 100644 --- a/crates/solidity/testing/snapshots/cst_output/ContractDefinition/unterminated_body/generated/0.8.0-failure.yml +++ b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/unterminated_body/generated/0.8.0-failure.yml @@ -5,7 +5,7 @@ Source: > Errors: # 1 total - > - Error: Expected AddressKeyword or BoolKeyword or CloseBrace or ConstructorKeyword or EnumKeyword or ErrorKeyword or EventKeyword or FallbackKeyword or FixedBytesType or FunctionKeyword or Identifier or MappingKeyword or ModifierKeyword or PayableKeyword or ReceiveKeyword or SignedFixedType or SignedIntegerType or StringKeyword or StructKeyword or UnsignedFixedType or UnsignedIntegerType or UsingKeyword. + Error: Expected AddressKeyword or BoolKeyword or CloseBrace or ConstructorKeyword or EnumKeyword or EventKeyword or FallbackKeyword or FixedBytesType or FunctionKeyword or Identifier or MappingKeyword or ModifierKeyword or PayableKeyword or ReceiveKeyword or SignedFixedType or SignedIntegerType or StringKeyword or StructKeyword or UnsignedFixedType or UnsignedIntegerType or UsingKeyword. ╭─[crates/solidity/testing/snapshots/cst_output/ContractDefinition/unterminated_body/input.sol:1:18] │ 1 │ contract Sample { diff --git a/crates/solidity/testing/snapshots/cst_output/ContractDefinition/unterminated_body/generated/0.8.4-failure.yml b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/unterminated_body/generated/0.8.4-failure.yml new file mode 100644 index 0000000000..a05a57a206 --- /dev/null +++ b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/unterminated_body/generated/0.8.4-failure.yml @@ -0,0 +1,21 @@ +# This file is generated automatically by infrastructure scripts. Please don't edit by hand. + +Source: > + 1 │ contract Sample { │ 0..17 + +Errors: # 1 total + - > + Error: Expected AddressKeyword or BoolKeyword or CloseBrace or ConstructorKeyword or EnumKeyword or ErrorKeyword or EventKeyword or FallbackKeyword or FixedBytesType or FunctionKeyword or Identifier or MappingKeyword or ModifierKeyword or PayableKeyword or ReceiveKeyword or SignedFixedType or SignedIntegerType or StringKeyword or StructKeyword or UnsignedFixedType or UnsignedIntegerType or UsingKeyword. + ╭─[crates/solidity/testing/snapshots/cst_output/ContractDefinition/unterminated_body/input.sol:1:18] + │ + 1 │ contract Sample { + │ │ + │ ╰─ Error occurred here. + ───╯ + +Tree: + - ContractDefinition (Rule): # 0..17 "contract Sample {" + - ContractKeyword (Token): "contract" # 0..8 + - Identifier (Token): "Sample" # 9..15 + - OpenBrace (Token): "{" # 16..17 + - SKIPPED (Token): "" # 17..17 diff --git a/crates/solidity/testing/snapshots/cst_output/ErrorDefinition/top_level/generated/0.8.4-success.yml b/crates/solidity/testing/snapshots/cst_output/ErrorDefinition/top_level/generated/0.8.4-success.yml new file mode 100644 index 0000000000..40dc3a895e --- /dev/null +++ b/crates/solidity/testing/snapshots/cst_output/ErrorDefinition/top_level/generated/0.8.4-success.yml @@ -0,0 +1,14 @@ +# This file is generated automatically by infrastructure scripts. Please don't edit by hand. + +Source: > + 1 │ error MyError(); │ 0..16 + +Errors: [] + +Tree: + - ErrorDefinition (Rule): # 0..16 "error MyError();" + - ErrorKeyword (Token): "error" # 0..5 + - Identifier (Token): "MyError" # 6..13 + - OpenParen (Token): "(" # 13..14 + - CloseParen (Token): ")" # 14..15 + - Semicolon (Token): ";" # 15..16 diff --git a/crates/solidity/testing/snapshots/cst_output/ErrorDefinition/top_level/input.sol b/crates/solidity/testing/snapshots/cst_output/ErrorDefinition/top_level/input.sol new file mode 100644 index 0000000000..2a20efb22d --- /dev/null +++ b/crates/solidity/testing/snapshots/cst_output/ErrorDefinition/top_level/input.sol @@ -0,0 +1 @@ +error MyError(); \ No newline at end of file diff --git a/crates/solidity/testing/snapshots/cst_output/SourceUnit/everything/generated/0.4.11-failure.yml b/crates/solidity/testing/snapshots/cst_output/SourceUnit/everything/generated/0.4.11-failure.yml index 0a5832b5ea..06ff74d4cf 100644 --- a/crates/solidity/testing/snapshots/cst_output/SourceUnit/everything/generated/0.4.11-failure.yml +++ b/crates/solidity/testing/snapshots/cst_output/SourceUnit/everything/generated/0.4.11-failure.yml @@ -28,16 +28,18 @@ Source: > Errors: # 1 total - > Error: Expected EndOfLine or MultilineComment or SingleLineComment or Whitespace. - ╭─[crates/solidity/testing/snapshots/cst_output/SourceUnit/everything/input.sol:23:1] + ╭─[crates/solidity/testing/snapshots/cst_output/SourceUnit/everything/input.sol:5:1] │ - 23 │ type T is bool; - │ ────────┬─────── - │ ╰───────── Error occurred here. + 5 │ ╭─▶ using A for B; + ┆ ┆ + 23 │ ├─▶ type T is bool; + │ │ + │ ╰───────────────────── Error occurred here. ────╯ Tree: - SourceUnit (Rule): # 0..217 'pragma solidity 0.0.0;\n\nimport "foo.sol";\n\nusing A...' - - SourceUnitMembersList (Rule): # 0..200 'pragma solidity 0.0.0;\n\nimport "foo.sol";\n\nusing A...' + - SourceUnitMembersList (Rule): # 0..42 'pragma solidity 0.0.0;\n\nimport "foo.sol";\n' - PragmaDirective (Rule): # 0..23 "pragma solidity 0.0.0;\n" - PragmaKeyword (Token): "pragma" # 0..6 - VersionPragma (Rule): # 6..21 " solidity 0.0.0" @@ -56,71 +58,5 @@ Tree: - PathImport (Rule): # 30..40 ' "foo.sol"' - AsciiStringLiteral (Token): '"foo.sol"' # 31..40 - Semicolon (Token): ";" # 40..41 - - UsingDirective (Rule): # 42..58 "\nusing A for B;\n" - - UsingKeyword (Token): "using" # 43..48 - - UsingDirectivePath (Rule): # 48..50 " A" - - IdentifierPath (Rule): # 48..50 " A" - - Identifier (Token): "A" # 49..50 - - ForKeyword (Token): "for" # 51..54 - - TypeName (Rule): # 54..56 " B" - - IdentifierPath (Rule): # 54..56 " B" - - Identifier (Token): "B" # 55..56 - - Semicolon (Token): ";" # 56..57 - - ContractDefinition (Rule): # 58..74 "\ncontract C { }\n" - - ContractKeyword (Token): "contract" # 59..67 - - Identifier (Token): "C" # 68..69 - - OpenBrace (Token): "{" # 70..71 - - CloseBrace (Token): "}" # 72..73 - - InterfaceDefinition (Rule): # 74..91 "\ninterface I { }\n" - - InterfaceKeyword (Token): "interface" # 75..84 - - Identifier (Token): "I" # 85..86 - - OpenBrace (Token): "{" # 87..88 - - CloseBrace (Token): "}" # 89..90 - - LibraryDefinition (Rule): # 91..106 "\nlibrary L { }\n" - - LibraryKeyword (Token): "library" # 92..99 - - Identifier (Token): "L" # 100..101 - - OpenBrace (Token): "{" # 102..103 - - CloseBrace (Token): "}" # 104..105 - - StructDefinition (Rule): # 106..120 "\nstruct S { }\n" - - StructKeyword (Token): "struct" # 107..113 - - Identifier (Token): "S" # 114..115 - - OpenBrace (Token): "{" # 116..117 - - CloseBrace (Token): "}" # 118..119 - - EnumDefinition (Rule): # 120..132 "\nenum E { }\n" - - EnumKeyword (Token): "enum" # 121..125 - - Identifier (Token): "E" # 126..127 - - OpenBrace (Token): "{" # 128..129 - - CloseBrace (Token): "}" # 130..131 - - ConstantDefinition (Rule): # 132..156 "\nuint32 constant x = 0;\n" - - TypeName (Rule): # 132..139 "\nuint32" - - UnsignedIntegerType (Token): "uint32" # 133..139 - - ConstantKeyword (Token): "constant" # 140..148 - - Identifier (Token): "x" # 149..150 - - Equal (Token): "=" # 151..152 - - Expression (Rule): # 152..154 " 0" - - NumericExpression (Rule): # 152..154 " 0" - - DecimalLiteral (Token): "0" # 153..154 - - Semicolon (Token): ";" # 154..155 - - FunctionDefinition (Rule): # 156..181 "\nfunction f() public { }\n" - - FunctionKeyword (Token): "function" # 157..165 - - Identifier (Token): "f" # 166..167 - - ParametersDeclaration (Rule): # 167..169 "()" - - OpenParen (Token): "(" # 167..168 - - CloseParen (Token): ")" # 168..169 - - FunctionAttributesList (Rule): # 169..176 " public" - - PublicKeyword (Token): "public" # 170..176 - - Block (Rule): # 176..181 " { }\n" - - OpenBrace (Token): "{" # 177..178 - - CloseBrace (Token): "}" # 179..180 - - ErrorDefinition (Rule): # 181..200 "\nerror E1(string);\n" - - ErrorKeyword (Token): "error" # 182..187 - - Identifier (Token): "E1" # 188..190 - - OpenParen (Token): "(" # 190..191 - - ErrorParametersList (Rule): # 191..197 "string" - - ErrorParameter (Rule): # 191..197 "string" - - TypeName (Rule): # 191..197 "string" - - StringKeyword (Token): "string" # 191..197 - - CloseParen (Token): ")" # 197..198 - - Semicolon (Token): ";" # 198..199 - - EndOfFileTrivia (Rule): "\n" # 200..201 - - SKIPPED (Token): "type T is bool;\n" # 201..217 + - EndOfFileTrivia (Rule): "\n" # 42..43 + - SKIPPED (Token): "using A for B;\n\ncontract C { }\n\ninterface I { }\n\nl..." # 43..217 diff --git a/crates/solidity/testing/snapshots/cst_output/SourceUnit/everything/generated/0.8.8-success.yml b/crates/solidity/testing/snapshots/cst_output/SourceUnit/everything/generated/0.8.13-success.yml similarity index 100% rename from crates/solidity/testing/snapshots/cst_output/SourceUnit/everything/generated/0.8.8-success.yml rename to crates/solidity/testing/snapshots/cst_output/SourceUnit/everything/generated/0.8.13-success.yml diff --git a/crates/solidity/testing/snapshots/cst_output/SourceUnit/top_level_function/generated/0.4.11-failure.yml b/crates/solidity/testing/snapshots/cst_output/SourceUnit/top_level_function/generated/0.4.11-failure.yml new file mode 100644 index 0000000000..d4c7c0a25f --- /dev/null +++ b/crates/solidity/testing/snapshots/cst_output/SourceUnit/top_level_function/generated/0.4.11-failure.yml @@ -0,0 +1,18 @@ +# This file is generated automatically by infrastructure scripts. Please don't edit by hand. + +Source: > + 1 │ function foo() { } │ 0..18 + +Errors: # 1 total + - > + Error: Expected ContractKeyword or EndOfLine or ImportKeyword or InterfaceKeyword or LibraryKeyword or MultilineComment or PragmaKeyword or SingleLineComment or Whitespace. + ╭─[crates/solidity/testing/snapshots/cst_output/SourceUnit/top_level_function/input.sol:1:1] + │ + 1 │ function foo() { } + │ ─────────┬──────── + │ ╰────────── Error occurred here. + ───╯ + +Tree: + - SourceUnit (Rule): # 0..18 "function foo() { }" + - SKIPPED (Token): "function foo() { }" # 0..18 diff --git a/crates/solidity/testing/snapshots/cst_output/SourceUnit/top_level_function/generated/0.6.0-failure.yml b/crates/solidity/testing/snapshots/cst_output/SourceUnit/top_level_function/generated/0.6.0-failure.yml new file mode 100644 index 0000000000..3bf1fe3322 --- /dev/null +++ b/crates/solidity/testing/snapshots/cst_output/SourceUnit/top_level_function/generated/0.6.0-failure.yml @@ -0,0 +1,18 @@ +# This file is generated automatically by infrastructure scripts. Please don't edit by hand. + +Source: > + 1 │ function foo() { } │ 0..18 + +Errors: # 1 total + - > + Error: Expected ContractKeyword or EndOfLine or EnumKeyword or ImportKeyword or InterfaceKeyword or LibraryKeyword or MultilineComment or PragmaKeyword or SingleLineComment or StructKeyword or Whitespace. + ╭─[crates/solidity/testing/snapshots/cst_output/SourceUnit/top_level_function/input.sol:1:1] + │ + 1 │ function foo() { } + │ ─────────┬──────── + │ ╰────────── Error occurred here. + ───╯ + +Tree: + - SourceUnit (Rule): # 0..18 "function foo() { }" + - SKIPPED (Token): "function foo() { }" # 0..18 diff --git a/crates/solidity/testing/snapshots/cst_output/SourceUnit/top_level_function/generated/0.7.1-success.yml b/crates/solidity/testing/snapshots/cst_output/SourceUnit/top_level_function/generated/0.7.1-success.yml new file mode 100644 index 0000000000..815e86f99e --- /dev/null +++ b/crates/solidity/testing/snapshots/cst_output/SourceUnit/top_level_function/generated/0.7.1-success.yml @@ -0,0 +1,19 @@ +# This file is generated automatically by infrastructure scripts. Please don't edit by hand. + +Source: > + 1 │ function foo() { } │ 0..18 + +Errors: [] + +Tree: + - SourceUnit (Rule): # 0..18 "function foo() { }" + - SourceUnitMembersList (Rule): # 0..18 "function foo() { }" + - FunctionDefinition (Rule): # 0..18 "function foo() { }" + - FunctionKeyword (Token): "function" # 0..8 + - Identifier (Token): "foo" # 9..12 + - ParametersDeclaration (Rule): # 12..14 "()" + - OpenParen (Token): "(" # 12..13 + - CloseParen (Token): ")" # 13..14 + - Block (Rule): # 14..18 " { }" + - OpenBrace (Token): "{" # 15..16 + - CloseBrace (Token): "}" # 17..18 diff --git a/crates/solidity/testing/snapshots/cst_output/SourceUnit/top_level_function/input.sol b/crates/solidity/testing/snapshots/cst_output/SourceUnit/top_level_function/input.sol new file mode 100644 index 0000000000..8f8128a22e --- /dev/null +++ b/crates/solidity/testing/snapshots/cst_output/SourceUnit/top_level_function/input.sol @@ -0,0 +1 @@ +function foo() { } \ No newline at end of file diff --git a/crates/solidity/testing/snapshots/cst_output/UserDefinedValueTypeDefinition/bool/generated/0.8.8-success.yml b/crates/solidity/testing/snapshots/cst_output/UserDefinedValueTypeDefinition/bool/generated/0.8.8-success.yml new file mode 100644 index 0000000000..64bc7a0ee4 --- /dev/null +++ b/crates/solidity/testing/snapshots/cst_output/UserDefinedValueTypeDefinition/bool/generated/0.8.8-success.yml @@ -0,0 +1,14 @@ +# This file is generated automatically by infrastructure scripts. Please don't edit by hand. + +Source: > + 1 │ type Foo is bool; │ 0..17 + +Errors: [] + +Tree: + - UserDefinedValueTypeDefinition (Rule): # 0..17 "type Foo is bool;" + - TypeKeyword (Token): "type" # 0..4 + - Identifier (Token): "Foo" # 5..8 + - IsKeyword (Token): "is" # 9..11 + - BoolKeyword (Token): "bool" # 12..16 + - Semicolon (Token): ";" # 16..17 diff --git a/crates/solidity/testing/snapshots/cst_output/UserDefinedValueTypeDefinition/bool/input.sol b/crates/solidity/testing/snapshots/cst_output/UserDefinedValueTypeDefinition/bool/input.sol new file mode 100644 index 0000000000..43d124a4b7 --- /dev/null +++ b/crates/solidity/testing/snapshots/cst_output/UserDefinedValueTypeDefinition/bool/input.sol @@ -0,0 +1 @@ +type Foo is bool; \ No newline at end of file