diff --git a/crates/solidity/inputs/language/definition/04-statements/01-blocks/productions.yml b/crates/solidity/inputs/language/definition/04-statements/01-blocks/productions.yml index 16fcd03d03..82b7dda99a 100644 --- a/crates/solidity/inputs/language/definition/04-statements/01-blocks/productions.yml +++ b/crates/solidity/inputs/language/definition/04-statements/01-blocks/productions.yml @@ -20,6 +20,7 @@ - name: "Statement" kind: "Parser" + inlined: true versioned: 0.4.11: choice: diff --git a/crates/solidity/inputs/language/definition/06-yul/02-yul-statements/productions.yml b/crates/solidity/inputs/language/definition/06-yul/02-yul-statements/productions.yml index 0a3fc4ad18..d789f1a556 100644 --- a/crates/solidity/inputs/language/definition/06-yul/02-yul-statements/productions.yml +++ b/crates/solidity/inputs/language/definition/06-yul/02-yul-statements/productions.yml @@ -20,6 +20,7 @@ - name: "YulStatement" kind: "Parser" + inlined: true versioned: 0.4.11: choice: diff --git a/crates/solidity/inputs/language/src/dsl.rs b/crates/solidity/inputs/language/src/dsl.rs index 3f2b790d69..26c658439f 100644 --- a/crates/solidity/inputs/language/src/dsl.rs +++ b/crates/solidity/inputs/language/src/dsl.rs @@ -493,7 +493,7 @@ slang_grammar! { parser StateVariableDefinition = ((TypeName (StateVariableAttributesList ?) Identifier ((Equal Expression) ?)) terminated by Semicolon) ; - parser Statement = ( + inline parser Statement = ( SimpleStatement | ControlStatement | AssemblyStatement | Block | { introduced in "0.8.0" UncheckedBlock } ) ; @@ -668,7 +668,7 @@ slang_grammar! { parser YulReturnsDeclaration = (MinusGreaterThan YulIdentifiersList) ; - parser YulStatement = ( + inline parser YulStatement = ( YulBlock | YulFunctionDefinition | YulDeclarationStatement | YulAssignmentStatement | YulIfStatement | YulForStatement | YulSwitchStatement | { introduced in "0.6.0" YulLeaveStatement } | YulBreakStatement | YulContinueStatement | YulExpression diff --git a/crates/solidity/outputs/cargo/crate/src/generated/kinds.rs b/crates/solidity/outputs/cargo/crate/src/generated/kinds.rs index 407d67aeea..143e1306a9 100644 --- a/crates/solidity/outputs/cargo/crate/src/generated/kinds.rs +++ b/crates/solidity/outputs/cargo/crate/src/generated/kinds.rs @@ -107,7 +107,6 @@ pub enum ProductionKind { SourceUnitMembersList, StateVariableAttributesList, StateVariableDefinition, - Statement, StatementsList, StructDefinition, StructMember, @@ -155,7 +154,6 @@ pub enum ProductionKind { YulLeaveStatement, YulParametersDeclaration, YulReturnsDeclaration, - YulStatement, YulStatementsList, YulSwitchCase, YulSwitchCasesList, @@ -272,7 +270,6 @@ pub enum RuleKind { SourceUnitMembersList, StateVariableAttributesList, StateVariableDefinition, - Statement, StatementsList, StructDefinition, StructMember, @@ -325,7 +322,6 @@ pub enum RuleKind { YulLeaveStatement, YulParametersDeclaration, YulReturnsDeclaration, - YulStatement, YulStatementsList, YulSwitchCase, YulSwitchCasesList, diff --git a/crates/solidity/outputs/cargo/crate/src/generated/language.rs b/crates/solidity/outputs/cargo/crate/src/generated/language.rs index b5ab5fe679..f0310d5894 100644 --- a/crates/solidity/outputs/cargo/crate/src/generated/language.rs +++ b/crates/solidity/outputs/cargo/crate/src/generated/language.rs @@ -875,7 +875,63 @@ impl Language { input, TokenKind::DoKeyword, ))?; - seq.elem(self.statement(input))?; + seq.elem(ChoiceHelper::run(input, |mut choice, input| { + let result = ChoiceHelper::run(input, |mut choice, input| { + let result = self.expression_statement(input); + choice.consider(input, result)?; + let result = self.variable_declaration_statement(input); + choice.consider(input, result)?; + let result = self.tuple_deconstruction_statement(input); + choice.consider(input, result)?; + choice.finish(input) + }); + choice.consider(input, result)?; + let result = ChoiceHelper::run(input, |mut choice, input| { + let result = self.if_statement(input); + choice.consider(input, result)?; + let result = self.for_statement(input); + choice.consider(input, result)?; + let result = self.while_statement(input); + choice.consider(input, result)?; + let result = self.do_while_statement(input); + choice.consider(input, result)?; + let result = self.continue_statement(input); + choice.consider(input, result)?; + let result = self.break_statement(input); + choice.consider(input, result)?; + let result = self.delete_statement(input); + choice.consider(input, result)?; + let result = self.return_statement(input); + choice.consider(input, result)?; + if self.version_is_at_least_0_4_21 { + let result = self.emit_statement(input); + choice.consider(input, result)?; + } + if !self.version_is_at_least_0_5_0 { + let result = self.throw_statement(input); + choice.consider(input, result)?; + } + if self.version_is_at_least_0_6_0 { + let result = self.try_statement(input); + choice.consider(input, result)?; + } + if self.version_is_at_least_0_8_4 { + let result = self.revert_statement(input); + choice.consider(input, result)?; + } + choice.finish(input) + }); + choice.consider(input, result)?; + let result = self.assembly_statement(input); + choice.consider(input, result)?; + let result = self.block(input); + choice.consider(input, result)?; + if self.version_is_at_least_0_8_0 { + let result = self.unchecked_block(input); + choice.consider(input, result)?; + } + choice.finish(input) + }))?; seq.elem(self.parse_token_with_trivia::( input, TokenKind::WhileKeyword, @@ -2015,7 +2071,63 @@ impl Language { ))?; seq.finish() }))?; - seq.elem(self.statement(input))?; + seq.elem(ChoiceHelper::run(input, |mut choice, input| { + let result = ChoiceHelper::run(input, |mut choice, input| { + let result = self.expression_statement(input); + choice.consider(input, result)?; + let result = self.variable_declaration_statement(input); + choice.consider(input, result)?; + let result = self.tuple_deconstruction_statement(input); + choice.consider(input, result)?; + choice.finish(input) + }); + choice.consider(input, result)?; + let result = ChoiceHelper::run(input, |mut choice, input| { + let result = self.if_statement(input); + choice.consider(input, result)?; + let result = self.for_statement(input); + choice.consider(input, result)?; + let result = self.while_statement(input); + choice.consider(input, result)?; + let result = self.do_while_statement(input); + choice.consider(input, result)?; + let result = self.continue_statement(input); + choice.consider(input, result)?; + let result = self.break_statement(input); + choice.consider(input, result)?; + let result = self.delete_statement(input); + choice.consider(input, result)?; + let result = self.return_statement(input); + choice.consider(input, result)?; + if self.version_is_at_least_0_4_21 { + let result = self.emit_statement(input); + choice.consider(input, result)?; + } + if !self.version_is_at_least_0_5_0 { + let result = self.throw_statement(input); + choice.consider(input, result)?; + } + if self.version_is_at_least_0_6_0 { + let result = self.try_statement(input); + choice.consider(input, result)?; + } + if self.version_is_at_least_0_8_4 { + let result = self.revert_statement(input); + choice.consider(input, result)?; + } + choice.finish(input) + }); + choice.consider(input, result)?; + let result = self.assembly_statement(input); + choice.consider(input, result)?; + let result = self.block(input); + choice.consider(input, result)?; + if self.version_is_at_least_0_8_0 { + let result = self.unchecked_block(input); + choice.consider(input, result)?; + } + choice.finish(input) + }))?; seq.finish() }) .with_kind(RuleKind::ForStatement) @@ -2380,13 +2492,125 @@ impl Language { ))?; seq.finish() }))?; - seq.elem(self.statement(input))?; + seq.elem(ChoiceHelper::run(input, |mut choice, input| { + let result = ChoiceHelper::run(input, |mut choice, input| { + let result = self.expression_statement(input); + choice.consider(input, result)?; + let result = self.variable_declaration_statement(input); + choice.consider(input, result)?; + let result = self.tuple_deconstruction_statement(input); + choice.consider(input, result)?; + choice.finish(input) + }); + choice.consider(input, result)?; + let result = ChoiceHelper::run(input, |mut choice, input| { + let result = self.if_statement(input); + choice.consider(input, result)?; + let result = self.for_statement(input); + choice.consider(input, result)?; + let result = self.while_statement(input); + choice.consider(input, result)?; + let result = self.do_while_statement(input); + choice.consider(input, result)?; + let result = self.continue_statement(input); + choice.consider(input, result)?; + let result = self.break_statement(input); + choice.consider(input, result)?; + let result = self.delete_statement(input); + choice.consider(input, result)?; + let result = self.return_statement(input); + choice.consider(input, result)?; + if self.version_is_at_least_0_4_21 { + let result = self.emit_statement(input); + choice.consider(input, result)?; + } + if !self.version_is_at_least_0_5_0 { + let result = self.throw_statement(input); + choice.consider(input, result)?; + } + if self.version_is_at_least_0_6_0 { + let result = self.try_statement(input); + choice.consider(input, result)?; + } + if self.version_is_at_least_0_8_4 { + let result = self.revert_statement(input); + choice.consider(input, result)?; + } + choice.finish(input) + }); + choice.consider(input, result)?; + let result = self.assembly_statement(input); + choice.consider(input, result)?; + let result = self.block(input); + choice.consider(input, result)?; + if self.version_is_at_least_0_8_0 { + let result = self.unchecked_block(input); + choice.consider(input, result)?; + } + choice.finish(input) + }))?; seq.elem(OptionalHelper::transform(SequenceHelper::run(|mut seq| { seq.elem(self.parse_token_with_trivia::( input, TokenKind::ElseKeyword, ))?; - seq.elem(self.statement(input))?; + seq.elem(ChoiceHelper::run(input, |mut choice, input| { + let result = ChoiceHelper::run(input, |mut choice, input| { + let result = self.expression_statement(input); + choice.consider(input, result)?; + let result = self.variable_declaration_statement(input); + choice.consider(input, result)?; + let result = self.tuple_deconstruction_statement(input); + choice.consider(input, result)?; + choice.finish(input) + }); + choice.consider(input, result)?; + let result = ChoiceHelper::run(input, |mut choice, input| { + let result = self.if_statement(input); + choice.consider(input, result)?; + let result = self.for_statement(input); + choice.consider(input, result)?; + let result = self.while_statement(input); + choice.consider(input, result)?; + let result = self.do_while_statement(input); + choice.consider(input, result)?; + let result = self.continue_statement(input); + choice.consider(input, result)?; + let result = self.break_statement(input); + choice.consider(input, result)?; + let result = self.delete_statement(input); + choice.consider(input, result)?; + let result = self.return_statement(input); + choice.consider(input, result)?; + if self.version_is_at_least_0_4_21 { + let result = self.emit_statement(input); + choice.consider(input, result)?; + } + if !self.version_is_at_least_0_5_0 { + let result = self.throw_statement(input); + choice.consider(input, result)?; + } + if self.version_is_at_least_0_6_0 { + let result = self.try_statement(input); + choice.consider(input, result)?; + } + if self.version_is_at_least_0_8_4 { + let result = self.revert_statement(input); + choice.consider(input, result)?; + } + choice.finish(input) + }); + choice.consider(input, result)?; + let result = self.assembly_statement(input); + choice.consider(input, result)?; + let result = self.block(input); + choice.consider(input, result)?; + if self.version_is_at_least_0_8_0 { + let result = self.unchecked_block(input); + choice.consider(input, result)?; + } + choice.finish(input) + }))?; seq.finish() })))?; seq.finish() @@ -3414,71 +3638,67 @@ impl Language { } #[allow(unused_assignments, unused_parens)] - fn statement(&self, input: &mut ParserContext) -> ParserResult { - ChoiceHelper::run(input, |mut choice, input| { - let result = ChoiceHelper::run(input, |mut choice, input| { - let result = self.expression_statement(input); - choice.consider(input, result)?; - let result = self.variable_declaration_statement(input); - choice.consider(input, result)?; - let result = self.tuple_deconstruction_statement(input); - choice.consider(input, result)?; - choice.finish(input) - }); - choice.consider(input, result)?; - let result = ChoiceHelper::run(input, |mut choice, input| { - let result = self.if_statement(input); - choice.consider(input, result)?; - let result = self.for_statement(input); - choice.consider(input, result)?; - let result = self.while_statement(input); - choice.consider(input, result)?; - let result = self.do_while_statement(input); - choice.consider(input, result)?; - let result = self.continue_statement(input); - choice.consider(input, result)?; - let result = self.break_statement(input); - choice.consider(input, result)?; - let result = self.delete_statement(input); - choice.consider(input, result)?; - let result = self.return_statement(input); + fn statements_list(&self, input: &mut ParserContext) -> ParserResult { + OneOrMoreHelper::run(input, |input| { + ChoiceHelper::run(input, |mut choice, input| { + let result = ChoiceHelper::run(input, |mut choice, input| { + let result = self.expression_statement(input); + choice.consider(input, result)?; + let result = self.variable_declaration_statement(input); + choice.consider(input, result)?; + let result = self.tuple_deconstruction_statement(input); + choice.consider(input, result)?; + choice.finish(input) + }); choice.consider(input, result)?; - if self.version_is_at_least_0_4_21 { - let result = self.emit_statement(input); + let result = ChoiceHelper::run(input, |mut choice, input| { + let result = self.if_statement(input); choice.consider(input, result)?; - } - if !self.version_is_at_least_0_5_0 { - let result = self.throw_statement(input); + let result = self.for_statement(input); choice.consider(input, result)?; - } - if self.version_is_at_least_0_6_0 { - let result = self.try_statement(input); + let result = self.while_statement(input); choice.consider(input, result)?; - } - if self.version_is_at_least_0_8_4 { - let result = self.revert_statement(input); + let result = self.do_while_statement(input); + choice.consider(input, result)?; + let result = self.continue_statement(input); + choice.consider(input, result)?; + let result = self.break_statement(input); + choice.consider(input, result)?; + let result = self.delete_statement(input); + choice.consider(input, result)?; + let result = self.return_statement(input); + choice.consider(input, result)?; + if self.version_is_at_least_0_4_21 { + let result = self.emit_statement(input); + choice.consider(input, result)?; + } + if !self.version_is_at_least_0_5_0 { + let result = self.throw_statement(input); + choice.consider(input, result)?; + } + if self.version_is_at_least_0_6_0 { + let result = self.try_statement(input); + choice.consider(input, result)?; + } + if self.version_is_at_least_0_8_4 { + let result = self.revert_statement(input); + choice.consider(input, result)?; + } + choice.finish(input) + }); + choice.consider(input, result)?; + let result = self.assembly_statement(input); + choice.consider(input, result)?; + let result = self.block(input); + choice.consider(input, result)?; + if self.version_is_at_least_0_8_0 { + let result = self.unchecked_block(input); choice.consider(input, result)?; } choice.finish(input) - }); - choice.consider(input, result)?; - let result = self.assembly_statement(input); - choice.consider(input, result)?; - let result = self.block(input); - choice.consider(input, result)?; - if self.version_is_at_least_0_8_0 { - let result = self.unchecked_block(input); - choice.consider(input, result)?; - } - choice.finish(input) + }) }) - .with_kind(RuleKind::Statement) - } - - #[allow(unused_assignments, unused_parens)] - fn statements_list(&self, input: &mut ParserContext) -> ParserResult { - OneOrMoreHelper::run(input, |input| self.statement(input)) - .with_kind(RuleKind::StatementsList) + .with_kind(RuleKind::StatementsList) } #[allow(unused_assignments, unused_parens)] @@ -4622,7 +4842,63 @@ impl Language { ))?; seq.finish() }))?; - seq.elem(self.statement(input))?; + seq.elem(ChoiceHelper::run(input, |mut choice, input| { + let result = ChoiceHelper::run(input, |mut choice, input| { + let result = self.expression_statement(input); + choice.consider(input, result)?; + let result = self.variable_declaration_statement(input); + choice.consider(input, result)?; + let result = self.tuple_deconstruction_statement(input); + choice.consider(input, result)?; + choice.finish(input) + }); + choice.consider(input, result)?; + let result = ChoiceHelper::run(input, |mut choice, input| { + let result = self.if_statement(input); + choice.consider(input, result)?; + let result = self.for_statement(input); + choice.consider(input, result)?; + let result = self.while_statement(input); + choice.consider(input, result)?; + let result = self.do_while_statement(input); + choice.consider(input, result)?; + let result = self.continue_statement(input); + choice.consider(input, result)?; + let result = self.break_statement(input); + choice.consider(input, result)?; + let result = self.delete_statement(input); + choice.consider(input, result)?; + let result = self.return_statement(input); + choice.consider(input, result)?; + if self.version_is_at_least_0_4_21 { + let result = self.emit_statement(input); + choice.consider(input, result)?; + } + if !self.version_is_at_least_0_5_0 { + let result = self.throw_statement(input); + choice.consider(input, result)?; + } + if self.version_is_at_least_0_6_0 { + let result = self.try_statement(input); + choice.consider(input, result)?; + } + if self.version_is_at_least_0_8_4 { + let result = self.revert_statement(input); + choice.consider(input, result)?; + } + choice.finish(input) + }); + choice.consider(input, result)?; + let result = self.assembly_statement(input); + choice.consider(input, result)?; + let result = self.block(input); + choice.consider(input, result)?; + if self.version_is_at_least_0_8_0 { + let result = self.unchecked_block(input); + choice.consider(input, result)?; + } + choice.finish(input) + }))?; seq.finish() }) .with_kind(RuleKind::WhileStatement) @@ -4986,41 +5262,37 @@ impl Language { } #[allow(unused_assignments, unused_parens)] - fn yul_statement(&self, input: &mut ParserContext) -> ParserResult { - ChoiceHelper::run(input, |mut choice, input| { - let result = self.yul_block(input); - choice.consider(input, result)?; - let result = self.yul_function_definition(input); - choice.consider(input, result)?; - let result = self.yul_declaration_statement(input); - choice.consider(input, result)?; - let result = self.yul_assignment_statement(input); - choice.consider(input, result)?; - let result = self.yul_if_statement(input); - choice.consider(input, result)?; - let result = self.yul_for_statement(input); - choice.consider(input, result)?; - let result = self.yul_switch_statement(input); - choice.consider(input, result)?; - if self.version_is_at_least_0_6_0 { - let result = self.yul_leave_statement(input); + fn yul_statements_list(&self, input: &mut ParserContext) -> ParserResult { + OneOrMoreHelper::run(input, |input| { + ChoiceHelper::run(input, |mut choice, input| { + let result = self.yul_block(input); choice.consider(input, result)?; - } - let result = self.yul_break_statement(input); - choice.consider(input, result)?; - let result = self.yul_continue_statement(input); - choice.consider(input, result)?; - let result = self.yul_expression(input); - choice.consider(input, result)?; - choice.finish(input) + let result = self.yul_function_definition(input); + choice.consider(input, result)?; + let result = self.yul_declaration_statement(input); + choice.consider(input, result)?; + let result = self.yul_assignment_statement(input); + choice.consider(input, result)?; + let result = self.yul_if_statement(input); + choice.consider(input, result)?; + let result = self.yul_for_statement(input); + choice.consider(input, result)?; + let result = self.yul_switch_statement(input); + choice.consider(input, result)?; + if self.version_is_at_least_0_6_0 { + let result = self.yul_leave_statement(input); + choice.consider(input, result)?; + } + let result = self.yul_break_statement(input); + choice.consider(input, result)?; + let result = self.yul_continue_statement(input); + choice.consider(input, result)?; + let result = self.yul_expression(input); + choice.consider(input, result)?; + choice.finish(input) + }) }) - .with_kind(RuleKind::YulStatement) - } - - #[allow(unused_assignments, unused_parens)] - fn yul_statements_list(&self, input: &mut ParserContext) -> ParserResult { - OneOrMoreHelper::run(input, |input| self.yul_statement(input)) - .with_kind(RuleKind::YulStatementsList) + .with_kind(RuleKind::YulStatementsList) } #[allow(unused_assignments, unused_parens)] @@ -5815,7 +6087,6 @@ impl Language { ProductionKind::StateVariableDefinition => { Self::state_variable_definition.parse(self, input) } - ProductionKind::Statement => Self::statement.parse(self, input), ProductionKind::StatementsList => Self::statements_list.parse(self, input), ProductionKind::StructDefinition => Self::struct_definition.parse(self, input), ProductionKind::StructMember => Self::struct_member.parse(self, input), @@ -5897,7 +6168,6 @@ impl Language { ProductionKind::YulReturnsDeclaration => { Self::yul_returns_declaration.parse(self, input) } - ProductionKind::YulStatement => Self::yul_statement.parse(self, input), ProductionKind::YulStatementsList => Self::yul_statements_list.parse(self, input), ProductionKind::YulSwitchCase => Self::yul_switch_case.parse(self, input), ProductionKind::YulSwitchCasesList => Self::yul_switch_cases_list.parse(self, input), diff --git a/crates/solidity/outputs/cargo/tests/src/cst_output/generated/ThrowStatement.rs b/crates/solidity/outputs/cargo/tests/src/cst_output/generated/ThrowStatement.rs new file mode 100644 index 0000000000..e77171273f --- /dev/null +++ b/crates/solidity/outputs/cargo/tests/src/cst_output/generated/ThrowStatement.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 throw() -> Result<()> { + return run("ThrowStatement", "throw"); +} diff --git a/crates/solidity/outputs/cargo/tests/src/cst_output/generated/Statement.rs b/crates/solidity/outputs/cargo/tests/src/cst_output/generated/TryStatement.rs similarity index 62% rename from crates/solidity/outputs/cargo/tests/src/cst_output/generated/Statement.rs rename to crates/solidity/outputs/cargo/tests/src/cst_output/generated/TryStatement.rs index 47c6e79b01..13170e569a 100644 --- a/crates/solidity/outputs/cargo/tests/src/cst_output/generated/Statement.rs +++ b/crates/solidity/outputs/cargo/tests/src/cst_output/generated/TryStatement.rs @@ -3,12 +3,7 @@ use crate::cst_output::runner::run; use anyhow::Result; -#[test] -fn throw() -> Result<()> { - return run("Statement", "throw"); -} - #[test] fn try_catch() -> Result<()> { - return run("Statement", "try_catch"); + return run("TryStatement", "try_catch"); } diff --git a/crates/solidity/outputs/cargo/tests/src/cst_output/generated/YulStatement.rs b/crates/solidity/outputs/cargo/tests/src/cst_output/generated/YulLeaveStatement.rs similarity index 80% rename from crates/solidity/outputs/cargo/tests/src/cst_output/generated/YulStatement.rs rename to crates/solidity/outputs/cargo/tests/src/cst_output/generated/YulLeaveStatement.rs index 9ceeadba5a..569188dce7 100644 --- a/crates/solidity/outputs/cargo/tests/src/cst_output/generated/YulStatement.rs +++ b/crates/solidity/outputs/cargo/tests/src/cst_output/generated/YulLeaveStatement.rs @@ -5,5 +5,5 @@ use anyhow::Result; #[test] fn leave() -> Result<()> { - return run("YulStatement", "leave"); + return run("YulLeaveStatement", "leave"); } 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 74b616e501..2a639df963 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 @@ -54,12 +54,14 @@ mod ReturnStatement; #[allow(non_snake_case)] mod SourceUnit; #[allow(non_snake_case)] -mod Statement; -#[allow(non_snake_case)] mod StatementsList; #[allow(non_snake_case)] mod StructDefinition; #[allow(non_snake_case)] +mod ThrowStatement; +#[allow(non_snake_case)] +mod TryStatement; +#[allow(non_snake_case)] mod TupleDeconstructionStatement; #[allow(non_snake_case)] mod TupleExpression; @@ -82,7 +84,7 @@ mod YulBlock; #[allow(non_snake_case)] mod YulExpression; #[allow(non_snake_case)] -mod YulStatement; +mod YulLeaveStatement; pub const VERSION_BREAKS: [Version; 19] = [ Version::new(0, 4, 11), diff --git a/crates/solidity/outputs/npm/crate/src/generated/kinds.rs b/crates/solidity/outputs/npm/crate/src/generated/kinds.rs index 407d67aeea..143e1306a9 100644 --- a/crates/solidity/outputs/npm/crate/src/generated/kinds.rs +++ b/crates/solidity/outputs/npm/crate/src/generated/kinds.rs @@ -107,7 +107,6 @@ pub enum ProductionKind { SourceUnitMembersList, StateVariableAttributesList, StateVariableDefinition, - Statement, StatementsList, StructDefinition, StructMember, @@ -155,7 +154,6 @@ pub enum ProductionKind { YulLeaveStatement, YulParametersDeclaration, YulReturnsDeclaration, - YulStatement, YulStatementsList, YulSwitchCase, YulSwitchCasesList, @@ -272,7 +270,6 @@ pub enum RuleKind { SourceUnitMembersList, StateVariableAttributesList, StateVariableDefinition, - Statement, StatementsList, StructDefinition, StructMember, @@ -325,7 +322,6 @@ pub enum RuleKind { YulLeaveStatement, YulParametersDeclaration, YulReturnsDeclaration, - YulStatement, YulStatementsList, YulSwitchCase, YulSwitchCasesList, diff --git a/crates/solidity/outputs/npm/crate/src/generated/language.rs b/crates/solidity/outputs/npm/crate/src/generated/language.rs index b5ab5fe679..f0310d5894 100644 --- a/crates/solidity/outputs/npm/crate/src/generated/language.rs +++ b/crates/solidity/outputs/npm/crate/src/generated/language.rs @@ -875,7 +875,63 @@ impl Language { input, TokenKind::DoKeyword, ))?; - seq.elem(self.statement(input))?; + seq.elem(ChoiceHelper::run(input, |mut choice, input| { + let result = ChoiceHelper::run(input, |mut choice, input| { + let result = self.expression_statement(input); + choice.consider(input, result)?; + let result = self.variable_declaration_statement(input); + choice.consider(input, result)?; + let result = self.tuple_deconstruction_statement(input); + choice.consider(input, result)?; + choice.finish(input) + }); + choice.consider(input, result)?; + let result = ChoiceHelper::run(input, |mut choice, input| { + let result = self.if_statement(input); + choice.consider(input, result)?; + let result = self.for_statement(input); + choice.consider(input, result)?; + let result = self.while_statement(input); + choice.consider(input, result)?; + let result = self.do_while_statement(input); + choice.consider(input, result)?; + let result = self.continue_statement(input); + choice.consider(input, result)?; + let result = self.break_statement(input); + choice.consider(input, result)?; + let result = self.delete_statement(input); + choice.consider(input, result)?; + let result = self.return_statement(input); + choice.consider(input, result)?; + if self.version_is_at_least_0_4_21 { + let result = self.emit_statement(input); + choice.consider(input, result)?; + } + if !self.version_is_at_least_0_5_0 { + let result = self.throw_statement(input); + choice.consider(input, result)?; + } + if self.version_is_at_least_0_6_0 { + let result = self.try_statement(input); + choice.consider(input, result)?; + } + if self.version_is_at_least_0_8_4 { + let result = self.revert_statement(input); + choice.consider(input, result)?; + } + choice.finish(input) + }); + choice.consider(input, result)?; + let result = self.assembly_statement(input); + choice.consider(input, result)?; + let result = self.block(input); + choice.consider(input, result)?; + if self.version_is_at_least_0_8_0 { + let result = self.unchecked_block(input); + choice.consider(input, result)?; + } + choice.finish(input) + }))?; seq.elem(self.parse_token_with_trivia::( input, TokenKind::WhileKeyword, @@ -2015,7 +2071,63 @@ impl Language { ))?; seq.finish() }))?; - seq.elem(self.statement(input))?; + seq.elem(ChoiceHelper::run(input, |mut choice, input| { + let result = ChoiceHelper::run(input, |mut choice, input| { + let result = self.expression_statement(input); + choice.consider(input, result)?; + let result = self.variable_declaration_statement(input); + choice.consider(input, result)?; + let result = self.tuple_deconstruction_statement(input); + choice.consider(input, result)?; + choice.finish(input) + }); + choice.consider(input, result)?; + let result = ChoiceHelper::run(input, |mut choice, input| { + let result = self.if_statement(input); + choice.consider(input, result)?; + let result = self.for_statement(input); + choice.consider(input, result)?; + let result = self.while_statement(input); + choice.consider(input, result)?; + let result = self.do_while_statement(input); + choice.consider(input, result)?; + let result = self.continue_statement(input); + choice.consider(input, result)?; + let result = self.break_statement(input); + choice.consider(input, result)?; + let result = self.delete_statement(input); + choice.consider(input, result)?; + let result = self.return_statement(input); + choice.consider(input, result)?; + if self.version_is_at_least_0_4_21 { + let result = self.emit_statement(input); + choice.consider(input, result)?; + } + if !self.version_is_at_least_0_5_0 { + let result = self.throw_statement(input); + choice.consider(input, result)?; + } + if self.version_is_at_least_0_6_0 { + let result = self.try_statement(input); + choice.consider(input, result)?; + } + if self.version_is_at_least_0_8_4 { + let result = self.revert_statement(input); + choice.consider(input, result)?; + } + choice.finish(input) + }); + choice.consider(input, result)?; + let result = self.assembly_statement(input); + choice.consider(input, result)?; + let result = self.block(input); + choice.consider(input, result)?; + if self.version_is_at_least_0_8_0 { + let result = self.unchecked_block(input); + choice.consider(input, result)?; + } + choice.finish(input) + }))?; seq.finish() }) .with_kind(RuleKind::ForStatement) @@ -2380,13 +2492,125 @@ impl Language { ))?; seq.finish() }))?; - seq.elem(self.statement(input))?; + seq.elem(ChoiceHelper::run(input, |mut choice, input| { + let result = ChoiceHelper::run(input, |mut choice, input| { + let result = self.expression_statement(input); + choice.consider(input, result)?; + let result = self.variable_declaration_statement(input); + choice.consider(input, result)?; + let result = self.tuple_deconstruction_statement(input); + choice.consider(input, result)?; + choice.finish(input) + }); + choice.consider(input, result)?; + let result = ChoiceHelper::run(input, |mut choice, input| { + let result = self.if_statement(input); + choice.consider(input, result)?; + let result = self.for_statement(input); + choice.consider(input, result)?; + let result = self.while_statement(input); + choice.consider(input, result)?; + let result = self.do_while_statement(input); + choice.consider(input, result)?; + let result = self.continue_statement(input); + choice.consider(input, result)?; + let result = self.break_statement(input); + choice.consider(input, result)?; + let result = self.delete_statement(input); + choice.consider(input, result)?; + let result = self.return_statement(input); + choice.consider(input, result)?; + if self.version_is_at_least_0_4_21 { + let result = self.emit_statement(input); + choice.consider(input, result)?; + } + if !self.version_is_at_least_0_5_0 { + let result = self.throw_statement(input); + choice.consider(input, result)?; + } + if self.version_is_at_least_0_6_0 { + let result = self.try_statement(input); + choice.consider(input, result)?; + } + if self.version_is_at_least_0_8_4 { + let result = self.revert_statement(input); + choice.consider(input, result)?; + } + choice.finish(input) + }); + choice.consider(input, result)?; + let result = self.assembly_statement(input); + choice.consider(input, result)?; + let result = self.block(input); + choice.consider(input, result)?; + if self.version_is_at_least_0_8_0 { + let result = self.unchecked_block(input); + choice.consider(input, result)?; + } + choice.finish(input) + }))?; seq.elem(OptionalHelper::transform(SequenceHelper::run(|mut seq| { seq.elem(self.parse_token_with_trivia::( input, TokenKind::ElseKeyword, ))?; - seq.elem(self.statement(input))?; + seq.elem(ChoiceHelper::run(input, |mut choice, input| { + let result = ChoiceHelper::run(input, |mut choice, input| { + let result = self.expression_statement(input); + choice.consider(input, result)?; + let result = self.variable_declaration_statement(input); + choice.consider(input, result)?; + let result = self.tuple_deconstruction_statement(input); + choice.consider(input, result)?; + choice.finish(input) + }); + choice.consider(input, result)?; + let result = ChoiceHelper::run(input, |mut choice, input| { + let result = self.if_statement(input); + choice.consider(input, result)?; + let result = self.for_statement(input); + choice.consider(input, result)?; + let result = self.while_statement(input); + choice.consider(input, result)?; + let result = self.do_while_statement(input); + choice.consider(input, result)?; + let result = self.continue_statement(input); + choice.consider(input, result)?; + let result = self.break_statement(input); + choice.consider(input, result)?; + let result = self.delete_statement(input); + choice.consider(input, result)?; + let result = self.return_statement(input); + choice.consider(input, result)?; + if self.version_is_at_least_0_4_21 { + let result = self.emit_statement(input); + choice.consider(input, result)?; + } + if !self.version_is_at_least_0_5_0 { + let result = self.throw_statement(input); + choice.consider(input, result)?; + } + if self.version_is_at_least_0_6_0 { + let result = self.try_statement(input); + choice.consider(input, result)?; + } + if self.version_is_at_least_0_8_4 { + let result = self.revert_statement(input); + choice.consider(input, result)?; + } + choice.finish(input) + }); + choice.consider(input, result)?; + let result = self.assembly_statement(input); + choice.consider(input, result)?; + let result = self.block(input); + choice.consider(input, result)?; + if self.version_is_at_least_0_8_0 { + let result = self.unchecked_block(input); + choice.consider(input, result)?; + } + choice.finish(input) + }))?; seq.finish() })))?; seq.finish() @@ -3414,71 +3638,67 @@ impl Language { } #[allow(unused_assignments, unused_parens)] - fn statement(&self, input: &mut ParserContext) -> ParserResult { - ChoiceHelper::run(input, |mut choice, input| { - let result = ChoiceHelper::run(input, |mut choice, input| { - let result = self.expression_statement(input); - choice.consider(input, result)?; - let result = self.variable_declaration_statement(input); - choice.consider(input, result)?; - let result = self.tuple_deconstruction_statement(input); - choice.consider(input, result)?; - choice.finish(input) - }); - choice.consider(input, result)?; - let result = ChoiceHelper::run(input, |mut choice, input| { - let result = self.if_statement(input); - choice.consider(input, result)?; - let result = self.for_statement(input); - choice.consider(input, result)?; - let result = self.while_statement(input); - choice.consider(input, result)?; - let result = self.do_while_statement(input); - choice.consider(input, result)?; - let result = self.continue_statement(input); - choice.consider(input, result)?; - let result = self.break_statement(input); - choice.consider(input, result)?; - let result = self.delete_statement(input); - choice.consider(input, result)?; - let result = self.return_statement(input); + fn statements_list(&self, input: &mut ParserContext) -> ParserResult { + OneOrMoreHelper::run(input, |input| { + ChoiceHelper::run(input, |mut choice, input| { + let result = ChoiceHelper::run(input, |mut choice, input| { + let result = self.expression_statement(input); + choice.consider(input, result)?; + let result = self.variable_declaration_statement(input); + choice.consider(input, result)?; + let result = self.tuple_deconstruction_statement(input); + choice.consider(input, result)?; + choice.finish(input) + }); choice.consider(input, result)?; - if self.version_is_at_least_0_4_21 { - let result = self.emit_statement(input); + let result = ChoiceHelper::run(input, |mut choice, input| { + let result = self.if_statement(input); choice.consider(input, result)?; - } - if !self.version_is_at_least_0_5_0 { - let result = self.throw_statement(input); + let result = self.for_statement(input); choice.consider(input, result)?; - } - if self.version_is_at_least_0_6_0 { - let result = self.try_statement(input); + let result = self.while_statement(input); choice.consider(input, result)?; - } - if self.version_is_at_least_0_8_4 { - let result = self.revert_statement(input); + let result = self.do_while_statement(input); + choice.consider(input, result)?; + let result = self.continue_statement(input); + choice.consider(input, result)?; + let result = self.break_statement(input); + choice.consider(input, result)?; + let result = self.delete_statement(input); + choice.consider(input, result)?; + let result = self.return_statement(input); + choice.consider(input, result)?; + if self.version_is_at_least_0_4_21 { + let result = self.emit_statement(input); + choice.consider(input, result)?; + } + if !self.version_is_at_least_0_5_0 { + let result = self.throw_statement(input); + choice.consider(input, result)?; + } + if self.version_is_at_least_0_6_0 { + let result = self.try_statement(input); + choice.consider(input, result)?; + } + if self.version_is_at_least_0_8_4 { + let result = self.revert_statement(input); + choice.consider(input, result)?; + } + choice.finish(input) + }); + choice.consider(input, result)?; + let result = self.assembly_statement(input); + choice.consider(input, result)?; + let result = self.block(input); + choice.consider(input, result)?; + if self.version_is_at_least_0_8_0 { + let result = self.unchecked_block(input); choice.consider(input, result)?; } choice.finish(input) - }); - choice.consider(input, result)?; - let result = self.assembly_statement(input); - choice.consider(input, result)?; - let result = self.block(input); - choice.consider(input, result)?; - if self.version_is_at_least_0_8_0 { - let result = self.unchecked_block(input); - choice.consider(input, result)?; - } - choice.finish(input) + }) }) - .with_kind(RuleKind::Statement) - } - - #[allow(unused_assignments, unused_parens)] - fn statements_list(&self, input: &mut ParserContext) -> ParserResult { - OneOrMoreHelper::run(input, |input| self.statement(input)) - .with_kind(RuleKind::StatementsList) + .with_kind(RuleKind::StatementsList) } #[allow(unused_assignments, unused_parens)] @@ -4622,7 +4842,63 @@ impl Language { ))?; seq.finish() }))?; - seq.elem(self.statement(input))?; + seq.elem(ChoiceHelper::run(input, |mut choice, input| { + let result = ChoiceHelper::run(input, |mut choice, input| { + let result = self.expression_statement(input); + choice.consider(input, result)?; + let result = self.variable_declaration_statement(input); + choice.consider(input, result)?; + let result = self.tuple_deconstruction_statement(input); + choice.consider(input, result)?; + choice.finish(input) + }); + choice.consider(input, result)?; + let result = ChoiceHelper::run(input, |mut choice, input| { + let result = self.if_statement(input); + choice.consider(input, result)?; + let result = self.for_statement(input); + choice.consider(input, result)?; + let result = self.while_statement(input); + choice.consider(input, result)?; + let result = self.do_while_statement(input); + choice.consider(input, result)?; + let result = self.continue_statement(input); + choice.consider(input, result)?; + let result = self.break_statement(input); + choice.consider(input, result)?; + let result = self.delete_statement(input); + choice.consider(input, result)?; + let result = self.return_statement(input); + choice.consider(input, result)?; + if self.version_is_at_least_0_4_21 { + let result = self.emit_statement(input); + choice.consider(input, result)?; + } + if !self.version_is_at_least_0_5_0 { + let result = self.throw_statement(input); + choice.consider(input, result)?; + } + if self.version_is_at_least_0_6_0 { + let result = self.try_statement(input); + choice.consider(input, result)?; + } + if self.version_is_at_least_0_8_4 { + let result = self.revert_statement(input); + choice.consider(input, result)?; + } + choice.finish(input) + }); + choice.consider(input, result)?; + let result = self.assembly_statement(input); + choice.consider(input, result)?; + let result = self.block(input); + choice.consider(input, result)?; + if self.version_is_at_least_0_8_0 { + let result = self.unchecked_block(input); + choice.consider(input, result)?; + } + choice.finish(input) + }))?; seq.finish() }) .with_kind(RuleKind::WhileStatement) @@ -4986,41 +5262,37 @@ impl Language { } #[allow(unused_assignments, unused_parens)] - fn yul_statement(&self, input: &mut ParserContext) -> ParserResult { - ChoiceHelper::run(input, |mut choice, input| { - let result = self.yul_block(input); - choice.consider(input, result)?; - let result = self.yul_function_definition(input); - choice.consider(input, result)?; - let result = self.yul_declaration_statement(input); - choice.consider(input, result)?; - let result = self.yul_assignment_statement(input); - choice.consider(input, result)?; - let result = self.yul_if_statement(input); - choice.consider(input, result)?; - let result = self.yul_for_statement(input); - choice.consider(input, result)?; - let result = self.yul_switch_statement(input); - choice.consider(input, result)?; - if self.version_is_at_least_0_6_0 { - let result = self.yul_leave_statement(input); + fn yul_statements_list(&self, input: &mut ParserContext) -> ParserResult { + OneOrMoreHelper::run(input, |input| { + ChoiceHelper::run(input, |mut choice, input| { + let result = self.yul_block(input); choice.consider(input, result)?; - } - let result = self.yul_break_statement(input); - choice.consider(input, result)?; - let result = self.yul_continue_statement(input); - choice.consider(input, result)?; - let result = self.yul_expression(input); - choice.consider(input, result)?; - choice.finish(input) + let result = self.yul_function_definition(input); + choice.consider(input, result)?; + let result = self.yul_declaration_statement(input); + choice.consider(input, result)?; + let result = self.yul_assignment_statement(input); + choice.consider(input, result)?; + let result = self.yul_if_statement(input); + choice.consider(input, result)?; + let result = self.yul_for_statement(input); + choice.consider(input, result)?; + let result = self.yul_switch_statement(input); + choice.consider(input, result)?; + if self.version_is_at_least_0_6_0 { + let result = self.yul_leave_statement(input); + choice.consider(input, result)?; + } + let result = self.yul_break_statement(input); + choice.consider(input, result)?; + let result = self.yul_continue_statement(input); + choice.consider(input, result)?; + let result = self.yul_expression(input); + choice.consider(input, result)?; + choice.finish(input) + }) }) - .with_kind(RuleKind::YulStatement) - } - - #[allow(unused_assignments, unused_parens)] - fn yul_statements_list(&self, input: &mut ParserContext) -> ParserResult { - OneOrMoreHelper::run(input, |input| self.yul_statement(input)) - .with_kind(RuleKind::YulStatementsList) + .with_kind(RuleKind::YulStatementsList) } #[allow(unused_assignments, unused_parens)] @@ -5815,7 +6087,6 @@ impl Language { ProductionKind::StateVariableDefinition => { Self::state_variable_definition.parse(self, input) } - ProductionKind::Statement => Self::statement.parse(self, input), ProductionKind::StatementsList => Self::statements_list.parse(self, input), ProductionKind::StructDefinition => Self::struct_definition.parse(self, input), ProductionKind::StructMember => Self::struct_member.parse(self, input), @@ -5897,7 +6168,6 @@ impl Language { ProductionKind::YulReturnsDeclaration => { Self::yul_returns_declaration.parse(self, input) } - ProductionKind::YulStatement => Self::yul_statement.parse(self, input), ProductionKind::YulStatementsList => Self::yul_statements_list.parse(self, input), ProductionKind::YulSwitchCase => Self::yul_switch_case.parse(self, input), ProductionKind::YulSwitchCasesList => Self::yul_switch_cases_list.parse(self, input), 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 0cbf89bf5e..2d0f793da6 100644 --- a/crates/solidity/outputs/npm/package/src/generated/index.d.ts +++ b/crates/solidity/outputs/npm/package/src/generated/index.d.ts @@ -102,7 +102,6 @@ export namespace kinds { SourceUnitMembersList = "SourceUnitMembersList", StateVariableAttributesList = "StateVariableAttributesList", StateVariableDefinition = "StateVariableDefinition", - Statement = "Statement", StatementsList = "StatementsList", StructDefinition = "StructDefinition", StructMember = "StructMember", @@ -150,7 +149,6 @@ export namespace kinds { YulLeaveStatement = "YulLeaveStatement", YulParametersDeclaration = "YulParametersDeclaration", YulReturnsDeclaration = "YulReturnsDeclaration", - YulStatement = "YulStatement", YulStatementsList = "YulStatementsList", YulSwitchCase = "YulSwitchCase", YulSwitchCasesList = "YulSwitchCasesList", @@ -253,7 +251,6 @@ export namespace kinds { SourceUnitMembersList = "SourceUnitMembersList", StateVariableAttributesList = "StateVariableAttributesList", StateVariableDefinition = "StateVariableDefinition", - Statement = "Statement", StatementsList = "StatementsList", StructDefinition = "StructDefinition", StructMember = "StructMember", @@ -306,7 +303,6 @@ export namespace kinds { YulLeaveStatement = "YulLeaveStatement", YulParametersDeclaration = "YulParametersDeclaration", YulReturnsDeclaration = "YulReturnsDeclaration", - YulStatement = "YulStatement", YulStatementsList = "YulStatementsList", YulSwitchCase = "YulSwitchCase", YulSwitchCasesList = "YulSwitchCasesList", diff --git a/crates/solidity/outputs/spec/generated/ebnf/04-statements/01-blocks/statement/0.4.11.md b/crates/solidity/outputs/spec/generated/ebnf/04-statements/01-blocks/statement/0.4.11.md index 6363f88dcf..ea429f5333 100644 --- a/crates/solidity/outputs/spec/generated/ebnf/04-statements/01-blocks/statement/0.4.11.md +++ b/crates/solidity/outputs/spec/generated/ebnf/04-statements/01-blocks/statement/0.4.11.md @@ -1,8 +1,8 @@ ```{ .ebnf .slang-ebnf #Statement } -Statement = «SimpleStatement» - | «ControlStatement» - | AssemblyStatement - | Block; +«Statement» = «SimpleStatement» + | «ControlStatement» + | AssemblyStatement + | Block; ``` diff --git a/crates/solidity/outputs/spec/generated/ebnf/04-statements/01-blocks/statement/0.8.0.md b/crates/solidity/outputs/spec/generated/ebnf/04-statements/01-blocks/statement/0.8.0.md index b3f4ea7ea1..e8e6296202 100644 --- a/crates/solidity/outputs/spec/generated/ebnf/04-statements/01-blocks/statement/0.8.0.md +++ b/crates/solidity/outputs/spec/generated/ebnf/04-statements/01-blocks/statement/0.8.0.md @@ -1,9 +1,9 @@ ```{ .ebnf .slang-ebnf #Statement } -Statement = «SimpleStatement» - | «ControlStatement» - | AssemblyStatement - | Block - | UncheckedBlock; +«Statement» = «SimpleStatement» + | «ControlStatement» + | AssemblyStatement + | Block + | UncheckedBlock; ``` diff --git a/crates/solidity/outputs/spec/generated/ebnf/04-statements/01-blocks/statements-list/unversioned.md b/crates/solidity/outputs/spec/generated/ebnf/04-statements/01-blocks/statements-list/unversioned.md index 709f3f05af..881236998a 100644 --- a/crates/solidity/outputs/spec/generated/ebnf/04-statements/01-blocks/statements-list/unversioned.md +++ b/crates/solidity/outputs/spec/generated/ebnf/04-statements/01-blocks/statements-list/unversioned.md @@ -1,5 +1,5 @@ ```{ .ebnf .slang-ebnf #StatementsList } -StatementsList = Statement+; +StatementsList = «Statement»+; ``` diff --git a/crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/do-while-statement/unversioned.md b/crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/do-while-statement/unversioned.md index 1ee2040b18..c2728dfea7 100644 --- a/crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/do-while-statement/unversioned.md +++ b/crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/do-while-statement/unversioned.md @@ -1,5 +1,5 @@ ```{ .ebnf .slang-ebnf #DoWhileStatement } -DoWhileStatement = DO_KEYWORD Statement WHILE_KEYWORD OPEN_PAREN Expression CLOSE_PAREN SEMICOLON; +DoWhileStatement = DO_KEYWORD «Statement» WHILE_KEYWORD OPEN_PAREN Expression CLOSE_PAREN SEMICOLON; ``` diff --git a/crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/for-statement/unversioned.md b/crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/for-statement/unversioned.md index 89ca18dd1c..5c0e2f58bf 100644 --- a/crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/for-statement/unversioned.md +++ b/crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/for-statement/unversioned.md @@ -1,5 +1,5 @@ ```{ .ebnf .slang-ebnf #ForStatement } -ForStatement = FOR_KEYWORD OPEN_PAREN («SimpleStatement» | SEMICOLON) (ExpressionStatement | SEMICOLON) Expression? CLOSE_PAREN Statement; +ForStatement = FOR_KEYWORD OPEN_PAREN («SimpleStatement» | SEMICOLON) (ExpressionStatement | SEMICOLON) Expression? CLOSE_PAREN «Statement»; ``` diff --git a/crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/if-statement/unversioned.md b/crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/if-statement/unversioned.md index 18dadf4fe6..846004cb03 100644 --- a/crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/if-statement/unversioned.md +++ b/crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/if-statement/unversioned.md @@ -1,5 +1,5 @@ ```{ .ebnf .slang-ebnf #IfStatement } -IfStatement = IF_KEYWORD OPEN_PAREN Expression CLOSE_PAREN Statement (ELSE_KEYWORD Statement)?; +IfStatement = IF_KEYWORD OPEN_PAREN Expression CLOSE_PAREN «Statement» (ELSE_KEYWORD «Statement»)?; ``` diff --git a/crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/while-statement/unversioned.md b/crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/while-statement/unversioned.md index f0253b3856..92391bdfe6 100644 --- a/crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/while-statement/unversioned.md +++ b/crates/solidity/outputs/spec/generated/ebnf/04-statements/03-control-statements/while-statement/unversioned.md @@ -1,5 +1,5 @@ ```{ .ebnf .slang-ebnf #WhileStatement } -WhileStatement = WHILE_KEYWORD OPEN_PAREN Expression CLOSE_PAREN Statement; +WhileStatement = WHILE_KEYWORD OPEN_PAREN Expression CLOSE_PAREN «Statement»; ``` diff --git a/crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-statement/0.4.11.md b/crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-statement/0.4.11.md index 0f4a7a7338..aa4a87742a 100644 --- a/crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-statement/0.4.11.md +++ b/crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-statement/0.4.11.md @@ -1,14 +1,14 @@ ```{ .ebnf .slang-ebnf #YulStatement } -YulStatement = YulBlock - | YulFunctionDefinition - | YulDeclarationStatement - | YulAssignmentStatement - | YulIfStatement - | YulForStatement - | YulSwitchStatement - | YulBreakStatement - | YulContinueStatement - | YulExpression; +«YulStatement» = YulBlock + | YulFunctionDefinition + | YulDeclarationStatement + | YulAssignmentStatement + | YulIfStatement + | YulForStatement + | YulSwitchStatement + | YulBreakStatement + | YulContinueStatement + | YulExpression; ``` diff --git a/crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-statement/0.6.0.md b/crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-statement/0.6.0.md index de3d88fc78..4550d9247c 100644 --- a/crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-statement/0.6.0.md +++ b/crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-statement/0.6.0.md @@ -1,15 +1,15 @@ ```{ .ebnf .slang-ebnf #YulStatement } -YulStatement = YulBlock - | YulFunctionDefinition - | YulDeclarationStatement - | YulAssignmentStatement - | YulIfStatement - | YulForStatement - | YulSwitchStatement - | YulLeaveStatement - | YulBreakStatement - | YulContinueStatement - | YulExpression; +«YulStatement» = YulBlock + | YulFunctionDefinition + | YulDeclarationStatement + | YulAssignmentStatement + | YulIfStatement + | YulForStatement + | YulSwitchStatement + | YulLeaveStatement + | YulBreakStatement + | YulContinueStatement + | YulExpression; ``` diff --git a/crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-statements-list/unversioned.md b/crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-statements-list/unversioned.md index 2c25ac8d3a..74b16283f9 100644 --- a/crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-statements-list/unversioned.md +++ b/crates/solidity/outputs/spec/generated/ebnf/06-yul/02-yul-statements/yul-statements-list/unversioned.md @@ -1,5 +1,5 @@ ```{ .ebnf .slang-ebnf #YulStatementsList } -YulStatementsList = YulStatement+; +YulStatementsList = «YulStatement»+; ``` diff --git a/crates/solidity/testing/snapshots/cst_output/Block/unchecked/generated/0.4.11-failure.yml b/crates/solidity/testing/snapshots/cst_output/Block/unchecked/generated/0.4.11-failure.yml index 3182db5880..854cfc3c88 100644 --- a/crates/solidity/testing/snapshots/cst_output/Block/unchecked/generated/0.4.11-failure.yml +++ b/crates/solidity/testing/snapshots/cst_output/Block/unchecked/generated/0.4.11-failure.yml @@ -17,9 +17,8 @@ Tree: - Block (Rule): # 0..24 "{ unchecked { x = 1; } }" - OpenBrace (Token): "{" # 0..1 - StatementsList (Rule): # 1..12 " unchecked " - - Statement (Rule): # 1..12 " unchecked " - - ExpressionStatement (Rule): # 1..12 " unchecked " - - Expression (Rule): # 1..11 " unchecked" - - Identifier (Token): "unchecked" # 2..11 + - ExpressionStatement (Rule): # 1..12 " unchecked " + - Expression (Rule): # 1..11 " unchecked" + - Identifier (Token): "unchecked" # 2..11 - SKIPPED (Token): "{ x = 1; } " # 12..23 - CloseBrace (Token): "}" # 23..24 diff --git a/crates/solidity/testing/snapshots/cst_output/Block/unchecked/generated/0.8.0-success.yml b/crates/solidity/testing/snapshots/cst_output/Block/unchecked/generated/0.8.0-success.yml index 6aca689492..f8726c1598 100644 --- a/crates/solidity/testing/snapshots/cst_output/Block/unchecked/generated/0.8.0-success.yml +++ b/crates/solidity/testing/snapshots/cst_output/Block/unchecked/generated/0.8.0-success.yml @@ -9,22 +9,20 @@ Tree: - Block (Rule): # 0..24 "{ unchecked { x = 1; } }" - OpenBrace (Token): "{" # 0..1 - StatementsList (Rule): # 1..22 " unchecked { x = 1; }" - - Statement (Rule): # 1..22 " unchecked { x = 1; }" - - UncheckedBlock (Rule): # 1..22 " unchecked { x = 1; }" - - UncheckedKeyword (Token): "unchecked" # 2..11 - - Block (Rule): # 11..22 " { x = 1; }" - - OpenBrace (Token): "{" # 12..13 - - StatementsList (Rule): # 13..20 " x = 1;" - - Statement (Rule): # 13..20 " x = 1;" - - ExpressionStatement (Rule): # 13..20 " x = 1;" - - Expression (Rule): # 13..19 " x = 1" - - BinaryExpression (Rule): # 13..19 " x = 1" - - Expression (Rule): # 13..15 " x" - - Identifier (Token): "x" # 14..15 - - Equal (Token): "=" # 16..17 - - Expression (Rule): # 17..19 " 1" - - DecimalNumberExpression (Rule): # 17..19 " 1" - - DecimalLiteral (Token): "1" # 18..19 - - Semicolon (Token): ";" # 19..20 - - CloseBrace (Token): "}" # 21..22 + - UncheckedBlock (Rule): # 1..22 " unchecked { x = 1; }" + - UncheckedKeyword (Token): "unchecked" # 2..11 + - Block (Rule): # 11..22 " { x = 1; }" + - OpenBrace (Token): "{" # 12..13 + - StatementsList (Rule): # 13..20 " x = 1;" + - ExpressionStatement (Rule): # 13..20 " x = 1;" + - Expression (Rule): # 13..19 " x = 1" + - BinaryExpression (Rule): # 13..19 " x = 1" + - Expression (Rule): # 13..15 " x" + - Identifier (Token): "x" # 14..15 + - Equal (Token): "=" # 16..17 + - Expression (Rule): # 17..19 " 1" + - DecimalNumberExpression (Rule): # 17..19 " 1" + - DecimalLiteral (Token): "1" # 18..19 + - Semicolon (Token): ";" # 19..20 + - CloseBrace (Token): "}" # 21..22 - CloseBrace (Token): "}" # 23..24 diff --git a/crates/solidity/testing/snapshots/cst_output/ContractDefinition/function_multiple_delimiters/generated/0.4.11-failure.yml b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/function_multiple_delimiters/generated/0.4.11-failure.yml index 41b8661c2d..adf274106f 100644 --- a/crates/solidity/testing/snapshots/cst_output/ContractDefinition/function_multiple_delimiters/generated/0.4.11-failure.yml +++ b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/function_multiple_delimiters/generated/0.4.11-failure.yml @@ -52,77 +52,74 @@ Tree: - Block (Rule): # 119..350 ' {\n require(address(this).balance >= amount, "A...' - OpenBrace (Token): "{" # 120..121 - StatementsList (Rule): # 122..346 ' require(address(this).balance >= amount, "Addr...' - - Statement (Rule): # 122..201 ' require(address(this).balance >= amount, "Addr...' - - ExpressionStatement (Rule): # 122..201 ' require(address(this).balance >= amount, "Addr...' - - Expression (Rule): # 122..199 ' require(address(this).balance >= amount, "Addr...' - - FunctionCallExpression (Rule): # 122..199 ' require(address(this).balance >= amount, "Addr...' - - Expression (Rule): # 122..133 " require" - - Identifier (Token): "require" # 126..133 - - ArgumentsDeclaration (Rule): # 133..199 '(address(this).balance >= amount, "Address: insuff...' - - OpenParen (Token): "(" # 133..134 - - PositionalArgumentsList (Rule): # 134..198 'address(this).balance >= amount, "Address: insuffi...' - - Expression (Rule): # 134..165 "address(this).balance >= amount" - - BinaryExpression (Rule): # 134..165 "address(this).balance >= amount" - - Expression (Rule): # 134..155 "address(this).balance" - - MemberAccessExpression (Rule): # 134..155 "address(this).balance" - - Expression (Rule): # 134..147 "address(this)" - - FunctionCallExpression (Rule): # 134..147 "address(this)" - - Expression (Rule): # 134..141 "address" - - AddressType (Rule): # 134..141 "address" - - AddressKeyword (Token): "address" # 134..141 - - ArgumentsDeclaration (Rule): # 141..147 "(this)" - - OpenParen (Token): "(" # 141..142 - - PositionalArgumentsList (Rule): # 142..146 "this" - - Expression (Rule): # 142..146 "this" - - Identifier (Token): "this" # 142..146 - - CloseParen (Token): ")" # 146..147 - - Period (Token): "." # 147..148 - - Identifier (Token): "balance" # 148..155 - - GreaterThanEqual (Token): ">=" # 156..158 - - Expression (Rule): # 158..165 " amount" - - Identifier (Token): "amount" # 159..165 - - Comma (Token): "," # 165..166 - - Expression (Rule): # 166..198 ' "Address: insufficient balance"' - - AsciiStringLiteralsList (Rule): # 166..198 ' "Address: insufficient balance"' - - AsciiStringLiteral (Token): '"Address: insufficient balance"' # 167..198 - - CloseParen (Token): ")" # 198..199 - - Semicolon (Token): ";" # 199..200 - - Statement (Rule): # 201..262 "\n (bool success, ) = recipient.call{ value: amo..." - - TupleDeconstructionStatement (Rule): # 201..262 "\n (bool success, ) = recipient.call{ value: amo..." - - OpenParen (Token): "(" # 206..207 - - TupleMembersList (Rule): # 207..220 "bool success," - - TupleMember (Rule): # 207..219 "bool success" - - TypeName (Rule): # 207..211 "bool" - - BoolKeyword (Token): "bool" # 207..211 - - Identifier (Token): "success" # 212..219 - - Comma (Token): "," # 219..220 - - TupleMember (Rule): [] # 220..220 - - CloseParen (Token): ")" # 221..222 - - Equal (Token): "=" # 223..224 - - Expression (Rule): # 224..239 " recipient.call" - - MemberAccessExpression (Rule): # 224..239 " recipient.call" - - Expression (Rule): # 224..234 " recipient" - - Identifier (Token): "recipient" # 225..234 - - Period (Token): "." # 234..235 - - Identifier (Token): "call" # 235..239 - - SKIPPED (Token): '{ value: amount }("")' # 239..260 - - Semicolon (Token): ";" # 260..261 - - Statement (Rule): # 262..346 ' require(success, "Address: unable to send valu...' - - ExpressionStatement (Rule): # 262..346 ' require(success, "Address: unable to send valu...' - - Expression (Rule): # 262..344 ' require(success, "Address: unable to send valu...' - - FunctionCallExpression (Rule): # 262..344 ' require(success, "Address: unable to send valu...' - - Expression (Rule): # 262..273 " require" - - Identifier (Token): "require" # 266..273 - - ArgumentsDeclaration (Rule): # 273..344 '(success, "Address: unable to send value, recipien...' - - OpenParen (Token): "(" # 273..274 - - PositionalArgumentsList (Rule): # 274..343 'success, "Address: unable to send value, recipient...' - - Expression (Rule): # 274..281 "success" - - Identifier (Token): "success" # 274..281 - - Comma (Token): "," # 281..282 - - Expression (Rule): # 282..343 ' "Address: unable to send value, recipient may hav...' - - AsciiStringLiteralsList (Rule): # 282..343 ' "Address: unable to send value, recipient may hav...' - - AsciiStringLiteral (Token): '"Address: unable to send value, recipient may have...' # 283..343 - - CloseParen (Token): ")" # 343..344 - - Semicolon (Token): ";" # 344..345 + - ExpressionStatement (Rule): # 122..201 ' require(address(this).balance >= amount, "Addr...' + - Expression (Rule): # 122..199 ' require(address(this).balance >= amount, "Addr...' + - FunctionCallExpression (Rule): # 122..199 ' require(address(this).balance >= amount, "Addr...' + - Expression (Rule): # 122..133 " require" + - Identifier (Token): "require" # 126..133 + - ArgumentsDeclaration (Rule): # 133..199 '(address(this).balance >= amount, "Address: insuff...' + - OpenParen (Token): "(" # 133..134 + - PositionalArgumentsList (Rule): # 134..198 'address(this).balance >= amount, "Address: insuffi...' + - Expression (Rule): # 134..165 "address(this).balance >= amount" + - BinaryExpression (Rule): # 134..165 "address(this).balance >= amount" + - Expression (Rule): # 134..155 "address(this).balance" + - MemberAccessExpression (Rule): # 134..155 "address(this).balance" + - Expression (Rule): # 134..147 "address(this)" + - FunctionCallExpression (Rule): # 134..147 "address(this)" + - Expression (Rule): # 134..141 "address" + - AddressType (Rule): # 134..141 "address" + - AddressKeyword (Token): "address" # 134..141 + - ArgumentsDeclaration (Rule): # 141..147 "(this)" + - OpenParen (Token): "(" # 141..142 + - PositionalArgumentsList (Rule): # 142..146 "this" + - Expression (Rule): # 142..146 "this" + - Identifier (Token): "this" # 142..146 + - CloseParen (Token): ")" # 146..147 + - Period (Token): "." # 147..148 + - Identifier (Token): "balance" # 148..155 + - GreaterThanEqual (Token): ">=" # 156..158 + - Expression (Rule): # 158..165 " amount" + - Identifier (Token): "amount" # 159..165 + - Comma (Token): "," # 165..166 + - Expression (Rule): # 166..198 ' "Address: insufficient balance"' + - AsciiStringLiteralsList (Rule): # 166..198 ' "Address: insufficient balance"' + - AsciiStringLiteral (Token): '"Address: insufficient balance"' # 167..198 + - CloseParen (Token): ")" # 198..199 + - Semicolon (Token): ";" # 199..200 + - TupleDeconstructionStatement (Rule): # 201..262 "\n (bool success, ) = recipient.call{ value: amo..." + - OpenParen (Token): "(" # 206..207 + - TupleMembersList (Rule): # 207..220 "bool success," + - TupleMember (Rule): # 207..219 "bool success" + - TypeName (Rule): # 207..211 "bool" + - BoolKeyword (Token): "bool" # 207..211 + - Identifier (Token): "success" # 212..219 + - Comma (Token): "," # 219..220 + - TupleMember (Rule): [] # 220..220 + - CloseParen (Token): ")" # 221..222 + - Equal (Token): "=" # 223..224 + - Expression (Rule): # 224..239 " recipient.call" + - MemberAccessExpression (Rule): # 224..239 " recipient.call" + - Expression (Rule): # 224..234 " recipient" + - Identifier (Token): "recipient" # 225..234 + - Period (Token): "." # 234..235 + - Identifier (Token): "call" # 235..239 + - SKIPPED (Token): '{ value: amount }("")' # 239..260 + - Semicolon (Token): ";" # 260..261 + - ExpressionStatement (Rule): # 262..346 ' require(success, "Address: unable to send valu...' + - Expression (Rule): # 262..344 ' require(success, "Address: unable to send valu...' + - FunctionCallExpression (Rule): # 262..344 ' require(success, "Address: unable to send valu...' + - Expression (Rule): # 262..273 " require" + - Identifier (Token): "require" # 266..273 + - ArgumentsDeclaration (Rule): # 273..344 '(success, "Address: unable to send value, recipien...' + - OpenParen (Token): "(" # 273..274 + - PositionalArgumentsList (Rule): # 274..343 'success, "Address: unable to send value, recipient...' + - Expression (Rule): # 274..281 "success" + - Identifier (Token): "success" # 274..281 + - Comma (Token): "," # 281..282 + - Expression (Rule): # 282..343 ' "Address: unable to send value, recipient may hav...' + - AsciiStringLiteralsList (Rule): # 282..343 ' "Address: unable to send value, recipient may hav...' + - AsciiStringLiteral (Token): '"Address: unable to send value, recipient may have...' # 283..343 + - CloseParen (Token): ")" # 343..344 + - Semicolon (Token): ";" # 344..345 - CloseBrace (Token): "}" # 348..349 - CloseBrace (Token): "}" # 350..351 diff --git a/crates/solidity/testing/snapshots/cst_output/ContractDefinition/function_multiple_delimiters/generated/0.6.2-success.yml b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/function_multiple_delimiters/generated/0.6.2-success.yml index 042b47fad3..7bfa11ec52 100644 --- a/crates/solidity/testing/snapshots/cst_output/ContractDefinition/function_multiple_delimiters/generated/0.6.2-success.yml +++ b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/function_multiple_delimiters/generated/0.6.2-success.yml @@ -44,95 +44,92 @@ Tree: - Block (Rule): # 119..350 ' {\n require(address(this).balance >= amount, "A...' - OpenBrace (Token): "{" # 120..121 - StatementsList (Rule): # 122..346 ' require(address(this).balance >= amount, "Addr...' - - Statement (Rule): # 122..201 ' require(address(this).balance >= amount, "Addr...' - - ExpressionStatement (Rule): # 122..201 ' require(address(this).balance >= amount, "Addr...' - - Expression (Rule): # 122..199 ' require(address(this).balance >= amount, "Addr...' - - FunctionCallExpression (Rule): # 122..199 ' require(address(this).balance >= amount, "Addr...' - - Expression (Rule): # 122..133 " require" - - Identifier (Token): "require" # 126..133 - - ArgumentsDeclaration (Rule): # 133..199 '(address(this).balance >= amount, "Address: insuff...' - - OpenParen (Token): "(" # 133..134 - - PositionalArgumentsList (Rule): # 134..198 'address(this).balance >= amount, "Address: insuffi...' - - Expression (Rule): # 134..165 "address(this).balance >= amount" - - BinaryExpression (Rule): # 134..165 "address(this).balance >= amount" - - Expression (Rule): # 134..155 "address(this).balance" - - MemberAccessExpression (Rule): # 134..155 "address(this).balance" - - Expression (Rule): # 134..147 "address(this)" - - FunctionCallExpression (Rule): # 134..147 "address(this)" - - Expression (Rule): # 134..141 "address" - - AddressType (Rule): # 134..141 "address" - - AddressKeyword (Token): "address" # 134..141 - - ArgumentsDeclaration (Rule): # 141..147 "(this)" - - OpenParen (Token): "(" # 141..142 - - PositionalArgumentsList (Rule): # 142..146 "this" - - Expression (Rule): # 142..146 "this" - - Identifier (Token): "this" # 142..146 - - CloseParen (Token): ")" # 146..147 - - Period (Token): "." # 147..148 - - Identifier (Token): "balance" # 148..155 - - GreaterThanEqual (Token): ">=" # 156..158 - - Expression (Rule): # 158..165 " amount" - - Identifier (Token): "amount" # 159..165 - - Comma (Token): "," # 165..166 - - Expression (Rule): # 166..198 ' "Address: insufficient balance"' - - AsciiStringLiteralsList (Rule): # 166..198 ' "Address: insufficient balance"' - - AsciiStringLiteral (Token): '"Address: insufficient balance"' # 167..198 - - CloseParen (Token): ")" # 198..199 - - Semicolon (Token): ";" # 199..200 - - Statement (Rule): # 201..262 "\n (bool success, ) = recipient.call{ value: amo..." - - TupleDeconstructionStatement (Rule): # 201..262 "\n (bool success, ) = recipient.call{ value: amo..." - - OpenParen (Token): "(" # 206..207 - - TupleMembersList (Rule): # 207..220 "bool success," - - TupleMember (Rule): # 207..219 "bool success" - - TypeName (Rule): # 207..211 "bool" - - BoolKeyword (Token): "bool" # 207..211 - - Identifier (Token): "success" # 212..219 - - Comma (Token): "," # 219..220 - - TupleMember (Rule): [] # 220..220 - - CloseParen (Token): ")" # 221..222 - - Equal (Token): "=" # 223..224 - - Expression (Rule): # 224..260 ' recipient.call{ value: amount }("")' - - FunctionCallExpression (Rule): # 224..260 ' recipient.call{ value: amount }("")' - - Expression (Rule): # 224..239 " recipient.call" - - MemberAccessExpression (Rule): # 224..239 " recipient.call" - - Expression (Rule): # 224..234 " recipient" - - Identifier (Token): "recipient" # 225..234 - - Period (Token): "." # 234..235 - - Identifier (Token): "call" # 235..239 - - FunctionCallOptions (Rule): # 239..256 "{ value: amount }" - - NamedArgumentsDeclaration (Rule): # 239..256 "{ value: amount }" - - OpenBrace (Token): "{" # 239..240 - - NamedArgumentsList (Rule): # 240..254 " value: amount" - - NamedArgument (Rule): # 240..254 " value: amount" - - Identifier (Token): "value" # 241..246 - - Colon (Token): ":" # 246..247 - - Expression (Rule): # 247..254 " amount" - - Identifier (Token): "amount" # 248..254 - - CloseBrace (Token): "}" # 255..256 - - ArgumentsDeclaration (Rule): # 256..260 '("")' - - OpenParen (Token): "(" # 256..257 - - PositionalArgumentsList (Rule): # 257..259 '""' - - Expression (Rule): # 257..259 '""' - - AsciiStringLiteralsList (Rule): # 257..259 '""' - - AsciiStringLiteral (Token): '""' # 257..259 - - CloseParen (Token): ")" # 259..260 - - Semicolon (Token): ";" # 260..261 - - Statement (Rule): # 262..346 ' require(success, "Address: unable to send valu...' - - ExpressionStatement (Rule): # 262..346 ' require(success, "Address: unable to send valu...' - - Expression (Rule): # 262..344 ' require(success, "Address: unable to send valu...' - - FunctionCallExpression (Rule): # 262..344 ' require(success, "Address: unable to send valu...' - - Expression (Rule): # 262..273 " require" - - Identifier (Token): "require" # 266..273 - - ArgumentsDeclaration (Rule): # 273..344 '(success, "Address: unable to send value, recipien...' - - OpenParen (Token): "(" # 273..274 - - PositionalArgumentsList (Rule): # 274..343 'success, "Address: unable to send value, recipient...' - - Expression (Rule): # 274..281 "success" - - Identifier (Token): "success" # 274..281 - - Comma (Token): "," # 281..282 - - Expression (Rule): # 282..343 ' "Address: unable to send value, recipient may hav...' - - AsciiStringLiteralsList (Rule): # 282..343 ' "Address: unable to send value, recipient may hav...' - - AsciiStringLiteral (Token): '"Address: unable to send value, recipient may have...' # 283..343 - - CloseParen (Token): ")" # 343..344 - - Semicolon (Token): ";" # 344..345 + - ExpressionStatement (Rule): # 122..201 ' require(address(this).balance >= amount, "Addr...' + - Expression (Rule): # 122..199 ' require(address(this).balance >= amount, "Addr...' + - FunctionCallExpression (Rule): # 122..199 ' require(address(this).balance >= amount, "Addr...' + - Expression (Rule): # 122..133 " require" + - Identifier (Token): "require" # 126..133 + - ArgumentsDeclaration (Rule): # 133..199 '(address(this).balance >= amount, "Address: insuff...' + - OpenParen (Token): "(" # 133..134 + - PositionalArgumentsList (Rule): # 134..198 'address(this).balance >= amount, "Address: insuffi...' + - Expression (Rule): # 134..165 "address(this).balance >= amount" + - BinaryExpression (Rule): # 134..165 "address(this).balance >= amount" + - Expression (Rule): # 134..155 "address(this).balance" + - MemberAccessExpression (Rule): # 134..155 "address(this).balance" + - Expression (Rule): # 134..147 "address(this)" + - FunctionCallExpression (Rule): # 134..147 "address(this)" + - Expression (Rule): # 134..141 "address" + - AddressType (Rule): # 134..141 "address" + - AddressKeyword (Token): "address" # 134..141 + - ArgumentsDeclaration (Rule): # 141..147 "(this)" + - OpenParen (Token): "(" # 141..142 + - PositionalArgumentsList (Rule): # 142..146 "this" + - Expression (Rule): # 142..146 "this" + - Identifier (Token): "this" # 142..146 + - CloseParen (Token): ")" # 146..147 + - Period (Token): "." # 147..148 + - Identifier (Token): "balance" # 148..155 + - GreaterThanEqual (Token): ">=" # 156..158 + - Expression (Rule): # 158..165 " amount" + - Identifier (Token): "amount" # 159..165 + - Comma (Token): "," # 165..166 + - Expression (Rule): # 166..198 ' "Address: insufficient balance"' + - AsciiStringLiteralsList (Rule): # 166..198 ' "Address: insufficient balance"' + - AsciiStringLiteral (Token): '"Address: insufficient balance"' # 167..198 + - CloseParen (Token): ")" # 198..199 + - Semicolon (Token): ";" # 199..200 + - TupleDeconstructionStatement (Rule): # 201..262 "\n (bool success, ) = recipient.call{ value: amo..." + - OpenParen (Token): "(" # 206..207 + - TupleMembersList (Rule): # 207..220 "bool success," + - TupleMember (Rule): # 207..219 "bool success" + - TypeName (Rule): # 207..211 "bool" + - BoolKeyword (Token): "bool" # 207..211 + - Identifier (Token): "success" # 212..219 + - Comma (Token): "," # 219..220 + - TupleMember (Rule): [] # 220..220 + - CloseParen (Token): ")" # 221..222 + - Equal (Token): "=" # 223..224 + - Expression (Rule): # 224..260 ' recipient.call{ value: amount }("")' + - FunctionCallExpression (Rule): # 224..260 ' recipient.call{ value: amount }("")' + - Expression (Rule): # 224..239 " recipient.call" + - MemberAccessExpression (Rule): # 224..239 " recipient.call" + - Expression (Rule): # 224..234 " recipient" + - Identifier (Token): "recipient" # 225..234 + - Period (Token): "." # 234..235 + - Identifier (Token): "call" # 235..239 + - FunctionCallOptions (Rule): # 239..256 "{ value: amount }" + - NamedArgumentsDeclaration (Rule): # 239..256 "{ value: amount }" + - OpenBrace (Token): "{" # 239..240 + - NamedArgumentsList (Rule): # 240..254 " value: amount" + - NamedArgument (Rule): # 240..254 " value: amount" + - Identifier (Token): "value" # 241..246 + - Colon (Token): ":" # 246..247 + - Expression (Rule): # 247..254 " amount" + - Identifier (Token): "amount" # 248..254 + - CloseBrace (Token): "}" # 255..256 + - ArgumentsDeclaration (Rule): # 256..260 '("")' + - OpenParen (Token): "(" # 256..257 + - PositionalArgumentsList (Rule): # 257..259 '""' + - Expression (Rule): # 257..259 '""' + - AsciiStringLiteralsList (Rule): # 257..259 '""' + - AsciiStringLiteral (Token): '""' # 257..259 + - CloseParen (Token): ")" # 259..260 + - Semicolon (Token): ";" # 260..261 + - ExpressionStatement (Rule): # 262..346 ' require(success, "Address: unable to send valu...' + - Expression (Rule): # 262..344 ' require(success, "Address: unable to send valu...' + - FunctionCallExpression (Rule): # 262..344 ' require(success, "Address: unable to send valu...' + - Expression (Rule): # 262..273 " require" + - Identifier (Token): "require" # 266..273 + - ArgumentsDeclaration (Rule): # 273..344 '(success, "Address: unable to send value, recipien...' + - OpenParen (Token): "(" # 273..274 + - PositionalArgumentsList (Rule): # 274..343 'success, "Address: unable to send value, recipient...' + - Expression (Rule): # 274..281 "success" + - Identifier (Token): "success" # 274..281 + - Comma (Token): "," # 281..282 + - Expression (Rule): # 282..343 ' "Address: unable to send value, recipient may hav...' + - AsciiStringLiteralsList (Rule): # 282..343 ' "Address: unable to send value, recipient may hav...' + - AsciiStringLiteral (Token): '"Address: unable to send value, recipient may have...' # 283..343 + - CloseParen (Token): ")" # 343..344 + - Semicolon (Token): ";" # 344..345 - CloseBrace (Token): "}" # 348..349 - CloseBrace (Token): "}" # 350..351 diff --git a/crates/solidity/testing/snapshots/cst_output/ContractDefinition/member_function_definition/generated/0.4.11-success.yml b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/member_function_definition/generated/0.4.11-success.yml index 60dfc6ef3f..42797d92ee 100644 --- a/crates/solidity/testing/snapshots/cst_output/ContractDefinition/member_function_definition/generated/0.4.11-success.yml +++ b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/member_function_definition/generated/0.4.11-success.yml @@ -33,12 +33,11 @@ Tree: - Block (Rule): # 49..70 " {\n return 1;\n }\n" - OpenBrace (Token): "{" # 50..51 - StatementsList (Rule): # 52..66 " return 1;\n" - - Statement (Rule): # 52..66 " return 1;\n" - - ReturnStatement (Rule): # 52..66 " return 1;\n" - - ReturnKeyword (Token): "return" # 56..62 - - Expression (Rule): # 62..64 " 1" - - DecimalNumberExpression (Rule): # 62..64 " 1" - - DecimalLiteral (Token): "1" # 63..64 - - Semicolon (Token): ";" # 64..65 + - ReturnStatement (Rule): # 52..66 " return 1;\n" + - ReturnKeyword (Token): "return" # 56..62 + - Expression (Rule): # 62..64 " 1" + - DecimalNumberExpression (Rule): # 62..64 " 1" + - DecimalLiteral (Token): "1" # 63..64 + - Semicolon (Token): ";" # 64..65 - CloseBrace (Token): "}" # 68..69 - CloseBrace (Token): "}" # 70..71 diff --git a/crates/solidity/testing/snapshots/cst_output/ContractDefinition/member_modifier_definition/generated/0.4.11-success.yml b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/member_modifier_definition/generated/0.4.11-success.yml index c7e3a26c76..d09c2bbda1 100644 --- a/crates/solidity/testing/snapshots/cst_output/ContractDefinition/member_modifier_definition/generated/0.4.11-success.yml +++ b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/member_modifier_definition/generated/0.4.11-success.yml @@ -24,10 +24,9 @@ Tree: - Block (Rule): # 34..48 " {\n _;\n }\n" - OpenBrace (Token): "{" # 35..36 - StatementsList (Rule): # 37..44 " _;\n" - - Statement (Rule): # 37..44 " _;\n" - - ExpressionStatement (Rule): # 37..44 " _;\n" - - Expression (Rule): # 37..42 " _" - - Identifier (Token): "_" # 41..42 - - Semicolon (Token): ";" # 42..43 + - ExpressionStatement (Rule): # 37..44 " _;\n" + - Expression (Rule): # 37..42 " _" + - Identifier (Token): "_" # 41..42 + - Semicolon (Token): ";" # 42..43 - CloseBrace (Token): "}" # 46..47 - CloseBrace (Token): "}" # 48..49 diff --git a/crates/solidity/testing/snapshots/cst_output/ContractDefinition/recovery_testbed/generated/0.4.11-failure.yml b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/recovery_testbed/generated/0.4.11-failure.yml index aa3a1c972f..02c6de14e0 100644 --- a/crates/solidity/testing/snapshots/cst_output/ContractDefinition/recovery_testbed/generated/0.4.11-failure.yml +++ b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/recovery_testbed/generated/0.4.11-failure.yml @@ -64,28 +64,25 @@ Tree: - Block (Rule): # 62..138 " {\n\t\tif(while == pair && !_isExcludedFromFee[to]){..." - OpenBrace (Token): "{" # 63..64 - StatementsList (Rule): # 65..135 "\t\tif(while == pair && !_isExcludedFromFee[to]){\n\t\t..." - - Statement (Rule): # 65..135 "\t\tif(while == pair && !_isExcludedFromFee[to]){\n\t\t..." - - IfStatement (Rule): # 65..135 "\t\tif(while == pair && !_isExcludedFromFee[to]){\n\t\t..." - - IfKeyword (Token): "if" # 67..69 - - OpenParen (Token): "(" # 69..70 - - SKIPPED (Token): "while == pair && !_isExcludedFromFee[to]" # 70..110 - - CloseParen (Token): ")" # 110..111 - - Statement (Rule): # 111..135 "{\n\t\t\tuint256 a = 1;\n\t\t}\n" - - Block (Rule): # 111..135 "{\n\t\t\tuint256 a = 1;\n\t\t}\n" - - OpenBrace (Token): "{" # 111..112 - - StatementsList (Rule): # 113..131 "\t\t\tuint256 a = 1;\n" - - Statement (Rule): # 113..131 "\t\t\tuint256 a = 1;\n" - - VariableDeclarationStatement (Rule): # 113..131 "\t\t\tuint256 a = 1;\n" - - VariableDeclaration (Rule): # 113..125 "\t\t\tuint256 a" - - TypeName (Rule): # 113..123 "\t\t\tuint256" - - UnsignedIntegerType (Token): "uint256" # 116..123 - - Identifier (Token): "a" # 124..125 - - Equal (Token): "=" # 126..127 - - Expression (Rule): # 127..129 " 1" - - DecimalNumberExpression (Rule): # 127..129 " 1" - - DecimalLiteral (Token): "1" # 128..129 - - Semicolon (Token): ";" # 129..130 - - CloseBrace (Token): "}" # 133..134 + - IfStatement (Rule): # 65..135 "\t\tif(while == pair && !_isExcludedFromFee[to]){\n\t\t..." + - IfKeyword (Token): "if" # 67..69 + - OpenParen (Token): "(" # 69..70 + - SKIPPED (Token): "while == pair && !_isExcludedFromFee[to]" # 70..110 + - CloseParen (Token): ")" # 110..111 + - Block (Rule): # 111..135 "{\n\t\t\tuint256 a = 1;\n\t\t}\n" + - OpenBrace (Token): "{" # 111..112 + - StatementsList (Rule): # 113..131 "\t\t\tuint256 a = 1;\n" + - VariableDeclarationStatement (Rule): # 113..131 "\t\t\tuint256 a = 1;\n" + - VariableDeclaration (Rule): # 113..125 "\t\t\tuint256 a" + - TypeName (Rule): # 113..123 "\t\t\tuint256" + - UnsignedIntegerType (Token): "uint256" # 116..123 + - Identifier (Token): "a" # 124..125 + - Equal (Token): "=" # 126..127 + - Expression (Rule): # 127..129 " 1" + - DecimalNumberExpression (Rule): # 127..129 " 1" + - DecimalLiteral (Token): "1" # 128..129 + - Semicolon (Token): ";" # 129..130 + - CloseBrace (Token): "}" # 133..134 - CloseBrace (Token): "}" # 136..137 - FunctionDefinition (Rule): # 138..210 "\n\tfunction abc() {\n\t\tuint256 x = 0;\n\t\tunchecked { ..." - FunctionKeyword (Token): "function" # 140..148 @@ -96,21 +93,19 @@ Tree: - Block (Rule): # 154..210 " {\n\t\tuint256 x = 0;\n\t\tunchecked { invalid sequence..." - OpenBrace (Token): "{" # 155..156 - StatementsList (Rule): # 157..186 "\t\tuint256 x = 0;\n\t\tunchecked " - - Statement (Rule): # 157..174 "\t\tuint256 x = 0;\n" - - VariableDeclarationStatement (Rule): # 157..174 "\t\tuint256 x = 0;\n" - - VariableDeclaration (Rule): # 157..168 "\t\tuint256 x" - - TypeName (Rule): # 157..166 "\t\tuint256" - - UnsignedIntegerType (Token): "uint256" # 159..166 - - Identifier (Token): "x" # 167..168 - - Equal (Token): "=" # 169..170 - - Expression (Rule): # 170..172 " 0" - - DecimalNumberExpression (Rule): # 170..172 " 0" - - DecimalLiteral (Token): "0" # 171..172 - - Semicolon (Token): ";" # 172..173 - - Statement (Rule): # 174..186 "\t\tunchecked " - - ExpressionStatement (Rule): # 174..186 "\t\tunchecked " - - Expression (Rule): # 174..185 "\t\tunchecked" - - Identifier (Token): "unchecked" # 176..185 + - VariableDeclarationStatement (Rule): # 157..174 "\t\tuint256 x = 0;\n" + - VariableDeclaration (Rule): # 157..168 "\t\tuint256 x" + - TypeName (Rule): # 157..166 "\t\tuint256" + - UnsignedIntegerType (Token): "uint256" # 159..166 + - Identifier (Token): "x" # 167..168 + - Equal (Token): "=" # 169..170 + - Expression (Rule): # 170..172 " 0" + - DecimalNumberExpression (Rule): # 170..172 " 0" + - DecimalLiteral (Token): "0" # 171..172 + - Semicolon (Token): ";" # 172..173 + - ExpressionStatement (Rule): # 174..186 "\t\tunchecked " + - Expression (Rule): # 174..185 "\t\tunchecked" + - Identifier (Token): "unchecked" # 176..185 - SKIPPED (Token): "{ invalid sequence }\n\t" # 186..208 - CloseBrace (Token): "}" # 208..209 - CloseBrace (Token): "}" # 210..211 diff --git a/crates/solidity/testing/snapshots/cst_output/ContractDefinition/recovery_testbed/generated/0.5.0-failure.yml b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/recovery_testbed/generated/0.5.0-failure.yml index d3cd50fd19..35e57cb3fa 100644 --- a/crates/solidity/testing/snapshots/cst_output/ContractDefinition/recovery_testbed/generated/0.5.0-failure.yml +++ b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/recovery_testbed/generated/0.5.0-failure.yml @@ -64,28 +64,25 @@ Tree: - Block (Rule): # 62..138 " {\n\t\tif(while == pair && !_isExcludedFromFee[to]){..." - OpenBrace (Token): "{" # 63..64 - StatementsList (Rule): # 65..135 "\t\tif(while == pair && !_isExcludedFromFee[to]){\n\t\t..." - - Statement (Rule): # 65..135 "\t\tif(while == pair && !_isExcludedFromFee[to]){\n\t\t..." - - IfStatement (Rule): # 65..135 "\t\tif(while == pair && !_isExcludedFromFee[to]){\n\t\t..." - - IfKeyword (Token): "if" # 67..69 - - OpenParen (Token): "(" # 69..70 - - SKIPPED (Token): "while == pair && !_isExcludedFromFee[to]" # 70..110 - - CloseParen (Token): ")" # 110..111 - - Statement (Rule): # 111..135 "{\n\t\t\tuint256 a = 1;\n\t\t}\n" - - Block (Rule): # 111..135 "{\n\t\t\tuint256 a = 1;\n\t\t}\n" - - OpenBrace (Token): "{" # 111..112 - - StatementsList (Rule): # 113..131 "\t\t\tuint256 a = 1;\n" - - Statement (Rule): # 113..131 "\t\t\tuint256 a = 1;\n" - - VariableDeclarationStatement (Rule): # 113..131 "\t\t\tuint256 a = 1;\n" - - VariableDeclaration (Rule): # 113..125 "\t\t\tuint256 a" - - TypeName (Rule): # 113..123 "\t\t\tuint256" - - UnsignedIntegerType (Token): "uint256" # 116..123 - - Identifier (Token): "a" # 124..125 - - Equal (Token): "=" # 126..127 - - Expression (Rule): # 127..129 " 1" - - DecimalNumberExpression (Rule): # 127..129 " 1" - - DecimalLiteral (Token): "1" # 128..129 - - Semicolon (Token): ";" # 129..130 - - CloseBrace (Token): "}" # 133..134 + - IfStatement (Rule): # 65..135 "\t\tif(while == pair && !_isExcludedFromFee[to]){\n\t\t..." + - IfKeyword (Token): "if" # 67..69 + - OpenParen (Token): "(" # 69..70 + - SKIPPED (Token): "while == pair && !_isExcludedFromFee[to]" # 70..110 + - CloseParen (Token): ")" # 110..111 + - Block (Rule): # 111..135 "{\n\t\t\tuint256 a = 1;\n\t\t}\n" + - OpenBrace (Token): "{" # 111..112 + - StatementsList (Rule): # 113..131 "\t\t\tuint256 a = 1;\n" + - VariableDeclarationStatement (Rule): # 113..131 "\t\t\tuint256 a = 1;\n" + - VariableDeclaration (Rule): # 113..125 "\t\t\tuint256 a" + - TypeName (Rule): # 113..123 "\t\t\tuint256" + - UnsignedIntegerType (Token): "uint256" # 116..123 + - Identifier (Token): "a" # 124..125 + - Equal (Token): "=" # 126..127 + - Expression (Rule): # 127..129 " 1" + - DecimalNumberExpression (Rule): # 127..129 " 1" + - DecimalLiteral (Token): "1" # 128..129 + - Semicolon (Token): ";" # 129..130 + - CloseBrace (Token): "}" # 133..134 - CloseBrace (Token): "}" # 136..137 - FunctionDefinition (Rule): # 138..210 "\n\tfunction abc() {\n\t\tuint256 x = 0;\n\t\tunchecked { ..." - FunctionKeyword (Token): "function" # 140..148 @@ -96,17 +93,16 @@ Tree: - Block (Rule): # 154..210 " {\n\t\tuint256 x = 0;\n\t\tunchecked { invalid sequence..." - OpenBrace (Token): "{" # 155..156 - StatementsList (Rule): # 157..174 "\t\tuint256 x = 0;\n" - - Statement (Rule): # 157..174 "\t\tuint256 x = 0;\n" - - VariableDeclarationStatement (Rule): # 157..174 "\t\tuint256 x = 0;\n" - - VariableDeclaration (Rule): # 157..168 "\t\tuint256 x" - - TypeName (Rule): # 157..166 "\t\tuint256" - - UnsignedIntegerType (Token): "uint256" # 159..166 - - Identifier (Token): "x" # 167..168 - - Equal (Token): "=" # 169..170 - - Expression (Rule): # 170..172 " 0" - - DecimalNumberExpression (Rule): # 170..172 " 0" - - DecimalLiteral (Token): "0" # 171..172 - - Semicolon (Token): ";" # 172..173 + - VariableDeclarationStatement (Rule): # 157..174 "\t\tuint256 x = 0;\n" + - VariableDeclaration (Rule): # 157..168 "\t\tuint256 x" + - TypeName (Rule): # 157..166 "\t\tuint256" + - UnsignedIntegerType (Token): "uint256" # 159..166 + - Identifier (Token): "x" # 167..168 + - Equal (Token): "=" # 169..170 + - Expression (Rule): # 170..172 " 0" + - DecimalNumberExpression (Rule): # 170..172 " 0" + - DecimalLiteral (Token): "0" # 171..172 + - Semicolon (Token): ";" # 172..173 - SKIPPED (Token): "unchecked { invalid sequence }\n\t" # 176..208 - CloseBrace (Token): "}" # 208..209 - CloseBrace (Token): "}" # 210..211 diff --git a/crates/solidity/testing/snapshots/cst_output/ContractDefinition/recovery_testbed/generated/0.5.3-failure.yml b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/recovery_testbed/generated/0.5.3-failure.yml index c6e57449a1..b97e7155d3 100644 --- a/crates/solidity/testing/snapshots/cst_output/ContractDefinition/recovery_testbed/generated/0.5.3-failure.yml +++ b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/recovery_testbed/generated/0.5.3-failure.yml @@ -64,28 +64,25 @@ Tree: - Block (Rule): # 62..138 " {\n\t\tif(while == pair && !_isExcludedFromFee[to]){..." - OpenBrace (Token): "{" # 63..64 - StatementsList (Rule): # 65..135 "\t\tif(while == pair && !_isExcludedFromFee[to]){\n\t\t..." - - Statement (Rule): # 65..135 "\t\tif(while == pair && !_isExcludedFromFee[to]){\n\t\t..." - - IfStatement (Rule): # 65..135 "\t\tif(while == pair && !_isExcludedFromFee[to]){\n\t\t..." - - IfKeyword (Token): "if" # 67..69 - - OpenParen (Token): "(" # 69..70 - - SKIPPED (Token): "while == pair && !_isExcludedFromFee[to]" # 70..110 - - CloseParen (Token): ")" # 110..111 - - Statement (Rule): # 111..135 "{\n\t\t\tuint256 a = 1;\n\t\t}\n" - - Block (Rule): # 111..135 "{\n\t\t\tuint256 a = 1;\n\t\t}\n" - - OpenBrace (Token): "{" # 111..112 - - StatementsList (Rule): # 113..131 "\t\t\tuint256 a = 1;\n" - - Statement (Rule): # 113..131 "\t\t\tuint256 a = 1;\n" - - VariableDeclarationStatement (Rule): # 113..131 "\t\t\tuint256 a = 1;\n" - - VariableDeclaration (Rule): # 113..125 "\t\t\tuint256 a" - - TypeName (Rule): # 113..123 "\t\t\tuint256" - - UnsignedIntegerType (Token): "uint256" # 116..123 - - Identifier (Token): "a" # 124..125 - - Equal (Token): "=" # 126..127 - - Expression (Rule): # 127..129 " 1" - - DecimalNumberExpression (Rule): # 127..129 " 1" - - DecimalLiteral (Token): "1" # 128..129 - - Semicolon (Token): ";" # 129..130 - - CloseBrace (Token): "}" # 133..134 + - IfStatement (Rule): # 65..135 "\t\tif(while == pair && !_isExcludedFromFee[to]){\n\t\t..." + - IfKeyword (Token): "if" # 67..69 + - OpenParen (Token): "(" # 69..70 + - SKIPPED (Token): "while == pair && !_isExcludedFromFee[to]" # 70..110 + - CloseParen (Token): ")" # 110..111 + - Block (Rule): # 111..135 "{\n\t\t\tuint256 a = 1;\n\t\t}\n" + - OpenBrace (Token): "{" # 111..112 + - StatementsList (Rule): # 113..131 "\t\t\tuint256 a = 1;\n" + - VariableDeclarationStatement (Rule): # 113..131 "\t\t\tuint256 a = 1;\n" + - VariableDeclaration (Rule): # 113..125 "\t\t\tuint256 a" + - TypeName (Rule): # 113..123 "\t\t\tuint256" + - UnsignedIntegerType (Token): "uint256" # 116..123 + - Identifier (Token): "a" # 124..125 + - Equal (Token): "=" # 126..127 + - Expression (Rule): # 127..129 " 1" + - DecimalNumberExpression (Rule): # 127..129 " 1" + - DecimalLiteral (Token): "1" # 128..129 + - Semicolon (Token): ";" # 129..130 + - CloseBrace (Token): "}" # 133..134 - CloseBrace (Token): "}" # 136..137 - FunctionDefinition (Rule): # 138..210 "\n\tfunction abc() {\n\t\tuint256 x = 0;\n\t\tunchecked { ..." - FunctionKeyword (Token): "function" # 140..148 @@ -96,17 +93,16 @@ Tree: - Block (Rule): # 154..210 " {\n\t\tuint256 x = 0;\n\t\tunchecked { invalid sequence..." - OpenBrace (Token): "{" # 155..156 - StatementsList (Rule): # 157..174 "\t\tuint256 x = 0;\n" - - Statement (Rule): # 157..174 "\t\tuint256 x = 0;\n" - - VariableDeclarationStatement (Rule): # 157..174 "\t\tuint256 x = 0;\n" - - VariableDeclaration (Rule): # 157..168 "\t\tuint256 x" - - TypeName (Rule): # 157..166 "\t\tuint256" - - UnsignedIntegerType (Token): "uint256" # 159..166 - - Identifier (Token): "x" # 167..168 - - Equal (Token): "=" # 169..170 - - Expression (Rule): # 170..172 " 0" - - DecimalNumberExpression (Rule): # 170..172 " 0" - - DecimalLiteral (Token): "0" # 171..172 - - Semicolon (Token): ";" # 172..173 + - VariableDeclarationStatement (Rule): # 157..174 "\t\tuint256 x = 0;\n" + - VariableDeclaration (Rule): # 157..168 "\t\tuint256 x" + - TypeName (Rule): # 157..166 "\t\tuint256" + - UnsignedIntegerType (Token): "uint256" # 159..166 + - Identifier (Token): "x" # 167..168 + - Equal (Token): "=" # 169..170 + - Expression (Rule): # 170..172 " 0" + - DecimalNumberExpression (Rule): # 170..172 " 0" + - DecimalLiteral (Token): "0" # 171..172 + - Semicolon (Token): ";" # 172..173 - SKIPPED (Token): "unchecked { invalid sequence }\n\t" # 176..208 - CloseBrace (Token): "}" # 208..209 - CloseBrace (Token): "}" # 210..211 diff --git a/crates/solidity/testing/snapshots/cst_output/ContractDefinition/recovery_testbed/generated/0.6.0-failure.yml b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/recovery_testbed/generated/0.6.0-failure.yml index f14fc5379e..aee8763332 100644 --- a/crates/solidity/testing/snapshots/cst_output/ContractDefinition/recovery_testbed/generated/0.6.0-failure.yml +++ b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/recovery_testbed/generated/0.6.0-failure.yml @@ -64,28 +64,25 @@ Tree: - Block (Rule): # 62..138 " {\n\t\tif(while == pair && !_isExcludedFromFee[to]){..." - OpenBrace (Token): "{" # 63..64 - StatementsList (Rule): # 65..135 "\t\tif(while == pair && !_isExcludedFromFee[to]){\n\t\t..." - - Statement (Rule): # 65..135 "\t\tif(while == pair && !_isExcludedFromFee[to]){\n\t\t..." - - IfStatement (Rule): # 65..135 "\t\tif(while == pair && !_isExcludedFromFee[to]){\n\t\t..." - - IfKeyword (Token): "if" # 67..69 - - OpenParen (Token): "(" # 69..70 - - SKIPPED (Token): "while == pair && !_isExcludedFromFee[to]" # 70..110 - - CloseParen (Token): ")" # 110..111 - - Statement (Rule): # 111..135 "{\n\t\t\tuint256 a = 1;\n\t\t}\n" - - Block (Rule): # 111..135 "{\n\t\t\tuint256 a = 1;\n\t\t}\n" - - OpenBrace (Token): "{" # 111..112 - - StatementsList (Rule): # 113..131 "\t\t\tuint256 a = 1;\n" - - Statement (Rule): # 113..131 "\t\t\tuint256 a = 1;\n" - - VariableDeclarationStatement (Rule): # 113..131 "\t\t\tuint256 a = 1;\n" - - VariableDeclaration (Rule): # 113..125 "\t\t\tuint256 a" - - TypeName (Rule): # 113..123 "\t\t\tuint256" - - UnsignedIntegerType (Token): "uint256" # 116..123 - - Identifier (Token): "a" # 124..125 - - Equal (Token): "=" # 126..127 - - Expression (Rule): # 127..129 " 1" - - DecimalNumberExpression (Rule): # 127..129 " 1" - - DecimalLiteral (Token): "1" # 128..129 - - Semicolon (Token): ";" # 129..130 - - CloseBrace (Token): "}" # 133..134 + - IfStatement (Rule): # 65..135 "\t\tif(while == pair && !_isExcludedFromFee[to]){\n\t\t..." + - IfKeyword (Token): "if" # 67..69 + - OpenParen (Token): "(" # 69..70 + - SKIPPED (Token): "while == pair && !_isExcludedFromFee[to]" # 70..110 + - CloseParen (Token): ")" # 110..111 + - Block (Rule): # 111..135 "{\n\t\t\tuint256 a = 1;\n\t\t}\n" + - OpenBrace (Token): "{" # 111..112 + - StatementsList (Rule): # 113..131 "\t\t\tuint256 a = 1;\n" + - VariableDeclarationStatement (Rule): # 113..131 "\t\t\tuint256 a = 1;\n" + - VariableDeclaration (Rule): # 113..125 "\t\t\tuint256 a" + - TypeName (Rule): # 113..123 "\t\t\tuint256" + - UnsignedIntegerType (Token): "uint256" # 116..123 + - Identifier (Token): "a" # 124..125 + - Equal (Token): "=" # 126..127 + - Expression (Rule): # 127..129 " 1" + - DecimalNumberExpression (Rule): # 127..129 " 1" + - DecimalLiteral (Token): "1" # 128..129 + - Semicolon (Token): ";" # 129..130 + - CloseBrace (Token): "}" # 133..134 - CloseBrace (Token): "}" # 136..137 - FunctionDefinition (Rule): # 138..210 "\n\tfunction abc() {\n\t\tuint256 x = 0;\n\t\tunchecked { ..." - FunctionKeyword (Token): "function" # 140..148 @@ -96,17 +93,16 @@ Tree: - Block (Rule): # 154..210 " {\n\t\tuint256 x = 0;\n\t\tunchecked { invalid sequence..." - OpenBrace (Token): "{" # 155..156 - StatementsList (Rule): # 157..174 "\t\tuint256 x = 0;\n" - - Statement (Rule): # 157..174 "\t\tuint256 x = 0;\n" - - VariableDeclarationStatement (Rule): # 157..174 "\t\tuint256 x = 0;\n" - - VariableDeclaration (Rule): # 157..168 "\t\tuint256 x" - - TypeName (Rule): # 157..166 "\t\tuint256" - - UnsignedIntegerType (Token): "uint256" # 159..166 - - Identifier (Token): "x" # 167..168 - - Equal (Token): "=" # 169..170 - - Expression (Rule): # 170..172 " 0" - - DecimalNumberExpression (Rule): # 170..172 " 0" - - DecimalLiteral (Token): "0" # 171..172 - - Semicolon (Token): ";" # 172..173 + - VariableDeclarationStatement (Rule): # 157..174 "\t\tuint256 x = 0;\n" + - VariableDeclaration (Rule): # 157..168 "\t\tuint256 x" + - TypeName (Rule): # 157..166 "\t\tuint256" + - UnsignedIntegerType (Token): "uint256" # 159..166 + - Identifier (Token): "x" # 167..168 + - Equal (Token): "=" # 169..170 + - Expression (Rule): # 170..172 " 0" + - DecimalNumberExpression (Rule): # 170..172 " 0" + - DecimalLiteral (Token): "0" # 171..172 + - Semicolon (Token): ";" # 172..173 - SKIPPED (Token): "unchecked { invalid sequence }\n\t" # 176..208 - CloseBrace (Token): "}" # 208..209 - CloseBrace (Token): "}" # 210..211 diff --git a/crates/solidity/testing/snapshots/cst_output/ContractDefinition/recovery_testbed/generated/0.7.0-failure.yml b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/recovery_testbed/generated/0.7.0-failure.yml index 26a41f478f..b60cdb083c 100644 --- a/crates/solidity/testing/snapshots/cst_output/ContractDefinition/recovery_testbed/generated/0.7.0-failure.yml +++ b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/recovery_testbed/generated/0.7.0-failure.yml @@ -64,28 +64,25 @@ Tree: - Block (Rule): # 62..138 " {\n\t\tif(while == pair && !_isExcludedFromFee[to]){..." - OpenBrace (Token): "{" # 63..64 - StatementsList (Rule): # 65..135 "\t\tif(while == pair && !_isExcludedFromFee[to]){\n\t\t..." - - Statement (Rule): # 65..135 "\t\tif(while == pair && !_isExcludedFromFee[to]){\n\t\t..." - - IfStatement (Rule): # 65..135 "\t\tif(while == pair && !_isExcludedFromFee[to]){\n\t\t..." - - IfKeyword (Token): "if" # 67..69 - - OpenParen (Token): "(" # 69..70 - - SKIPPED (Token): "while == pair && !_isExcludedFromFee[to]" # 70..110 - - CloseParen (Token): ")" # 110..111 - - Statement (Rule): # 111..135 "{\n\t\t\tuint256 a = 1;\n\t\t}\n" - - Block (Rule): # 111..135 "{\n\t\t\tuint256 a = 1;\n\t\t}\n" - - OpenBrace (Token): "{" # 111..112 - - StatementsList (Rule): # 113..131 "\t\t\tuint256 a = 1;\n" - - Statement (Rule): # 113..131 "\t\t\tuint256 a = 1;\n" - - VariableDeclarationStatement (Rule): # 113..131 "\t\t\tuint256 a = 1;\n" - - VariableDeclaration (Rule): # 113..125 "\t\t\tuint256 a" - - TypeName (Rule): # 113..123 "\t\t\tuint256" - - UnsignedIntegerType (Token): "uint256" # 116..123 - - Identifier (Token): "a" # 124..125 - - Equal (Token): "=" # 126..127 - - Expression (Rule): # 127..129 " 1" - - DecimalNumberExpression (Rule): # 127..129 " 1" - - DecimalLiteral (Token): "1" # 128..129 - - Semicolon (Token): ";" # 129..130 - - CloseBrace (Token): "}" # 133..134 + - IfStatement (Rule): # 65..135 "\t\tif(while == pair && !_isExcludedFromFee[to]){\n\t\t..." + - IfKeyword (Token): "if" # 67..69 + - OpenParen (Token): "(" # 69..70 + - SKIPPED (Token): "while == pair && !_isExcludedFromFee[to]" # 70..110 + - CloseParen (Token): ")" # 110..111 + - Block (Rule): # 111..135 "{\n\t\t\tuint256 a = 1;\n\t\t}\n" + - OpenBrace (Token): "{" # 111..112 + - StatementsList (Rule): # 113..131 "\t\t\tuint256 a = 1;\n" + - VariableDeclarationStatement (Rule): # 113..131 "\t\t\tuint256 a = 1;\n" + - VariableDeclaration (Rule): # 113..125 "\t\t\tuint256 a" + - TypeName (Rule): # 113..123 "\t\t\tuint256" + - UnsignedIntegerType (Token): "uint256" # 116..123 + - Identifier (Token): "a" # 124..125 + - Equal (Token): "=" # 126..127 + - Expression (Rule): # 127..129 " 1" + - DecimalNumberExpression (Rule): # 127..129 " 1" + - DecimalLiteral (Token): "1" # 128..129 + - Semicolon (Token): ";" # 129..130 + - CloseBrace (Token): "}" # 133..134 - CloseBrace (Token): "}" # 136..137 - FunctionDefinition (Rule): # 138..210 "\n\tfunction abc() {\n\t\tuint256 x = 0;\n\t\tunchecked { ..." - FunctionKeyword (Token): "function" # 140..148 @@ -96,17 +93,16 @@ Tree: - Block (Rule): # 154..210 " {\n\t\tuint256 x = 0;\n\t\tunchecked { invalid sequence..." - OpenBrace (Token): "{" # 155..156 - StatementsList (Rule): # 157..174 "\t\tuint256 x = 0;\n" - - Statement (Rule): # 157..174 "\t\tuint256 x = 0;\n" - - VariableDeclarationStatement (Rule): # 157..174 "\t\tuint256 x = 0;\n" - - VariableDeclaration (Rule): # 157..168 "\t\tuint256 x" - - TypeName (Rule): # 157..166 "\t\tuint256" - - UnsignedIntegerType (Token): "uint256" # 159..166 - - Identifier (Token): "x" # 167..168 - - Equal (Token): "=" # 169..170 - - Expression (Rule): # 170..172 " 0" - - DecimalNumberExpression (Rule): # 170..172 " 0" - - DecimalLiteral (Token): "0" # 171..172 - - Semicolon (Token): ";" # 172..173 + - VariableDeclarationStatement (Rule): # 157..174 "\t\tuint256 x = 0;\n" + - VariableDeclaration (Rule): # 157..168 "\t\tuint256 x" + - TypeName (Rule): # 157..166 "\t\tuint256" + - UnsignedIntegerType (Token): "uint256" # 159..166 + - Identifier (Token): "x" # 167..168 + - Equal (Token): "=" # 169..170 + - Expression (Rule): # 170..172 " 0" + - DecimalNumberExpression (Rule): # 170..172 " 0" + - DecimalLiteral (Token): "0" # 171..172 + - Semicolon (Token): ";" # 172..173 - SKIPPED (Token): "unchecked { invalid sequence }\n\t" # 176..208 - CloseBrace (Token): "}" # 208..209 - CloseBrace (Token): "}" # 210..211 diff --git a/crates/solidity/testing/snapshots/cst_output/ContractDefinition/recovery_testbed/generated/0.8.0-failure.yml b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/recovery_testbed/generated/0.8.0-failure.yml index ebb94757a7..0e4df520d5 100644 --- a/crates/solidity/testing/snapshots/cst_output/ContractDefinition/recovery_testbed/generated/0.8.0-failure.yml +++ b/crates/solidity/testing/snapshots/cst_output/ContractDefinition/recovery_testbed/generated/0.8.0-failure.yml @@ -63,28 +63,25 @@ Tree: - Block (Rule): # 62..138 " {\n\t\tif(while == pair && !_isExcludedFromFee[to]){..." - OpenBrace (Token): "{" # 63..64 - StatementsList (Rule): # 65..135 "\t\tif(while == pair && !_isExcludedFromFee[to]){\n\t\t..." - - Statement (Rule): # 65..135 "\t\tif(while == pair && !_isExcludedFromFee[to]){\n\t\t..." - - IfStatement (Rule): # 65..135 "\t\tif(while == pair && !_isExcludedFromFee[to]){\n\t\t..." - - IfKeyword (Token): "if" # 67..69 - - OpenParen (Token): "(" # 69..70 - - SKIPPED (Token): "while == pair && !_isExcludedFromFee[to]" # 70..110 - - CloseParen (Token): ")" # 110..111 - - Statement (Rule): # 111..135 "{\n\t\t\tuint256 a = 1;\n\t\t}\n" - - Block (Rule): # 111..135 "{\n\t\t\tuint256 a = 1;\n\t\t}\n" - - OpenBrace (Token): "{" # 111..112 - - StatementsList (Rule): # 113..131 "\t\t\tuint256 a = 1;\n" - - Statement (Rule): # 113..131 "\t\t\tuint256 a = 1;\n" - - VariableDeclarationStatement (Rule): # 113..131 "\t\t\tuint256 a = 1;\n" - - VariableDeclaration (Rule): # 113..125 "\t\t\tuint256 a" - - TypeName (Rule): # 113..123 "\t\t\tuint256" - - UnsignedIntegerType (Token): "uint256" # 116..123 - - Identifier (Token): "a" # 124..125 - - Equal (Token): "=" # 126..127 - - Expression (Rule): # 127..129 " 1" - - DecimalNumberExpression (Rule): # 127..129 " 1" - - DecimalLiteral (Token): "1" # 128..129 - - Semicolon (Token): ";" # 129..130 - - CloseBrace (Token): "}" # 133..134 + - IfStatement (Rule): # 65..135 "\t\tif(while == pair && !_isExcludedFromFee[to]){\n\t\t..." + - IfKeyword (Token): "if" # 67..69 + - OpenParen (Token): "(" # 69..70 + - SKIPPED (Token): "while == pair && !_isExcludedFromFee[to]" # 70..110 + - CloseParen (Token): ")" # 110..111 + - Block (Rule): # 111..135 "{\n\t\t\tuint256 a = 1;\n\t\t}\n" + - OpenBrace (Token): "{" # 111..112 + - StatementsList (Rule): # 113..131 "\t\t\tuint256 a = 1;\n" + - VariableDeclarationStatement (Rule): # 113..131 "\t\t\tuint256 a = 1;\n" + - VariableDeclaration (Rule): # 113..125 "\t\t\tuint256 a" + - TypeName (Rule): # 113..123 "\t\t\tuint256" + - UnsignedIntegerType (Token): "uint256" # 116..123 + - Identifier (Token): "a" # 124..125 + - Equal (Token): "=" # 126..127 + - Expression (Rule): # 127..129 " 1" + - DecimalNumberExpression (Rule): # 127..129 " 1" + - DecimalLiteral (Token): "1" # 128..129 + - Semicolon (Token): ";" # 129..130 + - CloseBrace (Token): "}" # 133..134 - CloseBrace (Token): "}" # 136..137 - FunctionDefinition (Rule): # 138..210 "\n\tfunction abc() {\n\t\tuint256 x = 0;\n\t\tunchecked { ..." - FunctionKeyword (Token): "function" # 140..148 @@ -95,31 +92,28 @@ Tree: - Block (Rule): # 154..210 " {\n\t\tuint256 x = 0;\n\t\tunchecked { invalid sequence..." - OpenBrace (Token): "{" # 155..156 - StatementsList (Rule): # 157..207 "\t\tuint256 x = 0;\n\t\tunchecked { invalid sequence }\n" - - Statement (Rule): # 157..174 "\t\tuint256 x = 0;\n" - - VariableDeclarationStatement (Rule): # 157..174 "\t\tuint256 x = 0;\n" - - VariableDeclaration (Rule): # 157..168 "\t\tuint256 x" - - TypeName (Rule): # 157..166 "\t\tuint256" - - UnsignedIntegerType (Token): "uint256" # 159..166 - - Identifier (Token): "x" # 167..168 - - Equal (Token): "=" # 169..170 - - Expression (Rule): # 170..172 " 0" - - DecimalNumberExpression (Rule): # 170..172 " 0" - - DecimalLiteral (Token): "0" # 171..172 - - Semicolon (Token): ";" # 172..173 - - Statement (Rule): # 174..207 "\t\tunchecked { invalid sequence }\n" - - UncheckedBlock (Rule): # 174..207 "\t\tunchecked { invalid sequence }\n" - - UncheckedKeyword (Token): "unchecked" # 176..185 - - Block (Rule): # 185..207 " { invalid sequence }\n" - - OpenBrace (Token): "{" # 186..187 - - StatementsList (Rule): # 187..205 " invalid sequence " - - Statement (Rule): # 187..205 " invalid sequence " - - VariableDeclarationStatement (Rule): # 187..205 " invalid sequence " - - VariableDeclaration (Rule): # 187..204 " invalid sequence" - - TypeName (Rule): # 187..195 " invalid" - - IdentifierPath (Rule): # 187..195 " invalid" - - Identifier (Token): "invalid" # 188..195 - - Identifier (Token): "sequence" # 196..204 - - SKIPPED (Token): "" # 205..205 - - CloseBrace (Token): "}" # 205..206 + - VariableDeclarationStatement (Rule): # 157..174 "\t\tuint256 x = 0;\n" + - VariableDeclaration (Rule): # 157..168 "\t\tuint256 x" + - TypeName (Rule): # 157..166 "\t\tuint256" + - UnsignedIntegerType (Token): "uint256" # 159..166 + - Identifier (Token): "x" # 167..168 + - Equal (Token): "=" # 169..170 + - Expression (Rule): # 170..172 " 0" + - DecimalNumberExpression (Rule): # 170..172 " 0" + - DecimalLiteral (Token): "0" # 171..172 + - Semicolon (Token): ";" # 172..173 + - UncheckedBlock (Rule): # 174..207 "\t\tunchecked { invalid sequence }\n" + - UncheckedKeyword (Token): "unchecked" # 176..185 + - Block (Rule): # 185..207 " { invalid sequence }\n" + - OpenBrace (Token): "{" # 186..187 + - StatementsList (Rule): # 187..205 " invalid sequence " + - VariableDeclarationStatement (Rule): # 187..205 " invalid sequence " + - VariableDeclaration (Rule): # 187..204 " invalid sequence" + - TypeName (Rule): # 187..195 " invalid" + - IdentifierPath (Rule): # 187..195 " invalid" + - Identifier (Token): "invalid" # 188..195 + - Identifier (Token): "sequence" # 196..204 + - SKIPPED (Token): "" # 205..205 + - CloseBrace (Token): "}" # 205..206 - CloseBrace (Token): "}" # 208..209 - CloseBrace (Token): "}" # 210..211 diff --git a/crates/solidity/testing/snapshots/cst_output/ContractMembersList/local_expression/generated/0.4.11-success.yml b/crates/solidity/testing/snapshots/cst_output/ContractMembersList/local_expression/generated/0.4.11-success.yml index d21b509f0e..9b7b125b73 100644 --- a/crates/solidity/testing/snapshots/cst_output/ContractMembersList/local_expression/generated/0.4.11-success.yml +++ b/crates/solidity/testing/snapshots/cst_output/ContractMembersList/local_expression/generated/0.4.11-success.yml @@ -18,27 +18,26 @@ Tree: - Block (Rule): # 15..42 " {\n uint a = 1 + 2 * 3;\n}\n" - OpenBrace (Token): "{" # 16..17 - StatementsList (Rule): # 18..40 " uint a = 1 + 2 * 3;\n" - - Statement (Rule): # 18..40 " uint a = 1 + 2 * 3;\n" - - VariableDeclarationStatement (Rule): # 18..40 " uint a = 1 + 2 * 3;\n" - - VariableDeclaration (Rule): # 18..26 " uint a" - - TypeName (Rule): # 18..24 " uint" - - UnsignedIntegerType (Token): "uint" # 20..24 - - Identifier (Token): "a" # 25..26 - - Equal (Token): "=" # 27..28 - - Expression (Rule): # 28..38 " 1 + 2 * 3" - - BinaryExpression (Rule): # 28..38 " 1 + 2 * 3" - - Expression (Rule): # 28..30 " 1" - - DecimalNumberExpression (Rule): # 28..30 " 1" - - DecimalLiteral (Token): "1" # 29..30 - - Plus (Token): "+" # 31..32 - - Expression (Rule): # 32..38 " 2 * 3" - - BinaryExpression (Rule): # 32..38 " 2 * 3" - - Expression (Rule): # 32..34 " 2" - - DecimalNumberExpression (Rule): # 32..34 " 2" - - DecimalLiteral (Token): "2" # 33..34 - - Asterisk (Token): "*" # 35..36 - - Expression (Rule): # 36..38 " 3" - - DecimalNumberExpression (Rule): # 36..38 " 3" - - DecimalLiteral (Token): "3" # 37..38 - - Semicolon (Token): ";" # 38..39 + - VariableDeclarationStatement (Rule): # 18..40 " uint a = 1 + 2 * 3;\n" + - VariableDeclaration (Rule): # 18..26 " uint a" + - TypeName (Rule): # 18..24 " uint" + - UnsignedIntegerType (Token): "uint" # 20..24 + - Identifier (Token): "a" # 25..26 + - Equal (Token): "=" # 27..28 + - Expression (Rule): # 28..38 " 1 + 2 * 3" + - BinaryExpression (Rule): # 28..38 " 1 + 2 * 3" + - Expression (Rule): # 28..30 " 1" + - DecimalNumberExpression (Rule): # 28..30 " 1" + - DecimalLiteral (Token): "1" # 29..30 + - Plus (Token): "+" # 31..32 + - Expression (Rule): # 32..38 " 2 * 3" + - BinaryExpression (Rule): # 32..38 " 2 * 3" + - Expression (Rule): # 32..34 " 2" + - DecimalNumberExpression (Rule): # 32..34 " 2" + - DecimalLiteral (Token): "2" # 33..34 + - Asterisk (Token): "*" # 35..36 + - Expression (Rule): # 36..38 " 3" + - DecimalNumberExpression (Rule): # 36..38 " 3" + - DecimalLiteral (Token): "3" # 37..38 + - Semicolon (Token): ";" # 38..39 - CloseBrace (Token): "}" # 40..41 diff --git a/crates/solidity/testing/snapshots/cst_output/ContractMembersList/mismatched_delimiter/generated/0.4.11-failure.yml b/crates/solidity/testing/snapshots/cst_output/ContractMembersList/mismatched_delimiter/generated/0.4.11-failure.yml index d14ea24157..92cef4414d 100644 --- a/crates/solidity/testing/snapshots/cst_output/ContractMembersList/mismatched_delimiter/generated/0.4.11-failure.yml +++ b/crates/solidity/testing/snapshots/cst_output/ContractMembersList/mismatched_delimiter/generated/0.4.11-failure.yml @@ -39,31 +39,29 @@ Tree: - Block (Rule): # 26..74 " {\n {\n uint256 arg = (1 + 2;\n })\n}\n" - OpenBrace (Token): "{" # 27..28 - StatementsList (Rule): # 29..70 " {\n uint256 arg = (1 + 2;\n }" - - Statement (Rule): # 29..70 " {\n uint256 arg = (1 + 2;\n }" - - Block (Rule): # 29..70 " {\n uint256 arg = (1 + 2;\n }" - - OpenBrace (Token): "{" # 33..34 - - StatementsList (Rule): # 35..63 " uint256 arg = (1 + 2" - - Statement (Rule): # 35..63 " uint256 arg = (1 + 2" - - VariableDeclarationStatement (Rule): # 35..63 " uint256 arg = (1 + 2" - - VariableDeclaration (Rule): # 35..54 " uint256 arg" - - TypeName (Rule): # 35..50 " uint256" - - UnsignedIntegerType (Token): "uint256" # 43..50 - - Identifier (Token): "arg" # 51..54 - - Equal (Token): "=" # 55..56 - - Expression (Rule): # 56..63 " (1 + 2" - - TupleExpression (Rule): # 56..63 " (1 + 2" - - OpenParen (Token): "(" # 57..58 - - TupleValuesList (Rule): # 58..63 "1 + 2" - - Expression (Rule): # 58..63 "1 + 2" - - BinaryExpression (Rule): # 58..63 "1 + 2" - - Expression (Rule): # 58..59 "1" - - DecimalNumberExpression (Rule): # 58..59 "1" - - DecimalLiteral (Token): "1" # 58..59 - - Plus (Token): "+" # 60..61 - - Expression (Rule): # 61..63 " 2" - - DecimalNumberExpression (Rule): # 61..63 " 2" - - DecimalLiteral (Token): "2" # 62..63 - - SKIPPED (Token): ";\n " # 63..69 - - CloseBrace (Token): "}" # 69..70 + - Block (Rule): # 29..70 " {\n uint256 arg = (1 + 2;\n }" + - OpenBrace (Token): "{" # 33..34 + - StatementsList (Rule): # 35..63 " uint256 arg = (1 + 2" + - VariableDeclarationStatement (Rule): # 35..63 " uint256 arg = (1 + 2" + - VariableDeclaration (Rule): # 35..54 " uint256 arg" + - TypeName (Rule): # 35..50 " uint256" + - UnsignedIntegerType (Token): "uint256" # 43..50 + - Identifier (Token): "arg" # 51..54 + - Equal (Token): "=" # 55..56 + - Expression (Rule): # 56..63 " (1 + 2" + - TupleExpression (Rule): # 56..63 " (1 + 2" + - OpenParen (Token): "(" # 57..58 + - TupleValuesList (Rule): # 58..63 "1 + 2" + - Expression (Rule): # 58..63 "1 + 2" + - BinaryExpression (Rule): # 58..63 "1 + 2" + - Expression (Rule): # 58..59 "1" + - DecimalNumberExpression (Rule): # 58..59 "1" + - DecimalLiteral (Token): "1" # 58..59 + - Plus (Token): "+" # 60..61 + - Expression (Rule): # 61..63 " 2" + - DecimalNumberExpression (Rule): # 61..63 " 2" + - DecimalLiteral (Token): "2" # 62..63 + - SKIPPED (Token): ";\n " # 63..69 + - CloseBrace (Token): "}" # 69..70 - SKIPPED (Token): ")\n" # 70..72 - CloseBrace (Token): "}" # 72..73 diff --git a/crates/solidity/testing/snapshots/cst_output/ContractMembersList/mismatched_delimiter/generated/0.4.21-failure.yml b/crates/solidity/testing/snapshots/cst_output/ContractMembersList/mismatched_delimiter/generated/0.4.21-failure.yml index 6c5cf820bf..b41bdbd0d8 100644 --- a/crates/solidity/testing/snapshots/cst_output/ContractMembersList/mismatched_delimiter/generated/0.4.21-failure.yml +++ b/crates/solidity/testing/snapshots/cst_output/ContractMembersList/mismatched_delimiter/generated/0.4.21-failure.yml @@ -39,31 +39,29 @@ Tree: - Block (Rule): # 26..74 " {\n {\n uint256 arg = (1 + 2;\n })\n}\n" - OpenBrace (Token): "{" # 27..28 - StatementsList (Rule): # 29..70 " {\n uint256 arg = (1 + 2;\n }" - - Statement (Rule): # 29..70 " {\n uint256 arg = (1 + 2;\n }" - - Block (Rule): # 29..70 " {\n uint256 arg = (1 + 2;\n }" - - OpenBrace (Token): "{" # 33..34 - - StatementsList (Rule): # 35..63 " uint256 arg = (1 + 2" - - Statement (Rule): # 35..63 " uint256 arg = (1 + 2" - - VariableDeclarationStatement (Rule): # 35..63 " uint256 arg = (1 + 2" - - VariableDeclaration (Rule): # 35..54 " uint256 arg" - - TypeName (Rule): # 35..50 " uint256" - - UnsignedIntegerType (Token): "uint256" # 43..50 - - Identifier (Token): "arg" # 51..54 - - Equal (Token): "=" # 55..56 - - Expression (Rule): # 56..63 " (1 + 2" - - TupleExpression (Rule): # 56..63 " (1 + 2" - - OpenParen (Token): "(" # 57..58 - - TupleValuesList (Rule): # 58..63 "1 + 2" - - Expression (Rule): # 58..63 "1 + 2" - - BinaryExpression (Rule): # 58..63 "1 + 2" - - Expression (Rule): # 58..59 "1" - - DecimalNumberExpression (Rule): # 58..59 "1" - - DecimalLiteral (Token): "1" # 58..59 - - Plus (Token): "+" # 60..61 - - Expression (Rule): # 61..63 " 2" - - DecimalNumberExpression (Rule): # 61..63 " 2" - - DecimalLiteral (Token): "2" # 62..63 - - SKIPPED (Token): ";\n " # 63..69 - - CloseBrace (Token): "}" # 69..70 + - Block (Rule): # 29..70 " {\n uint256 arg = (1 + 2;\n }" + - OpenBrace (Token): "{" # 33..34 + - StatementsList (Rule): # 35..63 " uint256 arg = (1 + 2" + - VariableDeclarationStatement (Rule): # 35..63 " uint256 arg = (1 + 2" + - VariableDeclaration (Rule): # 35..54 " uint256 arg" + - TypeName (Rule): # 35..50 " uint256" + - UnsignedIntegerType (Token): "uint256" # 43..50 + - Identifier (Token): "arg" # 51..54 + - Equal (Token): "=" # 55..56 + - Expression (Rule): # 56..63 " (1 + 2" + - TupleExpression (Rule): # 56..63 " (1 + 2" + - OpenParen (Token): "(" # 57..58 + - TupleValuesList (Rule): # 58..63 "1 + 2" + - Expression (Rule): # 58..63 "1 + 2" + - BinaryExpression (Rule): # 58..63 "1 + 2" + - Expression (Rule): # 58..59 "1" + - DecimalNumberExpression (Rule): # 58..59 "1" + - DecimalLiteral (Token): "1" # 58..59 + - Plus (Token): "+" # 60..61 + - Expression (Rule): # 61..63 " 2" + - DecimalNumberExpression (Rule): # 61..63 " 2" + - DecimalLiteral (Token): "2" # 62..63 + - SKIPPED (Token): ";\n " # 63..69 + - CloseBrace (Token): "}" # 69..70 - SKIPPED (Token): ")\n" # 70..72 - CloseBrace (Token): "}" # 72..73 diff --git a/crates/solidity/testing/snapshots/cst_output/ContractMembersList/mismatched_delimiter/generated/0.5.0-failure.yml b/crates/solidity/testing/snapshots/cst_output/ContractMembersList/mismatched_delimiter/generated/0.5.0-failure.yml index 9415860f15..a9a31fc04e 100644 --- a/crates/solidity/testing/snapshots/cst_output/ContractMembersList/mismatched_delimiter/generated/0.5.0-failure.yml +++ b/crates/solidity/testing/snapshots/cst_output/ContractMembersList/mismatched_delimiter/generated/0.5.0-failure.yml @@ -39,31 +39,29 @@ Tree: - Block (Rule): # 26..74 " {\n {\n uint256 arg = (1 + 2;\n })\n}\n" - OpenBrace (Token): "{" # 27..28 - StatementsList (Rule): # 29..70 " {\n uint256 arg = (1 + 2;\n }" - - Statement (Rule): # 29..70 " {\n uint256 arg = (1 + 2;\n }" - - Block (Rule): # 29..70 " {\n uint256 arg = (1 + 2;\n }" - - OpenBrace (Token): "{" # 33..34 - - StatementsList (Rule): # 35..63 " uint256 arg = (1 + 2" - - Statement (Rule): # 35..63 " uint256 arg = (1 + 2" - - VariableDeclarationStatement (Rule): # 35..63 " uint256 arg = (1 + 2" - - VariableDeclaration (Rule): # 35..54 " uint256 arg" - - TypeName (Rule): # 35..50 " uint256" - - UnsignedIntegerType (Token): "uint256" # 43..50 - - Identifier (Token): "arg" # 51..54 - - Equal (Token): "=" # 55..56 - - Expression (Rule): # 56..63 " (1 + 2" - - TupleExpression (Rule): # 56..63 " (1 + 2" - - OpenParen (Token): "(" # 57..58 - - TupleValuesList (Rule): # 58..63 "1 + 2" - - Expression (Rule): # 58..63 "1 + 2" - - BinaryExpression (Rule): # 58..63 "1 + 2" - - Expression (Rule): # 58..59 "1" - - DecimalNumberExpression (Rule): # 58..59 "1" - - DecimalLiteral (Token): "1" # 58..59 - - Plus (Token): "+" # 60..61 - - Expression (Rule): # 61..63 " 2" - - DecimalNumberExpression (Rule): # 61..63 " 2" - - DecimalLiteral (Token): "2" # 62..63 - - SKIPPED (Token): ";\n " # 63..69 - - CloseBrace (Token): "}" # 69..70 + - Block (Rule): # 29..70 " {\n uint256 arg = (1 + 2;\n }" + - OpenBrace (Token): "{" # 33..34 + - StatementsList (Rule): # 35..63 " uint256 arg = (1 + 2" + - VariableDeclarationStatement (Rule): # 35..63 " uint256 arg = (1 + 2" + - VariableDeclaration (Rule): # 35..54 " uint256 arg" + - TypeName (Rule): # 35..50 " uint256" + - UnsignedIntegerType (Token): "uint256" # 43..50 + - Identifier (Token): "arg" # 51..54 + - Equal (Token): "=" # 55..56 + - Expression (Rule): # 56..63 " (1 + 2" + - TupleExpression (Rule): # 56..63 " (1 + 2" + - OpenParen (Token): "(" # 57..58 + - TupleValuesList (Rule): # 58..63 "1 + 2" + - Expression (Rule): # 58..63 "1 + 2" + - BinaryExpression (Rule): # 58..63 "1 + 2" + - Expression (Rule): # 58..59 "1" + - DecimalNumberExpression (Rule): # 58..59 "1" + - DecimalLiteral (Token): "1" # 58..59 + - Plus (Token): "+" # 60..61 + - Expression (Rule): # 61..63 " 2" + - DecimalNumberExpression (Rule): # 61..63 " 2" + - DecimalLiteral (Token): "2" # 62..63 + - SKIPPED (Token): ";\n " # 63..69 + - CloseBrace (Token): "}" # 69..70 - SKIPPED (Token): ")\n" # 70..72 - CloseBrace (Token): "}" # 72..73 diff --git a/crates/solidity/testing/snapshots/cst_output/ContractMembersList/mismatched_delimiter/generated/0.5.3-failure.yml b/crates/solidity/testing/snapshots/cst_output/ContractMembersList/mismatched_delimiter/generated/0.5.3-failure.yml index 376268a6e5..11d5498c20 100644 --- a/crates/solidity/testing/snapshots/cst_output/ContractMembersList/mismatched_delimiter/generated/0.5.3-failure.yml +++ b/crates/solidity/testing/snapshots/cst_output/ContractMembersList/mismatched_delimiter/generated/0.5.3-failure.yml @@ -39,31 +39,29 @@ Tree: - Block (Rule): # 26..74 " {\n {\n uint256 arg = (1 + 2;\n })\n}\n" - OpenBrace (Token): "{" # 27..28 - StatementsList (Rule): # 29..70 " {\n uint256 arg = (1 + 2;\n }" - - Statement (Rule): # 29..70 " {\n uint256 arg = (1 + 2;\n }" - - Block (Rule): # 29..70 " {\n uint256 arg = (1 + 2;\n }" - - OpenBrace (Token): "{" # 33..34 - - StatementsList (Rule): # 35..63 " uint256 arg = (1 + 2" - - Statement (Rule): # 35..63 " uint256 arg = (1 + 2" - - VariableDeclarationStatement (Rule): # 35..63 " uint256 arg = (1 + 2" - - VariableDeclaration (Rule): # 35..54 " uint256 arg" - - TypeName (Rule): # 35..50 " uint256" - - UnsignedIntegerType (Token): "uint256" # 43..50 - - Identifier (Token): "arg" # 51..54 - - Equal (Token): "=" # 55..56 - - Expression (Rule): # 56..63 " (1 + 2" - - TupleExpression (Rule): # 56..63 " (1 + 2" - - OpenParen (Token): "(" # 57..58 - - TupleValuesList (Rule): # 58..63 "1 + 2" - - Expression (Rule): # 58..63 "1 + 2" - - BinaryExpression (Rule): # 58..63 "1 + 2" - - Expression (Rule): # 58..59 "1" - - DecimalNumberExpression (Rule): # 58..59 "1" - - DecimalLiteral (Token): "1" # 58..59 - - Plus (Token): "+" # 60..61 - - Expression (Rule): # 61..63 " 2" - - DecimalNumberExpression (Rule): # 61..63 " 2" - - DecimalLiteral (Token): "2" # 62..63 - - SKIPPED (Token): ";\n " # 63..69 - - CloseBrace (Token): "}" # 69..70 + - Block (Rule): # 29..70 " {\n uint256 arg = (1 + 2;\n }" + - OpenBrace (Token): "{" # 33..34 + - StatementsList (Rule): # 35..63 " uint256 arg = (1 + 2" + - VariableDeclarationStatement (Rule): # 35..63 " uint256 arg = (1 + 2" + - VariableDeclaration (Rule): # 35..54 " uint256 arg" + - TypeName (Rule): # 35..50 " uint256" + - UnsignedIntegerType (Token): "uint256" # 43..50 + - Identifier (Token): "arg" # 51..54 + - Equal (Token): "=" # 55..56 + - Expression (Rule): # 56..63 " (1 + 2" + - TupleExpression (Rule): # 56..63 " (1 + 2" + - OpenParen (Token): "(" # 57..58 + - TupleValuesList (Rule): # 58..63 "1 + 2" + - Expression (Rule): # 58..63 "1 + 2" + - BinaryExpression (Rule): # 58..63 "1 + 2" + - Expression (Rule): # 58..59 "1" + - DecimalNumberExpression (Rule): # 58..59 "1" + - DecimalLiteral (Token): "1" # 58..59 + - Plus (Token): "+" # 60..61 + - Expression (Rule): # 61..63 " 2" + - DecimalNumberExpression (Rule): # 61..63 " 2" + - DecimalLiteral (Token): "2" # 62..63 + - SKIPPED (Token): ";\n " # 63..69 + - CloseBrace (Token): "}" # 69..70 - SKIPPED (Token): ")\n" # 70..72 - CloseBrace (Token): "}" # 72..73 diff --git a/crates/solidity/testing/snapshots/cst_output/ContractMembersList/mismatched_delimiter/generated/0.6.0-failure.yml b/crates/solidity/testing/snapshots/cst_output/ContractMembersList/mismatched_delimiter/generated/0.6.0-failure.yml index 03a35f6581..e35a432813 100644 --- a/crates/solidity/testing/snapshots/cst_output/ContractMembersList/mismatched_delimiter/generated/0.6.0-failure.yml +++ b/crates/solidity/testing/snapshots/cst_output/ContractMembersList/mismatched_delimiter/generated/0.6.0-failure.yml @@ -39,31 +39,29 @@ Tree: - Block (Rule): # 26..74 " {\n {\n uint256 arg = (1 + 2;\n })\n}\n" - OpenBrace (Token): "{" # 27..28 - StatementsList (Rule): # 29..70 " {\n uint256 arg = (1 + 2;\n }" - - Statement (Rule): # 29..70 " {\n uint256 arg = (1 + 2;\n }" - - Block (Rule): # 29..70 " {\n uint256 arg = (1 + 2;\n }" - - OpenBrace (Token): "{" # 33..34 - - StatementsList (Rule): # 35..63 " uint256 arg = (1 + 2" - - Statement (Rule): # 35..63 " uint256 arg = (1 + 2" - - VariableDeclarationStatement (Rule): # 35..63 " uint256 arg = (1 + 2" - - VariableDeclaration (Rule): # 35..54 " uint256 arg" - - TypeName (Rule): # 35..50 " uint256" - - UnsignedIntegerType (Token): "uint256" # 43..50 - - Identifier (Token): "arg" # 51..54 - - Equal (Token): "=" # 55..56 - - Expression (Rule): # 56..63 " (1 + 2" - - TupleExpression (Rule): # 56..63 " (1 + 2" - - OpenParen (Token): "(" # 57..58 - - TupleValuesList (Rule): # 58..63 "1 + 2" - - Expression (Rule): # 58..63 "1 + 2" - - BinaryExpression (Rule): # 58..63 "1 + 2" - - Expression (Rule): # 58..59 "1" - - DecimalNumberExpression (Rule): # 58..59 "1" - - DecimalLiteral (Token): "1" # 58..59 - - Plus (Token): "+" # 60..61 - - Expression (Rule): # 61..63 " 2" - - DecimalNumberExpression (Rule): # 61..63 " 2" - - DecimalLiteral (Token): "2" # 62..63 - - SKIPPED (Token): ";\n " # 63..69 - - CloseBrace (Token): "}" # 69..70 + - Block (Rule): # 29..70 " {\n uint256 arg = (1 + 2;\n }" + - OpenBrace (Token): "{" # 33..34 + - StatementsList (Rule): # 35..63 " uint256 arg = (1 + 2" + - VariableDeclarationStatement (Rule): # 35..63 " uint256 arg = (1 + 2" + - VariableDeclaration (Rule): # 35..54 " uint256 arg" + - TypeName (Rule): # 35..50 " uint256" + - UnsignedIntegerType (Token): "uint256" # 43..50 + - Identifier (Token): "arg" # 51..54 + - Equal (Token): "=" # 55..56 + - Expression (Rule): # 56..63 " (1 + 2" + - TupleExpression (Rule): # 56..63 " (1 + 2" + - OpenParen (Token): "(" # 57..58 + - TupleValuesList (Rule): # 58..63 "1 + 2" + - Expression (Rule): # 58..63 "1 + 2" + - BinaryExpression (Rule): # 58..63 "1 + 2" + - Expression (Rule): # 58..59 "1" + - DecimalNumberExpression (Rule): # 58..59 "1" + - DecimalLiteral (Token): "1" # 58..59 + - Plus (Token): "+" # 60..61 + - Expression (Rule): # 61..63 " 2" + - DecimalNumberExpression (Rule): # 61..63 " 2" + - DecimalLiteral (Token): "2" # 62..63 + - SKIPPED (Token): ";\n " # 63..69 + - CloseBrace (Token): "}" # 69..70 - SKIPPED (Token): ")\n" # 70..72 - CloseBrace (Token): "}" # 72..73 diff --git a/crates/solidity/testing/snapshots/cst_output/ContractMembersList/mismatched_delimiter/generated/0.7.0-failure.yml b/crates/solidity/testing/snapshots/cst_output/ContractMembersList/mismatched_delimiter/generated/0.7.0-failure.yml index fa1723a09b..f22d6a2590 100644 --- a/crates/solidity/testing/snapshots/cst_output/ContractMembersList/mismatched_delimiter/generated/0.7.0-failure.yml +++ b/crates/solidity/testing/snapshots/cst_output/ContractMembersList/mismatched_delimiter/generated/0.7.0-failure.yml @@ -39,31 +39,29 @@ Tree: - Block (Rule): # 26..74 " {\n {\n uint256 arg = (1 + 2;\n })\n}\n" - OpenBrace (Token): "{" # 27..28 - StatementsList (Rule): # 29..70 " {\n uint256 arg = (1 + 2;\n }" - - Statement (Rule): # 29..70 " {\n uint256 arg = (1 + 2;\n }" - - Block (Rule): # 29..70 " {\n uint256 arg = (1 + 2;\n }" - - OpenBrace (Token): "{" # 33..34 - - StatementsList (Rule): # 35..63 " uint256 arg = (1 + 2" - - Statement (Rule): # 35..63 " uint256 arg = (1 + 2" - - VariableDeclarationStatement (Rule): # 35..63 " uint256 arg = (1 + 2" - - VariableDeclaration (Rule): # 35..54 " uint256 arg" - - TypeName (Rule): # 35..50 " uint256" - - UnsignedIntegerType (Token): "uint256" # 43..50 - - Identifier (Token): "arg" # 51..54 - - Equal (Token): "=" # 55..56 - - Expression (Rule): # 56..63 " (1 + 2" - - TupleExpression (Rule): # 56..63 " (1 + 2" - - OpenParen (Token): "(" # 57..58 - - TupleValuesList (Rule): # 58..63 "1 + 2" - - Expression (Rule): # 58..63 "1 + 2" - - BinaryExpression (Rule): # 58..63 "1 + 2" - - Expression (Rule): # 58..59 "1" - - DecimalNumberExpression (Rule): # 58..59 "1" - - DecimalLiteral (Token): "1" # 58..59 - - Plus (Token): "+" # 60..61 - - Expression (Rule): # 61..63 " 2" - - DecimalNumberExpression (Rule): # 61..63 " 2" - - DecimalLiteral (Token): "2" # 62..63 - - SKIPPED (Token): ";\n " # 63..69 - - CloseBrace (Token): "}" # 69..70 + - Block (Rule): # 29..70 " {\n uint256 arg = (1 + 2;\n }" + - OpenBrace (Token): "{" # 33..34 + - StatementsList (Rule): # 35..63 " uint256 arg = (1 + 2" + - VariableDeclarationStatement (Rule): # 35..63 " uint256 arg = (1 + 2" + - VariableDeclaration (Rule): # 35..54 " uint256 arg" + - TypeName (Rule): # 35..50 " uint256" + - UnsignedIntegerType (Token): "uint256" # 43..50 + - Identifier (Token): "arg" # 51..54 + - Equal (Token): "=" # 55..56 + - Expression (Rule): # 56..63 " (1 + 2" + - TupleExpression (Rule): # 56..63 " (1 + 2" + - OpenParen (Token): "(" # 57..58 + - TupleValuesList (Rule): # 58..63 "1 + 2" + - Expression (Rule): # 58..63 "1 + 2" + - BinaryExpression (Rule): # 58..63 "1 + 2" + - Expression (Rule): # 58..59 "1" + - DecimalNumberExpression (Rule): # 58..59 "1" + - DecimalLiteral (Token): "1" # 58..59 + - Plus (Token): "+" # 60..61 + - Expression (Rule): # 61..63 " 2" + - DecimalNumberExpression (Rule): # 61..63 " 2" + - DecimalLiteral (Token): "2" # 62..63 + - SKIPPED (Token): ";\n " # 63..69 + - CloseBrace (Token): "}" # 69..70 - SKIPPED (Token): ")\n" # 70..72 - CloseBrace (Token): "}" # 72..73 diff --git a/crates/solidity/testing/snapshots/cst_output/ContractMembersList/mismatched_delimiter/generated/0.8.0-failure.yml b/crates/solidity/testing/snapshots/cst_output/ContractMembersList/mismatched_delimiter/generated/0.8.0-failure.yml index cf00a29717..23458f30e4 100644 --- a/crates/solidity/testing/snapshots/cst_output/ContractMembersList/mismatched_delimiter/generated/0.8.0-failure.yml +++ b/crates/solidity/testing/snapshots/cst_output/ContractMembersList/mismatched_delimiter/generated/0.8.0-failure.yml @@ -39,31 +39,29 @@ Tree: - Block (Rule): # 26..74 " {\n {\n uint256 arg = (1 + 2;\n })\n}\n" - OpenBrace (Token): "{" # 27..28 - StatementsList (Rule): # 29..70 " {\n uint256 arg = (1 + 2;\n }" - - Statement (Rule): # 29..70 " {\n uint256 arg = (1 + 2;\n }" - - Block (Rule): # 29..70 " {\n uint256 arg = (1 + 2;\n }" - - OpenBrace (Token): "{" # 33..34 - - StatementsList (Rule): # 35..63 " uint256 arg = (1 + 2" - - Statement (Rule): # 35..63 " uint256 arg = (1 + 2" - - VariableDeclarationStatement (Rule): # 35..63 " uint256 arg = (1 + 2" - - VariableDeclaration (Rule): # 35..54 " uint256 arg" - - TypeName (Rule): # 35..50 " uint256" - - UnsignedIntegerType (Token): "uint256" # 43..50 - - Identifier (Token): "arg" # 51..54 - - Equal (Token): "=" # 55..56 - - Expression (Rule): # 56..63 " (1 + 2" - - TupleExpression (Rule): # 56..63 " (1 + 2" - - OpenParen (Token): "(" # 57..58 - - TupleValuesList (Rule): # 58..63 "1 + 2" - - Expression (Rule): # 58..63 "1 + 2" - - BinaryExpression (Rule): # 58..63 "1 + 2" - - Expression (Rule): # 58..59 "1" - - DecimalNumberExpression (Rule): # 58..59 "1" - - DecimalLiteral (Token): "1" # 58..59 - - Plus (Token): "+" # 60..61 - - Expression (Rule): # 61..63 " 2" - - DecimalNumberExpression (Rule): # 61..63 " 2" - - DecimalLiteral (Token): "2" # 62..63 - - SKIPPED (Token): ";\n " # 63..69 - - CloseBrace (Token): "}" # 69..70 + - Block (Rule): # 29..70 " {\n uint256 arg = (1 + 2;\n }" + - OpenBrace (Token): "{" # 33..34 + - StatementsList (Rule): # 35..63 " uint256 arg = (1 + 2" + - VariableDeclarationStatement (Rule): # 35..63 " uint256 arg = (1 + 2" + - VariableDeclaration (Rule): # 35..54 " uint256 arg" + - TypeName (Rule): # 35..50 " uint256" + - UnsignedIntegerType (Token): "uint256" # 43..50 + - Identifier (Token): "arg" # 51..54 + - Equal (Token): "=" # 55..56 + - Expression (Rule): # 56..63 " (1 + 2" + - TupleExpression (Rule): # 56..63 " (1 + 2" + - OpenParen (Token): "(" # 57..58 + - TupleValuesList (Rule): # 58..63 "1 + 2" + - Expression (Rule): # 58..63 "1 + 2" + - BinaryExpression (Rule): # 58..63 "1 + 2" + - Expression (Rule): # 58..59 "1" + - DecimalNumberExpression (Rule): # 58..59 "1" + - DecimalLiteral (Token): "1" # 58..59 + - Plus (Token): "+" # 60..61 + - Expression (Rule): # 61..63 " 2" + - DecimalNumberExpression (Rule): # 61..63 " 2" + - DecimalLiteral (Token): "2" # 62..63 + - SKIPPED (Token): ";\n " # 63..69 + - CloseBrace (Token): "}" # 69..70 - SKIPPED (Token): ")\n" # 70..72 - CloseBrace (Token): "}" # 72..73 diff --git a/crates/solidity/testing/snapshots/cst_output/ContractMembersList/mismatched_delimiter/generated/0.8.4-failure.yml b/crates/solidity/testing/snapshots/cst_output/ContractMembersList/mismatched_delimiter/generated/0.8.4-failure.yml index da57bef2a3..310a27b82c 100644 --- a/crates/solidity/testing/snapshots/cst_output/ContractMembersList/mismatched_delimiter/generated/0.8.4-failure.yml +++ b/crates/solidity/testing/snapshots/cst_output/ContractMembersList/mismatched_delimiter/generated/0.8.4-failure.yml @@ -39,31 +39,29 @@ Tree: - Block (Rule): # 26..74 " {\n {\n uint256 arg = (1 + 2;\n })\n}\n" - OpenBrace (Token): "{" # 27..28 - StatementsList (Rule): # 29..70 " {\n uint256 arg = (1 + 2;\n }" - - Statement (Rule): # 29..70 " {\n uint256 arg = (1 + 2;\n }" - - Block (Rule): # 29..70 " {\n uint256 arg = (1 + 2;\n }" - - OpenBrace (Token): "{" # 33..34 - - StatementsList (Rule): # 35..63 " uint256 arg = (1 + 2" - - Statement (Rule): # 35..63 " uint256 arg = (1 + 2" - - VariableDeclarationStatement (Rule): # 35..63 " uint256 arg = (1 + 2" - - VariableDeclaration (Rule): # 35..54 " uint256 arg" - - TypeName (Rule): # 35..50 " uint256" - - UnsignedIntegerType (Token): "uint256" # 43..50 - - Identifier (Token): "arg" # 51..54 - - Equal (Token): "=" # 55..56 - - Expression (Rule): # 56..63 " (1 + 2" - - TupleExpression (Rule): # 56..63 " (1 + 2" - - OpenParen (Token): "(" # 57..58 - - TupleValuesList (Rule): # 58..63 "1 + 2" - - Expression (Rule): # 58..63 "1 + 2" - - BinaryExpression (Rule): # 58..63 "1 + 2" - - Expression (Rule): # 58..59 "1" - - DecimalNumberExpression (Rule): # 58..59 "1" - - DecimalLiteral (Token): "1" # 58..59 - - Plus (Token): "+" # 60..61 - - Expression (Rule): # 61..63 " 2" - - DecimalNumberExpression (Rule): # 61..63 " 2" - - DecimalLiteral (Token): "2" # 62..63 - - SKIPPED (Token): ";\n " # 63..69 - - CloseBrace (Token): "}" # 69..70 + - Block (Rule): # 29..70 " {\n uint256 arg = (1 + 2;\n }" + - OpenBrace (Token): "{" # 33..34 + - StatementsList (Rule): # 35..63 " uint256 arg = (1 + 2" + - VariableDeclarationStatement (Rule): # 35..63 " uint256 arg = (1 + 2" + - VariableDeclaration (Rule): # 35..54 " uint256 arg" + - TypeName (Rule): # 35..50 " uint256" + - UnsignedIntegerType (Token): "uint256" # 43..50 + - Identifier (Token): "arg" # 51..54 + - Equal (Token): "=" # 55..56 + - Expression (Rule): # 56..63 " (1 + 2" + - TupleExpression (Rule): # 56..63 " (1 + 2" + - OpenParen (Token): "(" # 57..58 + - TupleValuesList (Rule): # 58..63 "1 + 2" + - Expression (Rule): # 58..63 "1 + 2" + - BinaryExpression (Rule): # 58..63 "1 + 2" + - Expression (Rule): # 58..59 "1" + - DecimalNumberExpression (Rule): # 58..59 "1" + - DecimalLiteral (Token): "1" # 58..59 + - Plus (Token): "+" # 60..61 + - Expression (Rule): # 61..63 " 2" + - DecimalNumberExpression (Rule): # 61..63 " 2" + - DecimalLiteral (Token): "2" # 62..63 + - SKIPPED (Token): ";\n " # 63..69 + - CloseBrace (Token): "}" # 69..70 - SKIPPED (Token): ")\n" # 70..72 - CloseBrace (Token): "}" # 72..73 diff --git a/crates/solidity/testing/snapshots/cst_output/ContractMembersList/separated_recovery/generated/0.4.11-failure.yml b/crates/solidity/testing/snapshots/cst_output/ContractMembersList/separated_recovery/generated/0.4.11-failure.yml index f99424e0c5..a4e5232109 100644 --- a/crates/solidity/testing/snapshots/cst_output/ContractMembersList/separated_recovery/generated/0.4.11-failure.yml +++ b/crates/solidity/testing/snapshots/cst_output/ContractMembersList/separated_recovery/generated/0.4.11-failure.yml @@ -123,62 +123,58 @@ Tree: - Block (Rule): # 83..309 " {\n msg.sender.call{do: 1, arg: 1 }();\n msg.send..." - OpenBrace (Token): "{" # 84..85 - StatementsList (Rule): # 86..306 " msg.sender.call{do: 1, arg: 1 }();\n msg.sender...." - - Statement (Rule): # 86..123 " msg.sender.call{do: 1, arg: 1 }();\n" - - ExpressionStatement (Rule): # 86..123 " msg.sender.call{do: 1, arg: 1 }();\n" - - Expression (Rule): # 86..103 " msg.sender.call" - - MemberAccessExpression (Rule): # 86..103 " msg.sender.call" - - Expression (Rule): # 86..98 " msg.sender" - - MemberAccessExpression (Rule): # 86..98 " msg.sender" - - Expression (Rule): # 86..91 " msg" - - Identifier (Token): "msg" # 88..91 - - Period (Token): "." # 91..92 - - Identifier (Token): "sender" # 92..98 - - Period (Token): "." # 98..99 - - Identifier (Token): "call" # 99..103 - - SKIPPED (Token): "{do: 1, arg: 1 }()" # 103..121 - - Semicolon (Token): ";" # 121..122 - - Statement (Rule): # 123..167 " msg.sender.call{, empty: 1, parse: 2 }();\n" - - ExpressionStatement (Rule): # 123..167 " msg.sender.call{, empty: 1, parse: 2 }();\n" - - Expression (Rule): # 123..140 " msg.sender.call" - - MemberAccessExpression (Rule): # 123..140 " msg.sender.call" - - Expression (Rule): # 123..135 " msg.sender" - - MemberAccessExpression (Rule): # 123..135 " msg.sender" - - Expression (Rule): # 123..128 " msg" - - Identifier (Token): "msg" # 125..128 - - Period (Token): "." # 128..129 - - Identifier (Token): "sender" # 129..135 - - Period (Token): "." # 135..136 - - Identifier (Token): "call" # 136..140 - - SKIPPED (Token): "{, empty: 1, parse: 2 }()" # 140..165 - - Semicolon (Token): ";" # 165..166 - - Statement (Rule): # 167..230 " msg.sender.call{arg: 1, missing_expr: , no_semic..." - - ExpressionStatement (Rule): # 167..230 " msg.sender.call{arg: 1, missing_expr: , no_semic..." - - Expression (Rule): # 167..184 " msg.sender.call" - - MemberAccessExpression (Rule): # 167..184 " msg.sender.call" - - Expression (Rule): # 167..179 " msg.sender" - - MemberAccessExpression (Rule): # 167..179 " msg.sender" - - Expression (Rule): # 167..172 " msg" - - Identifier (Token): "msg" # 169..172 - - Period (Token): "." # 172..173 - - Identifier (Token): "sender" # 173..179 - - Period (Token): "." # 179..180 - - Identifier (Token): "call" # 180..184 - - SKIPPED (Token): "{arg: 1, missing_expr: , no_semicolon, , }()" # 184..228 - - Semicolon (Token): ";" # 228..229 - - Statement (Rule): # 230..306 " msg.sender.call{arg: 1 unexpected tokens, not: 2..." - - ExpressionStatement (Rule): # 230..306 " msg.sender.call{arg: 1 unexpected tokens, not: 2..." - - Expression (Rule): # 230..247 " msg.sender.call" - - MemberAccessExpression (Rule): # 230..247 " msg.sender.call" - - Expression (Rule): # 230..242 " msg.sender" - - MemberAccessExpression (Rule): # 230..242 " msg.sender" - - Expression (Rule): # 230..235 " msg" - - Identifier (Token): "msg" # 232..235 - - Period (Token): "." # 235..236 - - Identifier (Token): "sender" # 236..242 - - Period (Token): "." # 242..243 - - Identifier (Token): "call" # 243..247 - - SKIPPED (Token): "{arg: 1 unexpected tokens, not: 2, recovered, yet:..." # 247..304 - - Semicolon (Token): ";" # 304..305 + - ExpressionStatement (Rule): # 86..123 " msg.sender.call{do: 1, arg: 1 }();\n" + - Expression (Rule): # 86..103 " msg.sender.call" + - MemberAccessExpression (Rule): # 86..103 " msg.sender.call" + - Expression (Rule): # 86..98 " msg.sender" + - MemberAccessExpression (Rule): # 86..98 " msg.sender" + - Expression (Rule): # 86..91 " msg" + - Identifier (Token): "msg" # 88..91 + - Period (Token): "." # 91..92 + - Identifier (Token): "sender" # 92..98 + - Period (Token): "." # 98..99 + - Identifier (Token): "call" # 99..103 + - SKIPPED (Token): "{do: 1, arg: 1 }()" # 103..121 + - Semicolon (Token): ";" # 121..122 + - ExpressionStatement (Rule): # 123..167 " msg.sender.call{, empty: 1, parse: 2 }();\n" + - Expression (Rule): # 123..140 " msg.sender.call" + - MemberAccessExpression (Rule): # 123..140 " msg.sender.call" + - Expression (Rule): # 123..135 " msg.sender" + - MemberAccessExpression (Rule): # 123..135 " msg.sender" + - Expression (Rule): # 123..128 " msg" + - Identifier (Token): "msg" # 125..128 + - Period (Token): "." # 128..129 + - Identifier (Token): "sender" # 129..135 + - Period (Token): "." # 135..136 + - Identifier (Token): "call" # 136..140 + - SKIPPED (Token): "{, empty: 1, parse: 2 }()" # 140..165 + - Semicolon (Token): ";" # 165..166 + - ExpressionStatement (Rule): # 167..230 " msg.sender.call{arg: 1, missing_expr: , no_semic..." + - Expression (Rule): # 167..184 " msg.sender.call" + - MemberAccessExpression (Rule): # 167..184 " msg.sender.call" + - Expression (Rule): # 167..179 " msg.sender" + - MemberAccessExpression (Rule): # 167..179 " msg.sender" + - Expression (Rule): # 167..172 " msg" + - Identifier (Token): "msg" # 169..172 + - Period (Token): "." # 172..173 + - Identifier (Token): "sender" # 173..179 + - Period (Token): "." # 179..180 + - Identifier (Token): "call" # 180..184 + - SKIPPED (Token): "{arg: 1, missing_expr: , no_semicolon, , }()" # 184..228 + - Semicolon (Token): ";" # 228..229 + - ExpressionStatement (Rule): # 230..306 " msg.sender.call{arg: 1 unexpected tokens, not: 2..." + - Expression (Rule): # 230..247 " msg.sender.call" + - MemberAccessExpression (Rule): # 230..247 " msg.sender.call" + - Expression (Rule): # 230..242 " msg.sender" + - MemberAccessExpression (Rule): # 230..242 " msg.sender" + - Expression (Rule): # 230..235 " msg" + - Identifier (Token): "msg" # 232..235 + - Period (Token): "." # 235..236 + - Identifier (Token): "sender" # 236..242 + - Period (Token): "." # 242..243 + - Identifier (Token): "call" # 243..247 + - SKIPPED (Token): "{arg: 1 unexpected tokens, not: 2, recovered, yet:..." # 247..304 + - Semicolon (Token): ";" # 304..305 - CloseBrace (Token): "}" # 307..308 - FunctionDefinition (Rule): # 309..388 "\nfunction empty() override(some.ident, /* empty */..." - FunctionKeyword (Token): "function" # 310..318 diff --git a/crates/solidity/testing/snapshots/cst_output/ContractMembersList/separated_recovery/generated/0.5.0-failure.yml b/crates/solidity/testing/snapshots/cst_output/ContractMembersList/separated_recovery/generated/0.5.0-failure.yml index 88fef61f5c..5f1b9401e6 100644 --- a/crates/solidity/testing/snapshots/cst_output/ContractMembersList/separated_recovery/generated/0.5.0-failure.yml +++ b/crates/solidity/testing/snapshots/cst_output/ContractMembersList/separated_recovery/generated/0.5.0-failure.yml @@ -119,62 +119,58 @@ Tree: - Block (Rule): # 83..309 " {\n msg.sender.call{do: 1, arg: 1 }();\n msg.send..." - OpenBrace (Token): "{" # 84..85 - StatementsList (Rule): # 86..306 " msg.sender.call{do: 1, arg: 1 }();\n msg.sender...." - - Statement (Rule): # 86..123 " msg.sender.call{do: 1, arg: 1 }();\n" - - ExpressionStatement (Rule): # 86..123 " msg.sender.call{do: 1, arg: 1 }();\n" - - Expression (Rule): # 86..103 " msg.sender.call" - - MemberAccessExpression (Rule): # 86..103 " msg.sender.call" - - Expression (Rule): # 86..98 " msg.sender" - - MemberAccessExpression (Rule): # 86..98 " msg.sender" - - Expression (Rule): # 86..91 " msg" - - Identifier (Token): "msg" # 88..91 - - Period (Token): "." # 91..92 - - Identifier (Token): "sender" # 92..98 - - Period (Token): "." # 98..99 - - Identifier (Token): "call" # 99..103 - - SKIPPED (Token): "{do: 1, arg: 1 }()" # 103..121 - - Semicolon (Token): ";" # 121..122 - - Statement (Rule): # 123..167 " msg.sender.call{, empty: 1, parse: 2 }();\n" - - ExpressionStatement (Rule): # 123..167 " msg.sender.call{, empty: 1, parse: 2 }();\n" - - Expression (Rule): # 123..140 " msg.sender.call" - - MemberAccessExpression (Rule): # 123..140 " msg.sender.call" - - Expression (Rule): # 123..135 " msg.sender" - - MemberAccessExpression (Rule): # 123..135 " msg.sender" - - Expression (Rule): # 123..128 " msg" - - Identifier (Token): "msg" # 125..128 - - Period (Token): "." # 128..129 - - Identifier (Token): "sender" # 129..135 - - Period (Token): "." # 135..136 - - Identifier (Token): "call" # 136..140 - - SKIPPED (Token): "{, empty: 1, parse: 2 }()" # 140..165 - - Semicolon (Token): ";" # 165..166 - - Statement (Rule): # 167..230 " msg.sender.call{arg: 1, missing_expr: , no_semic..." - - ExpressionStatement (Rule): # 167..230 " msg.sender.call{arg: 1, missing_expr: , no_semic..." - - Expression (Rule): # 167..184 " msg.sender.call" - - MemberAccessExpression (Rule): # 167..184 " msg.sender.call" - - Expression (Rule): # 167..179 " msg.sender" - - MemberAccessExpression (Rule): # 167..179 " msg.sender" - - Expression (Rule): # 167..172 " msg" - - Identifier (Token): "msg" # 169..172 - - Period (Token): "." # 172..173 - - Identifier (Token): "sender" # 173..179 - - Period (Token): "." # 179..180 - - Identifier (Token): "call" # 180..184 - - SKIPPED (Token): "{arg: 1, missing_expr: , no_semicolon, , }()" # 184..228 - - Semicolon (Token): ";" # 228..229 - - Statement (Rule): # 230..306 " msg.sender.call{arg: 1 unexpected tokens, not: 2..." - - ExpressionStatement (Rule): # 230..306 " msg.sender.call{arg: 1 unexpected tokens, not: 2..." - - Expression (Rule): # 230..247 " msg.sender.call" - - MemberAccessExpression (Rule): # 230..247 " msg.sender.call" - - Expression (Rule): # 230..242 " msg.sender" - - MemberAccessExpression (Rule): # 230..242 " msg.sender" - - Expression (Rule): # 230..235 " msg" - - Identifier (Token): "msg" # 232..235 - - Period (Token): "." # 235..236 - - Identifier (Token): "sender" # 236..242 - - Period (Token): "." # 242..243 - - Identifier (Token): "call" # 243..247 - - SKIPPED (Token): "{arg: 1 unexpected tokens, not: 2, recovered, yet:..." # 247..304 - - Semicolon (Token): ";" # 304..305 + - ExpressionStatement (Rule): # 86..123 " msg.sender.call{do: 1, arg: 1 }();\n" + - Expression (Rule): # 86..103 " msg.sender.call" + - MemberAccessExpression (Rule): # 86..103 " msg.sender.call" + - Expression (Rule): # 86..98 " msg.sender" + - MemberAccessExpression (Rule): # 86..98 " msg.sender" + - Expression (Rule): # 86..91 " msg" + - Identifier (Token): "msg" # 88..91 + - Period (Token): "." # 91..92 + - Identifier (Token): "sender" # 92..98 + - Period (Token): "." # 98..99 + - Identifier (Token): "call" # 99..103 + - SKIPPED (Token): "{do: 1, arg: 1 }()" # 103..121 + - Semicolon (Token): ";" # 121..122 + - ExpressionStatement (Rule): # 123..167 " msg.sender.call{, empty: 1, parse: 2 }();\n" + - Expression (Rule): # 123..140 " msg.sender.call" + - MemberAccessExpression (Rule): # 123..140 " msg.sender.call" + - Expression (Rule): # 123..135 " msg.sender" + - MemberAccessExpression (Rule): # 123..135 " msg.sender" + - Expression (Rule): # 123..128 " msg" + - Identifier (Token): "msg" # 125..128 + - Period (Token): "." # 128..129 + - Identifier (Token): "sender" # 129..135 + - Period (Token): "." # 135..136 + - Identifier (Token): "call" # 136..140 + - SKIPPED (Token): "{, empty: 1, parse: 2 }()" # 140..165 + - Semicolon (Token): ";" # 165..166 + - ExpressionStatement (Rule): # 167..230 " msg.sender.call{arg: 1, missing_expr: , no_semic..." + - Expression (Rule): # 167..184 " msg.sender.call" + - MemberAccessExpression (Rule): # 167..184 " msg.sender.call" + - Expression (Rule): # 167..179 " msg.sender" + - MemberAccessExpression (Rule): # 167..179 " msg.sender" + - Expression (Rule): # 167..172 " msg" + - Identifier (Token): "msg" # 169..172 + - Period (Token): "." # 172..173 + - Identifier (Token): "sender" # 173..179 + - Period (Token): "." # 179..180 + - Identifier (Token): "call" # 180..184 + - SKIPPED (Token): "{arg: 1, missing_expr: , no_semicolon, , }()" # 184..228 + - Semicolon (Token): ";" # 228..229 + - ExpressionStatement (Rule): # 230..306 " msg.sender.call{arg: 1 unexpected tokens, not: 2..." + - Expression (Rule): # 230..247 " msg.sender.call" + - MemberAccessExpression (Rule): # 230..247 " msg.sender.call" + - Expression (Rule): # 230..242 " msg.sender" + - MemberAccessExpression (Rule): # 230..242 " msg.sender" + - Expression (Rule): # 230..235 " msg" + - Identifier (Token): "msg" # 232..235 + - Period (Token): "." # 235..236 + - Identifier (Token): "sender" # 236..242 + - Period (Token): "." # 242..243 + - Identifier (Token): "call" # 243..247 + - SKIPPED (Token): "{arg: 1 unexpected tokens, not: 2, recovered, yet:..." # 247..304 + - Semicolon (Token): ";" # 304..305 - CloseBrace (Token): "}" # 307..308 - FunctionDefinition (Rule): # 309..388 "\nfunction empty() override(some.ident, /* empty */..." - FunctionKeyword (Token): "function" # 310..318 diff --git a/crates/solidity/testing/snapshots/cst_output/ContractMembersList/separated_recovery/generated/0.6.2-failure.yml b/crates/solidity/testing/snapshots/cst_output/ContractMembersList/separated_recovery/generated/0.6.2-failure.yml index a8179ad39c..40b7fd1a58 100644 --- a/crates/solidity/testing/snapshots/cst_output/ContractMembersList/separated_recovery/generated/0.6.2-failure.yml +++ b/crates/solidity/testing/snapshots/cst_output/ContractMembersList/separated_recovery/generated/0.6.2-failure.yml @@ -135,122 +135,118 @@ Tree: - Block (Rule): # 83..309 " {\n msg.sender.call{do: 1, arg: 1 }();\n msg.send..." - OpenBrace (Token): "{" # 84..85 - StatementsList (Rule): # 86..306 " msg.sender.call{do: 1, arg: 1 }();\n msg.sender...." - - Statement (Rule): # 86..123 " msg.sender.call{do: 1, arg: 1 }();\n" - - ExpressionStatement (Rule): # 86..123 " msg.sender.call{do: 1, arg: 1 }();\n" - - Expression (Rule): # 86..121 " msg.sender.call{do: 1, arg: 1 }()" - - FunctionCallExpression (Rule): # 86..121 " msg.sender.call{do: 1, arg: 1 }()" - - Expression (Rule): # 86..103 " msg.sender.call" - - MemberAccessExpression (Rule): # 86..103 " msg.sender.call" - - Expression (Rule): # 86..98 " msg.sender" - - MemberAccessExpression (Rule): # 86..98 " msg.sender" - - Expression (Rule): # 86..91 " msg" - - Identifier (Token): "msg" # 88..91 - - Period (Token): "." # 91..92 - - Identifier (Token): "sender" # 92..98 - - Period (Token): "." # 98..99 - - Identifier (Token): "call" # 99..103 - - FunctionCallOptions (Rule): # 103..119 "{do: 1, arg: 1 }" - - NamedArgumentsDeclaration (Rule): # 103..119 "{do: 1, arg: 1 }" - - OpenBrace (Token): "{" # 103..104 - - SKIPPED (Token): "do: 1, arg: 1 " # 104..118 - - CloseBrace (Token): "}" # 118..119 - - ArgumentsDeclaration (Rule): # 119..121 "()" - - OpenParen (Token): "(" # 119..120 - - CloseParen (Token): ")" # 120..121 - - Semicolon (Token): ";" # 121..122 - - Statement (Rule): # 123..167 " msg.sender.call{, empty: 1, parse: 2 }();\n" - - ExpressionStatement (Rule): # 123..167 " msg.sender.call{, empty: 1, parse: 2 }();\n" - - Expression (Rule): # 123..165 " msg.sender.call{, empty: 1, parse: 2 }()" - - FunctionCallExpression (Rule): # 123..165 " msg.sender.call{, empty: 1, parse: 2 }()" - - Expression (Rule): # 123..140 " msg.sender.call" - - MemberAccessExpression (Rule): # 123..140 " msg.sender.call" - - Expression (Rule): # 123..135 " msg.sender" - - MemberAccessExpression (Rule): # 123..135 " msg.sender" - - Expression (Rule): # 123..128 " msg" - - Identifier (Token): "msg" # 125..128 - - Period (Token): "." # 128..129 - - Identifier (Token): "sender" # 129..135 - - Period (Token): "." # 135..136 - - Identifier (Token): "call" # 136..140 - - FunctionCallOptions (Rule): # 140..163 "{, empty: 1, parse: 2 }" - - NamedArgumentsDeclaration (Rule): # 140..163 "{, empty: 1, parse: 2 }" - - OpenBrace (Token): "{" # 140..141 - - SKIPPED (Token): ", empty: 1, parse: 2 " # 141..162 - - CloseBrace (Token): "}" # 162..163 - - ArgumentsDeclaration (Rule): # 163..165 "()" - - OpenParen (Token): "(" # 163..164 - - CloseParen (Token): ")" # 164..165 - - Semicolon (Token): ";" # 165..166 - - Statement (Rule): # 167..230 " msg.sender.call{arg: 1, missing_expr: , no_semic..." - - ExpressionStatement (Rule): # 167..230 " msg.sender.call{arg: 1, missing_expr: , no_semic..." - - Expression (Rule): # 167..228 " msg.sender.call{arg: 1, missing_expr: , no_semic..." - - FunctionCallExpression (Rule): # 167..228 " msg.sender.call{arg: 1, missing_expr: , no_semic..." - - Expression (Rule): # 167..184 " msg.sender.call" - - MemberAccessExpression (Rule): # 167..184 " msg.sender.call" - - Expression (Rule): # 167..179 " msg.sender" - - MemberAccessExpression (Rule): # 167..179 " msg.sender" - - Expression (Rule): # 167..172 " msg" - - Identifier (Token): "msg" # 169..172 - - Period (Token): "." # 172..173 - - Identifier (Token): "sender" # 173..179 - - Period (Token): "." # 179..180 - - Identifier (Token): "call" # 180..184 - - FunctionCallOptions (Rule): # 184..226 "{arg: 1, missing_expr: , no_semicolon, , }" - - NamedArgumentsDeclaration (Rule): # 184..226 "{arg: 1, missing_expr: , no_semicolon, , }" - - OpenBrace (Token): "{" # 184..185 - - NamedArgumentsList (Rule): # 185..222 "arg: 1, missing_expr: , no_semicolon," - - NamedArgument (Rule): # 185..191 "arg: 1" - - Identifier (Token): "arg" # 185..188 - - Colon (Token): ":" # 188..189 - - Expression (Rule): # 189..191 " 1" - - DecimalNumberExpression (Rule): # 189..191 " 1" - - DecimalLiteral (Token): "1" # 190..191 - - Comma (Token): "," # 191..192 - - NamedArgument (Rule): # 192..206 " missing_expr:" - - Identifier (Token): "missing_expr" # 193..205 - - Colon (Token): ":" # 205..206 - - SKIPPED (Token): " " # 206..207 - - Comma (Token): "," # 207..208 - - NamedArgument (Rule): # 208..221 " no_semicolon" - - Identifier (Token): "no_semicolon" # 209..221 - - SKIPPED (Token): "" # 221..221 - - Comma (Token): "," # 221..222 - - SKIPPED (Token): ", " # 223..225 - - CloseBrace (Token): "}" # 225..226 - - ArgumentsDeclaration (Rule): # 226..228 "()" - - OpenParen (Token): "(" # 226..227 - - CloseParen (Token): ")" # 227..228 - - Semicolon (Token): ";" # 228..229 - - Statement (Rule): # 230..306 " msg.sender.call{arg: 1 unexpected tokens, not: 2..." - - ExpressionStatement (Rule): # 230..306 " msg.sender.call{arg: 1 unexpected tokens, not: 2..." - - Expression (Rule): # 230..304 " msg.sender.call{arg: 1 unexpected tokens, not: 2..." - - FunctionCallExpression (Rule): # 230..304 " msg.sender.call{arg: 1 unexpected tokens, not: 2..." - - Expression (Rule): # 230..247 " msg.sender.call" - - MemberAccessExpression (Rule): # 230..247 " msg.sender.call" - - Expression (Rule): # 230..242 " msg.sender" - - MemberAccessExpression (Rule): # 230..242 " msg.sender" - - Expression (Rule): # 230..235 " msg" - - Identifier (Token): "msg" # 232..235 - - Period (Token): "." # 235..236 - - Identifier (Token): "sender" # 236..242 - - Period (Token): "." # 242..243 - - Identifier (Token): "call" # 243..247 - - FunctionCallOptions (Rule): # 247..302 "{arg: 1 unexpected tokens, not: 2, recovered, yet:..." - - NamedArgumentsDeclaration (Rule): # 247..302 "{arg: 1 unexpected tokens, not: 2, recovered, yet:..." - - OpenBrace (Token): "{" # 247..248 - - NamedArgumentsList (Rule): # 248..254 "arg: 1" - - NamedArgument (Rule): # 248..254 "arg: 1" - - Identifier (Token): "arg" # 248..251 - - Colon (Token): ":" # 251..252 - - Expression (Rule): # 252..254 " 1" - - DecimalNumberExpression (Rule): # 252..254 " 1" - - DecimalLiteral (Token): "1" # 253..254 - - SKIPPED (Token): "unexpected tokens, not: 2, recovered, yet: 3, " # 255..301 - - CloseBrace (Token): "}" # 301..302 - - ArgumentsDeclaration (Rule): # 302..304 "()" - - OpenParen (Token): "(" # 302..303 - - CloseParen (Token): ")" # 303..304 - - Semicolon (Token): ";" # 304..305 + - ExpressionStatement (Rule): # 86..123 " msg.sender.call{do: 1, arg: 1 }();\n" + - Expression (Rule): # 86..121 " msg.sender.call{do: 1, arg: 1 }()" + - FunctionCallExpression (Rule): # 86..121 " msg.sender.call{do: 1, arg: 1 }()" + - Expression (Rule): # 86..103 " msg.sender.call" + - MemberAccessExpression (Rule): # 86..103 " msg.sender.call" + - Expression (Rule): # 86..98 " msg.sender" + - MemberAccessExpression (Rule): # 86..98 " msg.sender" + - Expression (Rule): # 86..91 " msg" + - Identifier (Token): "msg" # 88..91 + - Period (Token): "." # 91..92 + - Identifier (Token): "sender" # 92..98 + - Period (Token): "." # 98..99 + - Identifier (Token): "call" # 99..103 + - FunctionCallOptions (Rule): # 103..119 "{do: 1, arg: 1 }" + - NamedArgumentsDeclaration (Rule): # 103..119 "{do: 1, arg: 1 }" + - OpenBrace (Token): "{" # 103..104 + - SKIPPED (Token): "do: 1, arg: 1 " # 104..118 + - CloseBrace (Token): "}" # 118..119 + - ArgumentsDeclaration (Rule): # 119..121 "()" + - OpenParen (Token): "(" # 119..120 + - CloseParen (Token): ")" # 120..121 + - Semicolon (Token): ";" # 121..122 + - ExpressionStatement (Rule): # 123..167 " msg.sender.call{, empty: 1, parse: 2 }();\n" + - Expression (Rule): # 123..165 " msg.sender.call{, empty: 1, parse: 2 }()" + - FunctionCallExpression (Rule): # 123..165 " msg.sender.call{, empty: 1, parse: 2 }()" + - Expression (Rule): # 123..140 " msg.sender.call" + - MemberAccessExpression (Rule): # 123..140 " msg.sender.call" + - Expression (Rule): # 123..135 " msg.sender" + - MemberAccessExpression (Rule): # 123..135 " msg.sender" + - Expression (Rule): # 123..128 " msg" + - Identifier (Token): "msg" # 125..128 + - Period (Token): "." # 128..129 + - Identifier (Token): "sender" # 129..135 + - Period (Token): "." # 135..136 + - Identifier (Token): "call" # 136..140 + - FunctionCallOptions (Rule): # 140..163 "{, empty: 1, parse: 2 }" + - NamedArgumentsDeclaration (Rule): # 140..163 "{, empty: 1, parse: 2 }" + - OpenBrace (Token): "{" # 140..141 + - SKIPPED (Token): ", empty: 1, parse: 2 " # 141..162 + - CloseBrace (Token): "}" # 162..163 + - ArgumentsDeclaration (Rule): # 163..165 "()" + - OpenParen (Token): "(" # 163..164 + - CloseParen (Token): ")" # 164..165 + - Semicolon (Token): ";" # 165..166 + - ExpressionStatement (Rule): # 167..230 " msg.sender.call{arg: 1, missing_expr: , no_semic..." + - Expression (Rule): # 167..228 " msg.sender.call{arg: 1, missing_expr: , no_semic..." + - FunctionCallExpression (Rule): # 167..228 " msg.sender.call{arg: 1, missing_expr: , no_semic..." + - Expression (Rule): # 167..184 " msg.sender.call" + - MemberAccessExpression (Rule): # 167..184 " msg.sender.call" + - Expression (Rule): # 167..179 " msg.sender" + - MemberAccessExpression (Rule): # 167..179 " msg.sender" + - Expression (Rule): # 167..172 " msg" + - Identifier (Token): "msg" # 169..172 + - Period (Token): "." # 172..173 + - Identifier (Token): "sender" # 173..179 + - Period (Token): "." # 179..180 + - Identifier (Token): "call" # 180..184 + - FunctionCallOptions (Rule): # 184..226 "{arg: 1, missing_expr: , no_semicolon, , }" + - NamedArgumentsDeclaration (Rule): # 184..226 "{arg: 1, missing_expr: , no_semicolon, , }" + - OpenBrace (Token): "{" # 184..185 + - NamedArgumentsList (Rule): # 185..222 "arg: 1, missing_expr: , no_semicolon," + - NamedArgument (Rule): # 185..191 "arg: 1" + - Identifier (Token): "arg" # 185..188 + - Colon (Token): ":" # 188..189 + - Expression (Rule): # 189..191 " 1" + - DecimalNumberExpression (Rule): # 189..191 " 1" + - DecimalLiteral (Token): "1" # 190..191 + - Comma (Token): "," # 191..192 + - NamedArgument (Rule): # 192..206 " missing_expr:" + - Identifier (Token): "missing_expr" # 193..205 + - Colon (Token): ":" # 205..206 + - SKIPPED (Token): " " # 206..207 + - Comma (Token): "," # 207..208 + - NamedArgument (Rule): # 208..221 " no_semicolon" + - Identifier (Token): "no_semicolon" # 209..221 + - SKIPPED (Token): "" # 221..221 + - Comma (Token): "," # 221..222 + - SKIPPED (Token): ", " # 223..225 + - CloseBrace (Token): "}" # 225..226 + - ArgumentsDeclaration (Rule): # 226..228 "()" + - OpenParen (Token): "(" # 226..227 + - CloseParen (Token): ")" # 227..228 + - Semicolon (Token): ";" # 228..229 + - ExpressionStatement (Rule): # 230..306 " msg.sender.call{arg: 1 unexpected tokens, not: 2..." + - Expression (Rule): # 230..304 " msg.sender.call{arg: 1 unexpected tokens, not: 2..." + - FunctionCallExpression (Rule): # 230..304 " msg.sender.call{arg: 1 unexpected tokens, not: 2..." + - Expression (Rule): # 230..247 " msg.sender.call" + - MemberAccessExpression (Rule): # 230..247 " msg.sender.call" + - Expression (Rule): # 230..242 " msg.sender" + - MemberAccessExpression (Rule): # 230..242 " msg.sender" + - Expression (Rule): # 230..235 " msg" + - Identifier (Token): "msg" # 232..235 + - Period (Token): "." # 235..236 + - Identifier (Token): "sender" # 236..242 + - Period (Token): "." # 242..243 + - Identifier (Token): "call" # 243..247 + - FunctionCallOptions (Rule): # 247..302 "{arg: 1 unexpected tokens, not: 2, recovered, yet:..." + - NamedArgumentsDeclaration (Rule): # 247..302 "{arg: 1 unexpected tokens, not: 2, recovered, yet:..." + - OpenBrace (Token): "{" # 247..248 + - NamedArgumentsList (Rule): # 248..254 "arg: 1" + - NamedArgument (Rule): # 248..254 "arg: 1" + - Identifier (Token): "arg" # 248..251 + - Colon (Token): ":" # 251..252 + - Expression (Rule): # 252..254 " 1" + - DecimalNumberExpression (Rule): # 252..254 " 1" + - DecimalLiteral (Token): "1" # 253..254 + - SKIPPED (Token): "unexpected tokens, not: 2, recovered, yet: 3, " # 255..301 + - CloseBrace (Token): "}" # 301..302 + - ArgumentsDeclaration (Rule): # 302..304 "()" + - OpenParen (Token): "(" # 302..303 + - CloseParen (Token): ")" # 303..304 + - Semicolon (Token): ";" # 304..305 - CloseBrace (Token): "}" # 307..308 - FunctionDefinition (Rule): # 309..388 "\nfunction empty() override(some.ident, /* empty */..." - FunctionKeyword (Token): "function" # 310..318 diff --git a/crates/solidity/testing/snapshots/cst_output/ContractMembersList/separated_recovery/generated/0.7.0-failure.yml b/crates/solidity/testing/snapshots/cst_output/ContractMembersList/separated_recovery/generated/0.7.0-failure.yml index cdc0cb9f79..a7fdd781da 100644 --- a/crates/solidity/testing/snapshots/cst_output/ContractMembersList/separated_recovery/generated/0.7.0-failure.yml +++ b/crates/solidity/testing/snapshots/cst_output/ContractMembersList/separated_recovery/generated/0.7.0-failure.yml @@ -135,122 +135,118 @@ Tree: - Block (Rule): # 83..309 " {\n msg.sender.call{do: 1, arg: 1 }();\n msg.send..." - OpenBrace (Token): "{" # 84..85 - StatementsList (Rule): # 86..306 " msg.sender.call{do: 1, arg: 1 }();\n msg.sender...." - - Statement (Rule): # 86..123 " msg.sender.call{do: 1, arg: 1 }();\n" - - ExpressionStatement (Rule): # 86..123 " msg.sender.call{do: 1, arg: 1 }();\n" - - Expression (Rule): # 86..121 " msg.sender.call{do: 1, arg: 1 }()" - - FunctionCallExpression (Rule): # 86..121 " msg.sender.call{do: 1, arg: 1 }()" - - Expression (Rule): # 86..103 " msg.sender.call" - - MemberAccessExpression (Rule): # 86..103 " msg.sender.call" - - Expression (Rule): # 86..98 " msg.sender" - - MemberAccessExpression (Rule): # 86..98 " msg.sender" - - Expression (Rule): # 86..91 " msg" - - Identifier (Token): "msg" # 88..91 - - Period (Token): "." # 91..92 - - Identifier (Token): "sender" # 92..98 - - Period (Token): "." # 98..99 - - Identifier (Token): "call" # 99..103 - - FunctionCallOptions (Rule): # 103..119 "{do: 1, arg: 1 }" - - NamedArgumentsDeclaration (Rule): # 103..119 "{do: 1, arg: 1 }" - - OpenBrace (Token): "{" # 103..104 - - SKIPPED (Token): "do: 1, arg: 1 " # 104..118 - - CloseBrace (Token): "}" # 118..119 - - ArgumentsDeclaration (Rule): # 119..121 "()" - - OpenParen (Token): "(" # 119..120 - - CloseParen (Token): ")" # 120..121 - - Semicolon (Token): ";" # 121..122 - - Statement (Rule): # 123..167 " msg.sender.call{, empty: 1, parse: 2 }();\n" - - ExpressionStatement (Rule): # 123..167 " msg.sender.call{, empty: 1, parse: 2 }();\n" - - Expression (Rule): # 123..165 " msg.sender.call{, empty: 1, parse: 2 }()" - - FunctionCallExpression (Rule): # 123..165 " msg.sender.call{, empty: 1, parse: 2 }()" - - Expression (Rule): # 123..140 " msg.sender.call" - - MemberAccessExpression (Rule): # 123..140 " msg.sender.call" - - Expression (Rule): # 123..135 " msg.sender" - - MemberAccessExpression (Rule): # 123..135 " msg.sender" - - Expression (Rule): # 123..128 " msg" - - Identifier (Token): "msg" # 125..128 - - Period (Token): "." # 128..129 - - Identifier (Token): "sender" # 129..135 - - Period (Token): "." # 135..136 - - Identifier (Token): "call" # 136..140 - - FunctionCallOptions (Rule): # 140..163 "{, empty: 1, parse: 2 }" - - NamedArgumentsDeclaration (Rule): # 140..163 "{, empty: 1, parse: 2 }" - - OpenBrace (Token): "{" # 140..141 - - SKIPPED (Token): ", empty: 1, parse: 2 " # 141..162 - - CloseBrace (Token): "}" # 162..163 - - ArgumentsDeclaration (Rule): # 163..165 "()" - - OpenParen (Token): "(" # 163..164 - - CloseParen (Token): ")" # 164..165 - - Semicolon (Token): ";" # 165..166 - - Statement (Rule): # 167..230 " msg.sender.call{arg: 1, missing_expr: , no_semic..." - - ExpressionStatement (Rule): # 167..230 " msg.sender.call{arg: 1, missing_expr: , no_semic..." - - Expression (Rule): # 167..228 " msg.sender.call{arg: 1, missing_expr: , no_semic..." - - FunctionCallExpression (Rule): # 167..228 " msg.sender.call{arg: 1, missing_expr: , no_semic..." - - Expression (Rule): # 167..184 " msg.sender.call" - - MemberAccessExpression (Rule): # 167..184 " msg.sender.call" - - Expression (Rule): # 167..179 " msg.sender" - - MemberAccessExpression (Rule): # 167..179 " msg.sender" - - Expression (Rule): # 167..172 " msg" - - Identifier (Token): "msg" # 169..172 - - Period (Token): "." # 172..173 - - Identifier (Token): "sender" # 173..179 - - Period (Token): "." # 179..180 - - Identifier (Token): "call" # 180..184 - - FunctionCallOptions (Rule): # 184..226 "{arg: 1, missing_expr: , no_semicolon, , }" - - NamedArgumentsDeclaration (Rule): # 184..226 "{arg: 1, missing_expr: , no_semicolon, , }" - - OpenBrace (Token): "{" # 184..185 - - NamedArgumentsList (Rule): # 185..222 "arg: 1, missing_expr: , no_semicolon," - - NamedArgument (Rule): # 185..191 "arg: 1" - - Identifier (Token): "arg" # 185..188 - - Colon (Token): ":" # 188..189 - - Expression (Rule): # 189..191 " 1" - - DecimalNumberExpression (Rule): # 189..191 " 1" - - DecimalLiteral (Token): "1" # 190..191 - - Comma (Token): "," # 191..192 - - NamedArgument (Rule): # 192..206 " missing_expr:" - - Identifier (Token): "missing_expr" # 193..205 - - Colon (Token): ":" # 205..206 - - SKIPPED (Token): " " # 206..207 - - Comma (Token): "," # 207..208 - - NamedArgument (Rule): # 208..221 " no_semicolon" - - Identifier (Token): "no_semicolon" # 209..221 - - SKIPPED (Token): "" # 221..221 - - Comma (Token): "," # 221..222 - - SKIPPED (Token): ", " # 223..225 - - CloseBrace (Token): "}" # 225..226 - - ArgumentsDeclaration (Rule): # 226..228 "()" - - OpenParen (Token): "(" # 226..227 - - CloseParen (Token): ")" # 227..228 - - Semicolon (Token): ";" # 228..229 - - Statement (Rule): # 230..306 " msg.sender.call{arg: 1 unexpected tokens, not: 2..." - - ExpressionStatement (Rule): # 230..306 " msg.sender.call{arg: 1 unexpected tokens, not: 2..." - - Expression (Rule): # 230..304 " msg.sender.call{arg: 1 unexpected tokens, not: 2..." - - FunctionCallExpression (Rule): # 230..304 " msg.sender.call{arg: 1 unexpected tokens, not: 2..." - - Expression (Rule): # 230..247 " msg.sender.call" - - MemberAccessExpression (Rule): # 230..247 " msg.sender.call" - - Expression (Rule): # 230..242 " msg.sender" - - MemberAccessExpression (Rule): # 230..242 " msg.sender" - - Expression (Rule): # 230..235 " msg" - - Identifier (Token): "msg" # 232..235 - - Period (Token): "." # 235..236 - - Identifier (Token): "sender" # 236..242 - - Period (Token): "." # 242..243 - - Identifier (Token): "call" # 243..247 - - FunctionCallOptions (Rule): # 247..302 "{arg: 1 unexpected tokens, not: 2, recovered, yet:..." - - NamedArgumentsDeclaration (Rule): # 247..302 "{arg: 1 unexpected tokens, not: 2, recovered, yet:..." - - OpenBrace (Token): "{" # 247..248 - - NamedArgumentsList (Rule): # 248..254 "arg: 1" - - NamedArgument (Rule): # 248..254 "arg: 1" - - Identifier (Token): "arg" # 248..251 - - Colon (Token): ":" # 251..252 - - Expression (Rule): # 252..254 " 1" - - DecimalNumberExpression (Rule): # 252..254 " 1" - - DecimalLiteral (Token): "1" # 253..254 - - SKIPPED (Token): "unexpected tokens, not: 2, recovered, yet: 3, " # 255..301 - - CloseBrace (Token): "}" # 301..302 - - ArgumentsDeclaration (Rule): # 302..304 "()" - - OpenParen (Token): "(" # 302..303 - - CloseParen (Token): ")" # 303..304 - - Semicolon (Token): ";" # 304..305 + - ExpressionStatement (Rule): # 86..123 " msg.sender.call{do: 1, arg: 1 }();\n" + - Expression (Rule): # 86..121 " msg.sender.call{do: 1, arg: 1 }()" + - FunctionCallExpression (Rule): # 86..121 " msg.sender.call{do: 1, arg: 1 }()" + - Expression (Rule): # 86..103 " msg.sender.call" + - MemberAccessExpression (Rule): # 86..103 " msg.sender.call" + - Expression (Rule): # 86..98 " msg.sender" + - MemberAccessExpression (Rule): # 86..98 " msg.sender" + - Expression (Rule): # 86..91 " msg" + - Identifier (Token): "msg" # 88..91 + - Period (Token): "." # 91..92 + - Identifier (Token): "sender" # 92..98 + - Period (Token): "." # 98..99 + - Identifier (Token): "call" # 99..103 + - FunctionCallOptions (Rule): # 103..119 "{do: 1, arg: 1 }" + - NamedArgumentsDeclaration (Rule): # 103..119 "{do: 1, arg: 1 }" + - OpenBrace (Token): "{" # 103..104 + - SKIPPED (Token): "do: 1, arg: 1 " # 104..118 + - CloseBrace (Token): "}" # 118..119 + - ArgumentsDeclaration (Rule): # 119..121 "()" + - OpenParen (Token): "(" # 119..120 + - CloseParen (Token): ")" # 120..121 + - Semicolon (Token): ";" # 121..122 + - ExpressionStatement (Rule): # 123..167 " msg.sender.call{, empty: 1, parse: 2 }();\n" + - Expression (Rule): # 123..165 " msg.sender.call{, empty: 1, parse: 2 }()" + - FunctionCallExpression (Rule): # 123..165 " msg.sender.call{, empty: 1, parse: 2 }()" + - Expression (Rule): # 123..140 " msg.sender.call" + - MemberAccessExpression (Rule): # 123..140 " msg.sender.call" + - Expression (Rule): # 123..135 " msg.sender" + - MemberAccessExpression (Rule): # 123..135 " msg.sender" + - Expression (Rule): # 123..128 " msg" + - Identifier (Token): "msg" # 125..128 + - Period (Token): "." # 128..129 + - Identifier (Token): "sender" # 129..135 + - Period (Token): "." # 135..136 + - Identifier (Token): "call" # 136..140 + - FunctionCallOptions (Rule): # 140..163 "{, empty: 1, parse: 2 }" + - NamedArgumentsDeclaration (Rule): # 140..163 "{, empty: 1, parse: 2 }" + - OpenBrace (Token): "{" # 140..141 + - SKIPPED (Token): ", empty: 1, parse: 2 " # 141..162 + - CloseBrace (Token): "}" # 162..163 + - ArgumentsDeclaration (Rule): # 163..165 "()" + - OpenParen (Token): "(" # 163..164 + - CloseParen (Token): ")" # 164..165 + - Semicolon (Token): ";" # 165..166 + - ExpressionStatement (Rule): # 167..230 " msg.sender.call{arg: 1, missing_expr: , no_semic..." + - Expression (Rule): # 167..228 " msg.sender.call{arg: 1, missing_expr: , no_semic..." + - FunctionCallExpression (Rule): # 167..228 " msg.sender.call{arg: 1, missing_expr: , no_semic..." + - Expression (Rule): # 167..184 " msg.sender.call" + - MemberAccessExpression (Rule): # 167..184 " msg.sender.call" + - Expression (Rule): # 167..179 " msg.sender" + - MemberAccessExpression (Rule): # 167..179 " msg.sender" + - Expression (Rule): # 167..172 " msg" + - Identifier (Token): "msg" # 169..172 + - Period (Token): "." # 172..173 + - Identifier (Token): "sender" # 173..179 + - Period (Token): "." # 179..180 + - Identifier (Token): "call" # 180..184 + - FunctionCallOptions (Rule): # 184..226 "{arg: 1, missing_expr: , no_semicolon, , }" + - NamedArgumentsDeclaration (Rule): # 184..226 "{arg: 1, missing_expr: , no_semicolon, , }" + - OpenBrace (Token): "{" # 184..185 + - NamedArgumentsList (Rule): # 185..222 "arg: 1, missing_expr: , no_semicolon," + - NamedArgument (Rule): # 185..191 "arg: 1" + - Identifier (Token): "arg" # 185..188 + - Colon (Token): ":" # 188..189 + - Expression (Rule): # 189..191 " 1" + - DecimalNumberExpression (Rule): # 189..191 " 1" + - DecimalLiteral (Token): "1" # 190..191 + - Comma (Token): "," # 191..192 + - NamedArgument (Rule): # 192..206 " missing_expr:" + - Identifier (Token): "missing_expr" # 193..205 + - Colon (Token): ":" # 205..206 + - SKIPPED (Token): " " # 206..207 + - Comma (Token): "," # 207..208 + - NamedArgument (Rule): # 208..221 " no_semicolon" + - Identifier (Token): "no_semicolon" # 209..221 + - SKIPPED (Token): "" # 221..221 + - Comma (Token): "," # 221..222 + - SKIPPED (Token): ", " # 223..225 + - CloseBrace (Token): "}" # 225..226 + - ArgumentsDeclaration (Rule): # 226..228 "()" + - OpenParen (Token): "(" # 226..227 + - CloseParen (Token): ")" # 227..228 + - Semicolon (Token): ";" # 228..229 + - ExpressionStatement (Rule): # 230..306 " msg.sender.call{arg: 1 unexpected tokens, not: 2..." + - Expression (Rule): # 230..304 " msg.sender.call{arg: 1 unexpected tokens, not: 2..." + - FunctionCallExpression (Rule): # 230..304 " msg.sender.call{arg: 1 unexpected tokens, not: 2..." + - Expression (Rule): # 230..247 " msg.sender.call" + - MemberAccessExpression (Rule): # 230..247 " msg.sender.call" + - Expression (Rule): # 230..242 " msg.sender" + - MemberAccessExpression (Rule): # 230..242 " msg.sender" + - Expression (Rule): # 230..235 " msg" + - Identifier (Token): "msg" # 232..235 + - Period (Token): "." # 235..236 + - Identifier (Token): "sender" # 236..242 + - Period (Token): "." # 242..243 + - Identifier (Token): "call" # 243..247 + - FunctionCallOptions (Rule): # 247..302 "{arg: 1 unexpected tokens, not: 2, recovered, yet:..." + - NamedArgumentsDeclaration (Rule): # 247..302 "{arg: 1 unexpected tokens, not: 2, recovered, yet:..." + - OpenBrace (Token): "{" # 247..248 + - NamedArgumentsList (Rule): # 248..254 "arg: 1" + - NamedArgument (Rule): # 248..254 "arg: 1" + - Identifier (Token): "arg" # 248..251 + - Colon (Token): ":" # 251..252 + - Expression (Rule): # 252..254 " 1" + - DecimalNumberExpression (Rule): # 252..254 " 1" + - DecimalLiteral (Token): "1" # 253..254 + - SKIPPED (Token): "unexpected tokens, not: 2, recovered, yet: 3, " # 255..301 + - CloseBrace (Token): "}" # 301..302 + - ArgumentsDeclaration (Rule): # 302..304 "()" + - OpenParen (Token): "(" # 302..303 + - CloseParen (Token): ")" # 303..304 + - Semicolon (Token): ";" # 304..305 - CloseBrace (Token): "}" # 307..308 - FunctionDefinition (Rule): # 309..388 "\nfunction empty() override(some.ident, /* empty */..." - FunctionKeyword (Token): "function" # 310..318 diff --git a/crates/solidity/testing/snapshots/cst_output/ContractMembersList/separated_recovery/generated/0.8.0-failure.yml b/crates/solidity/testing/snapshots/cst_output/ContractMembersList/separated_recovery/generated/0.8.0-failure.yml index 28fe5af819..e8e8c5f0ed 100644 --- a/crates/solidity/testing/snapshots/cst_output/ContractMembersList/separated_recovery/generated/0.8.0-failure.yml +++ b/crates/solidity/testing/snapshots/cst_output/ContractMembersList/separated_recovery/generated/0.8.0-failure.yml @@ -135,122 +135,118 @@ Tree: - Block (Rule): # 83..309 " {\n msg.sender.call{do: 1, arg: 1 }();\n msg.send..." - OpenBrace (Token): "{" # 84..85 - StatementsList (Rule): # 86..306 " msg.sender.call{do: 1, arg: 1 }();\n msg.sender...." - - Statement (Rule): # 86..123 " msg.sender.call{do: 1, arg: 1 }();\n" - - ExpressionStatement (Rule): # 86..123 " msg.sender.call{do: 1, arg: 1 }();\n" - - Expression (Rule): # 86..121 " msg.sender.call{do: 1, arg: 1 }()" - - FunctionCallExpression (Rule): # 86..121 " msg.sender.call{do: 1, arg: 1 }()" - - Expression (Rule): # 86..103 " msg.sender.call" - - MemberAccessExpression (Rule): # 86..103 " msg.sender.call" - - Expression (Rule): # 86..98 " msg.sender" - - MemberAccessExpression (Rule): # 86..98 " msg.sender" - - Expression (Rule): # 86..91 " msg" - - Identifier (Token): "msg" # 88..91 - - Period (Token): "." # 91..92 - - Identifier (Token): "sender" # 92..98 - - Period (Token): "." # 98..99 - - Identifier (Token): "call" # 99..103 - - FunctionCallOptions (Rule): # 103..119 "{do: 1, arg: 1 }" - - NamedArgumentsDeclaration (Rule): # 103..119 "{do: 1, arg: 1 }" - - OpenBrace (Token): "{" # 103..104 - - SKIPPED (Token): "do: 1, arg: 1 " # 104..118 - - CloseBrace (Token): "}" # 118..119 - - ArgumentsDeclaration (Rule): # 119..121 "()" - - OpenParen (Token): "(" # 119..120 - - CloseParen (Token): ")" # 120..121 - - Semicolon (Token): ";" # 121..122 - - Statement (Rule): # 123..167 " msg.sender.call{, empty: 1, parse: 2 }();\n" - - ExpressionStatement (Rule): # 123..167 " msg.sender.call{, empty: 1, parse: 2 }();\n" - - Expression (Rule): # 123..165 " msg.sender.call{, empty: 1, parse: 2 }()" - - FunctionCallExpression (Rule): # 123..165 " msg.sender.call{, empty: 1, parse: 2 }()" - - Expression (Rule): # 123..140 " msg.sender.call" - - MemberAccessExpression (Rule): # 123..140 " msg.sender.call" - - Expression (Rule): # 123..135 " msg.sender" - - MemberAccessExpression (Rule): # 123..135 " msg.sender" - - Expression (Rule): # 123..128 " msg" - - Identifier (Token): "msg" # 125..128 - - Period (Token): "." # 128..129 - - Identifier (Token): "sender" # 129..135 - - Period (Token): "." # 135..136 - - Identifier (Token): "call" # 136..140 - - FunctionCallOptions (Rule): # 140..163 "{, empty: 1, parse: 2 }" - - NamedArgumentsDeclaration (Rule): # 140..163 "{, empty: 1, parse: 2 }" - - OpenBrace (Token): "{" # 140..141 - - SKIPPED (Token): ", empty: 1, parse: 2 " # 141..162 - - CloseBrace (Token): "}" # 162..163 - - ArgumentsDeclaration (Rule): # 163..165 "()" - - OpenParen (Token): "(" # 163..164 - - CloseParen (Token): ")" # 164..165 - - Semicolon (Token): ";" # 165..166 - - Statement (Rule): # 167..230 " msg.sender.call{arg: 1, missing_expr: , no_semic..." - - ExpressionStatement (Rule): # 167..230 " msg.sender.call{arg: 1, missing_expr: , no_semic..." - - Expression (Rule): # 167..228 " msg.sender.call{arg: 1, missing_expr: , no_semic..." - - FunctionCallExpression (Rule): # 167..228 " msg.sender.call{arg: 1, missing_expr: , no_semic..." - - Expression (Rule): # 167..184 " msg.sender.call" - - MemberAccessExpression (Rule): # 167..184 " msg.sender.call" - - Expression (Rule): # 167..179 " msg.sender" - - MemberAccessExpression (Rule): # 167..179 " msg.sender" - - Expression (Rule): # 167..172 " msg" - - Identifier (Token): "msg" # 169..172 - - Period (Token): "." # 172..173 - - Identifier (Token): "sender" # 173..179 - - Period (Token): "." # 179..180 - - Identifier (Token): "call" # 180..184 - - FunctionCallOptions (Rule): # 184..226 "{arg: 1, missing_expr: , no_semicolon, , }" - - NamedArgumentsDeclaration (Rule): # 184..226 "{arg: 1, missing_expr: , no_semicolon, , }" - - OpenBrace (Token): "{" # 184..185 - - NamedArgumentsList (Rule): # 185..222 "arg: 1, missing_expr: , no_semicolon," - - NamedArgument (Rule): # 185..191 "arg: 1" - - Identifier (Token): "arg" # 185..188 - - Colon (Token): ":" # 188..189 - - Expression (Rule): # 189..191 " 1" - - DecimalNumberExpression (Rule): # 189..191 " 1" - - DecimalLiteral (Token): "1" # 190..191 - - Comma (Token): "," # 191..192 - - NamedArgument (Rule): # 192..206 " missing_expr:" - - Identifier (Token): "missing_expr" # 193..205 - - Colon (Token): ":" # 205..206 - - SKIPPED (Token): " " # 206..207 - - Comma (Token): "," # 207..208 - - NamedArgument (Rule): # 208..221 " no_semicolon" - - Identifier (Token): "no_semicolon" # 209..221 - - SKIPPED (Token): "" # 221..221 - - Comma (Token): "," # 221..222 - - SKIPPED (Token): ", " # 223..225 - - CloseBrace (Token): "}" # 225..226 - - ArgumentsDeclaration (Rule): # 226..228 "()" - - OpenParen (Token): "(" # 226..227 - - CloseParen (Token): ")" # 227..228 - - Semicolon (Token): ";" # 228..229 - - Statement (Rule): # 230..306 " msg.sender.call{arg: 1 unexpected tokens, not: 2..." - - ExpressionStatement (Rule): # 230..306 " msg.sender.call{arg: 1 unexpected tokens, not: 2..." - - Expression (Rule): # 230..304 " msg.sender.call{arg: 1 unexpected tokens, not: 2..." - - FunctionCallExpression (Rule): # 230..304 " msg.sender.call{arg: 1 unexpected tokens, not: 2..." - - Expression (Rule): # 230..247 " msg.sender.call" - - MemberAccessExpression (Rule): # 230..247 " msg.sender.call" - - Expression (Rule): # 230..242 " msg.sender" - - MemberAccessExpression (Rule): # 230..242 " msg.sender" - - Expression (Rule): # 230..235 " msg" - - Identifier (Token): "msg" # 232..235 - - Period (Token): "." # 235..236 - - Identifier (Token): "sender" # 236..242 - - Period (Token): "." # 242..243 - - Identifier (Token): "call" # 243..247 - - FunctionCallOptions (Rule): # 247..302 "{arg: 1 unexpected tokens, not: 2, recovered, yet:..." - - NamedArgumentsDeclaration (Rule): # 247..302 "{arg: 1 unexpected tokens, not: 2, recovered, yet:..." - - OpenBrace (Token): "{" # 247..248 - - NamedArgumentsList (Rule): # 248..254 "arg: 1" - - NamedArgument (Rule): # 248..254 "arg: 1" - - Identifier (Token): "arg" # 248..251 - - Colon (Token): ":" # 251..252 - - Expression (Rule): # 252..254 " 1" - - DecimalNumberExpression (Rule): # 252..254 " 1" - - DecimalLiteral (Token): "1" # 253..254 - - SKIPPED (Token): "unexpected tokens, not: 2, recovered, yet: 3, " # 255..301 - - CloseBrace (Token): "}" # 301..302 - - ArgumentsDeclaration (Rule): # 302..304 "()" - - OpenParen (Token): "(" # 302..303 - - CloseParen (Token): ")" # 303..304 - - Semicolon (Token): ";" # 304..305 + - ExpressionStatement (Rule): # 86..123 " msg.sender.call{do: 1, arg: 1 }();\n" + - Expression (Rule): # 86..121 " msg.sender.call{do: 1, arg: 1 }()" + - FunctionCallExpression (Rule): # 86..121 " msg.sender.call{do: 1, arg: 1 }()" + - Expression (Rule): # 86..103 " msg.sender.call" + - MemberAccessExpression (Rule): # 86..103 " msg.sender.call" + - Expression (Rule): # 86..98 " msg.sender" + - MemberAccessExpression (Rule): # 86..98 " msg.sender" + - Expression (Rule): # 86..91 " msg" + - Identifier (Token): "msg" # 88..91 + - Period (Token): "." # 91..92 + - Identifier (Token): "sender" # 92..98 + - Period (Token): "." # 98..99 + - Identifier (Token): "call" # 99..103 + - FunctionCallOptions (Rule): # 103..119 "{do: 1, arg: 1 }" + - NamedArgumentsDeclaration (Rule): # 103..119 "{do: 1, arg: 1 }" + - OpenBrace (Token): "{" # 103..104 + - SKIPPED (Token): "do: 1, arg: 1 " # 104..118 + - CloseBrace (Token): "}" # 118..119 + - ArgumentsDeclaration (Rule): # 119..121 "()" + - OpenParen (Token): "(" # 119..120 + - CloseParen (Token): ")" # 120..121 + - Semicolon (Token): ";" # 121..122 + - ExpressionStatement (Rule): # 123..167 " msg.sender.call{, empty: 1, parse: 2 }();\n" + - Expression (Rule): # 123..165 " msg.sender.call{, empty: 1, parse: 2 }()" + - FunctionCallExpression (Rule): # 123..165 " msg.sender.call{, empty: 1, parse: 2 }()" + - Expression (Rule): # 123..140 " msg.sender.call" + - MemberAccessExpression (Rule): # 123..140 " msg.sender.call" + - Expression (Rule): # 123..135 " msg.sender" + - MemberAccessExpression (Rule): # 123..135 " msg.sender" + - Expression (Rule): # 123..128 " msg" + - Identifier (Token): "msg" # 125..128 + - Period (Token): "." # 128..129 + - Identifier (Token): "sender" # 129..135 + - Period (Token): "." # 135..136 + - Identifier (Token): "call" # 136..140 + - FunctionCallOptions (Rule): # 140..163 "{, empty: 1, parse: 2 }" + - NamedArgumentsDeclaration (Rule): # 140..163 "{, empty: 1, parse: 2 }" + - OpenBrace (Token): "{" # 140..141 + - SKIPPED (Token): ", empty: 1, parse: 2 " # 141..162 + - CloseBrace (Token): "}" # 162..163 + - ArgumentsDeclaration (Rule): # 163..165 "()" + - OpenParen (Token): "(" # 163..164 + - CloseParen (Token): ")" # 164..165 + - Semicolon (Token): ";" # 165..166 + - ExpressionStatement (Rule): # 167..230 " msg.sender.call{arg: 1, missing_expr: , no_semic..." + - Expression (Rule): # 167..228 " msg.sender.call{arg: 1, missing_expr: , no_semic..." + - FunctionCallExpression (Rule): # 167..228 " msg.sender.call{arg: 1, missing_expr: , no_semic..." + - Expression (Rule): # 167..184 " msg.sender.call" + - MemberAccessExpression (Rule): # 167..184 " msg.sender.call" + - Expression (Rule): # 167..179 " msg.sender" + - MemberAccessExpression (Rule): # 167..179 " msg.sender" + - Expression (Rule): # 167..172 " msg" + - Identifier (Token): "msg" # 169..172 + - Period (Token): "." # 172..173 + - Identifier (Token): "sender" # 173..179 + - Period (Token): "." # 179..180 + - Identifier (Token): "call" # 180..184 + - FunctionCallOptions (Rule): # 184..226 "{arg: 1, missing_expr: , no_semicolon, , }" + - NamedArgumentsDeclaration (Rule): # 184..226 "{arg: 1, missing_expr: , no_semicolon, , }" + - OpenBrace (Token): "{" # 184..185 + - NamedArgumentsList (Rule): # 185..222 "arg: 1, missing_expr: , no_semicolon," + - NamedArgument (Rule): # 185..191 "arg: 1" + - Identifier (Token): "arg" # 185..188 + - Colon (Token): ":" # 188..189 + - Expression (Rule): # 189..191 " 1" + - DecimalNumberExpression (Rule): # 189..191 " 1" + - DecimalLiteral (Token): "1" # 190..191 + - Comma (Token): "," # 191..192 + - NamedArgument (Rule): # 192..206 " missing_expr:" + - Identifier (Token): "missing_expr" # 193..205 + - Colon (Token): ":" # 205..206 + - SKIPPED (Token): " " # 206..207 + - Comma (Token): "," # 207..208 + - NamedArgument (Rule): # 208..221 " no_semicolon" + - Identifier (Token): "no_semicolon" # 209..221 + - SKIPPED (Token): "" # 221..221 + - Comma (Token): "," # 221..222 + - SKIPPED (Token): ", " # 223..225 + - CloseBrace (Token): "}" # 225..226 + - ArgumentsDeclaration (Rule): # 226..228 "()" + - OpenParen (Token): "(" # 226..227 + - CloseParen (Token): ")" # 227..228 + - Semicolon (Token): ";" # 228..229 + - ExpressionStatement (Rule): # 230..306 " msg.sender.call{arg: 1 unexpected tokens, not: 2..." + - Expression (Rule): # 230..304 " msg.sender.call{arg: 1 unexpected tokens, not: 2..." + - FunctionCallExpression (Rule): # 230..304 " msg.sender.call{arg: 1 unexpected tokens, not: 2..." + - Expression (Rule): # 230..247 " msg.sender.call" + - MemberAccessExpression (Rule): # 230..247 " msg.sender.call" + - Expression (Rule): # 230..242 " msg.sender" + - MemberAccessExpression (Rule): # 230..242 " msg.sender" + - Expression (Rule): # 230..235 " msg" + - Identifier (Token): "msg" # 232..235 + - Period (Token): "." # 235..236 + - Identifier (Token): "sender" # 236..242 + - Period (Token): "." # 242..243 + - Identifier (Token): "call" # 243..247 + - FunctionCallOptions (Rule): # 247..302 "{arg: 1 unexpected tokens, not: 2, recovered, yet:..." + - NamedArgumentsDeclaration (Rule): # 247..302 "{arg: 1 unexpected tokens, not: 2, recovered, yet:..." + - OpenBrace (Token): "{" # 247..248 + - NamedArgumentsList (Rule): # 248..254 "arg: 1" + - NamedArgument (Rule): # 248..254 "arg: 1" + - Identifier (Token): "arg" # 248..251 + - Colon (Token): ":" # 251..252 + - Expression (Rule): # 252..254 " 1" + - DecimalNumberExpression (Rule): # 252..254 " 1" + - DecimalLiteral (Token): "1" # 253..254 + - SKIPPED (Token): "unexpected tokens, not: 2, recovered, yet: 3, " # 255..301 + - CloseBrace (Token): "}" # 301..302 + - ArgumentsDeclaration (Rule): # 302..304 "()" + - OpenParen (Token): "(" # 302..303 + - CloseParen (Token): ")" # 303..304 + - Semicolon (Token): ";" # 304..305 - CloseBrace (Token): "}" # 307..308 - FunctionDefinition (Rule): # 309..388 "\nfunction empty() override(some.ident, /* empty */..." - FunctionKeyword (Token): "function" # 310..318 diff --git a/crates/solidity/testing/snapshots/cst_output/SourceUnit/SafeMath/generated/0.4.11-failure.yml b/crates/solidity/testing/snapshots/cst_output/SourceUnit/SafeMath/generated/0.4.11-failure.yml index 38f77e69bb..0ebf24d1bd 100644 --- a/crates/solidity/testing/snapshots/cst_output/SourceUnit/SafeMath/generated/0.4.11-failure.yml +++ b/crates/solidity/testing/snapshots/cst_output/SourceUnit/SafeMath/generated/0.4.11-failure.yml @@ -66,10 +66,9 @@ Tree: - Block (Rule): # 96..210 " {\n unchecked {\n uint256 c = a + b;\n ..." - OpenBrace (Token): "{" # 97..98 - StatementsList (Rule): # 99..113 " unchecked " - - Statement (Rule): # 99..113 " unchecked " - - ExpressionStatement (Rule): # 99..113 " unchecked " - - Expression (Rule): # 99..112 " unchecked" - - Identifier (Token): "unchecked" # 103..112 + - ExpressionStatement (Rule): # 99..113 " unchecked " + - Expression (Rule): # 99..112 " unchecked" + - Identifier (Token): "unchecked" # 103..112 - SKIPPED (Token): "{\n uint256 c = a + b;\n if (c < a) return..." # 113..208 - CloseBrace (Token): "}" # 208..209 - CloseBrace (Token): "}" # 210..211 diff --git a/crates/solidity/testing/snapshots/cst_output/SourceUnit/SafeMath/generated/0.8.0-success.yml b/crates/solidity/testing/snapshots/cst_output/SourceUnit/SafeMath/generated/0.8.0-success.yml index cdb990ad86..04c75ca87b 100644 --- a/crates/solidity/testing/snapshots/cst_output/SourceUnit/SafeMath/generated/0.8.0-success.yml +++ b/crates/solidity/testing/snapshots/cst_output/SourceUnit/SafeMath/generated/0.8.0-success.yml @@ -56,68 +56,63 @@ Tree: - Block (Rule): # 96..210 " {\n unchecked {\n uint256 c = a + b;\n ..." - OpenBrace (Token): "{" # 97..98 - StatementsList (Rule): # 99..206 " unchecked {\n uint256 c = a + b;\n if ..." - - Statement (Rule): # 99..206 " unchecked {\n uint256 c = a + b;\n if ..." - - UncheckedBlock (Rule): # 99..206 " unchecked {\n uint256 c = a + b;\n if ..." - - UncheckedKeyword (Token): "unchecked" # 103..112 - - Block (Rule): # 112..206 " {\n uint256 c = a + b;\n if (c < a) retur..." - - OpenBrace (Token): "{" # 113..114 - - StatementsList (Rule): # 115..200 " uint256 c = a + b;\n if (c < a) return (..." - - Statement (Rule): # 115..140 " uint256 c = a + b;\n" - - VariableDeclarationStatement (Rule): # 115..140 " uint256 c = a + b;\n" - - VariableDeclaration (Rule): # 115..130 " uint256 c" - - TypeName (Rule): # 115..128 " uint256" - - UnsignedIntegerType (Token): "uint256" # 121..128 - - Identifier (Token): "c" # 129..130 - - Equal (Token): "=" # 131..132 - - Expression (Rule): # 132..138 " a + b" - - BinaryExpression (Rule): # 132..138 " a + b" - - Expression (Rule): # 132..134 " a" - - Identifier (Token): "a" # 133..134 - - Plus (Token): "+" # 135..136 - - Expression (Rule): # 136..138 " b" - - Identifier (Token): "b" # 137..138 - - Semicolon (Token): ";" # 138..139 - - Statement (Rule): # 140..176 " if (c < a) return (false, 0);\n" - - IfStatement (Rule): # 140..176 " if (c < a) return (false, 0);\n" - - IfKeyword (Token): "if" # 146..148 - - OpenParen (Token): "(" # 149..150 - - Expression (Rule): # 150..155 "c < a" - - BinaryExpression (Rule): # 150..155 "c < a" - - Expression (Rule): # 150..151 "c" - - Identifier (Token): "c" # 150..151 - - LessThan (Token): "<" # 152..153 - - Expression (Rule): # 153..155 " a" - - Identifier (Token): "a" # 154..155 - - CloseParen (Token): ")" # 155..156 - - Statement (Rule): # 156..176 " return (false, 0);\n" - - ReturnStatement (Rule): # 156..176 " return (false, 0);\n" - - ReturnKeyword (Token): "return" # 157..163 - - Expression (Rule): # 163..174 " (false, 0)" - - TupleExpression (Rule): # 163..174 " (false, 0)" - - OpenParen (Token): "(" # 164..165 - - TupleValuesList (Rule): # 165..173 "false, 0" - - Expression (Rule): # 165..170 "false" - - FalseKeyword (Token): "false" # 165..170 - - Comma (Token): "," # 170..171 - - Expression (Rule): # 171..173 " 0" - - DecimalNumberExpression (Rule): # 171..173 " 0" - - DecimalLiteral (Token): "0" # 172..173 - - CloseParen (Token): ")" # 173..174 - - Semicolon (Token): ";" # 174..175 - - Statement (Rule): # 176..200 " return (true, c);\n" - - ReturnStatement (Rule): # 176..200 " return (true, c);\n" - - ReturnKeyword (Token): "return" # 182..188 - - Expression (Rule): # 188..198 " (true, c)" - - TupleExpression (Rule): # 188..198 " (true, c)" - - OpenParen (Token): "(" # 189..190 - - TupleValuesList (Rule): # 190..197 "true, c" - - Expression (Rule): # 190..194 "true" - - TrueKeyword (Token): "true" # 190..194 - - Comma (Token): "," # 194..195 - - Expression (Rule): # 195..197 " c" - - Identifier (Token): "c" # 196..197 - - CloseParen (Token): ")" # 197..198 - - Semicolon (Token): ";" # 198..199 - - CloseBrace (Token): "}" # 204..205 + - UncheckedBlock (Rule): # 99..206 " unchecked {\n uint256 c = a + b;\n if ..." + - UncheckedKeyword (Token): "unchecked" # 103..112 + - Block (Rule): # 112..206 " {\n uint256 c = a + b;\n if (c < a) retur..." + - OpenBrace (Token): "{" # 113..114 + - StatementsList (Rule): # 115..200 " uint256 c = a + b;\n if (c < a) return (..." + - VariableDeclarationStatement (Rule): # 115..140 " uint256 c = a + b;\n" + - VariableDeclaration (Rule): # 115..130 " uint256 c" + - TypeName (Rule): # 115..128 " uint256" + - UnsignedIntegerType (Token): "uint256" # 121..128 + - Identifier (Token): "c" # 129..130 + - Equal (Token): "=" # 131..132 + - Expression (Rule): # 132..138 " a + b" + - BinaryExpression (Rule): # 132..138 " a + b" + - Expression (Rule): # 132..134 " a" + - Identifier (Token): "a" # 133..134 + - Plus (Token): "+" # 135..136 + - Expression (Rule): # 136..138 " b" + - Identifier (Token): "b" # 137..138 + - Semicolon (Token): ";" # 138..139 + - IfStatement (Rule): # 140..176 " if (c < a) return (false, 0);\n" + - IfKeyword (Token): "if" # 146..148 + - OpenParen (Token): "(" # 149..150 + - Expression (Rule): # 150..155 "c < a" + - BinaryExpression (Rule): # 150..155 "c < a" + - Expression (Rule): # 150..151 "c" + - Identifier (Token): "c" # 150..151 + - LessThan (Token): "<" # 152..153 + - Expression (Rule): # 153..155 " a" + - Identifier (Token): "a" # 154..155 + - CloseParen (Token): ")" # 155..156 + - ReturnStatement (Rule): # 156..176 " return (false, 0);\n" + - ReturnKeyword (Token): "return" # 157..163 + - Expression (Rule): # 163..174 " (false, 0)" + - TupleExpression (Rule): # 163..174 " (false, 0)" + - OpenParen (Token): "(" # 164..165 + - TupleValuesList (Rule): # 165..173 "false, 0" + - Expression (Rule): # 165..170 "false" + - FalseKeyword (Token): "false" # 165..170 + - Comma (Token): "," # 170..171 + - Expression (Rule): # 171..173 " 0" + - DecimalNumberExpression (Rule): # 171..173 " 0" + - DecimalLiteral (Token): "0" # 172..173 + - CloseParen (Token): ")" # 173..174 + - Semicolon (Token): ";" # 174..175 + - ReturnStatement (Rule): # 176..200 " return (true, c);\n" + - ReturnKeyword (Token): "return" # 182..188 + - Expression (Rule): # 188..198 " (true, c)" + - TupleExpression (Rule): # 188..198 " (true, c)" + - OpenParen (Token): "(" # 189..190 + - TupleValuesList (Rule): # 190..197 "true, c" + - Expression (Rule): # 190..194 "true" + - TrueKeyword (Token): "true" # 190..194 + - Comma (Token): "," # 194..195 + - Expression (Rule): # 195..197 " c" + - Identifier (Token): "c" # 196..197 + - CloseParen (Token): ")" # 197..198 + - Semicolon (Token): ";" # 198..199 + - CloseBrace (Token): "}" # 204..205 - CloseBrace (Token): "}" # 208..209 - CloseBrace (Token): "}" # 210..211 diff --git a/crates/solidity/testing/snapshots/cst_output/Statement/throw/generated/0.5.0-failure.yml b/crates/solidity/testing/snapshots/cst_output/Statement/throw/generated/0.5.0-failure.yml deleted file mode 100644 index e4823e05c0..0000000000 --- a/crates/solidity/testing/snapshots/cst_output/Statement/throw/generated/0.5.0-failure.yml +++ /dev/null @@ -1,17 +0,0 @@ -# This file is generated automatically by infrastructure scripts. Please don't edit by hand. - -Source: > - 1 │ throw; │ 0..6 - -Errors: # 1 total - - > - Error: Expected AddressKeyword or AsciiStringLiteral or AssemblyKeyword or BoolKeyword or BreakKeyword or ByteKeyword or ContinueKeyword or DecimalLiteral or DeleteKeyword or DoKeyword or EmitKeyword or FalseKeyword or FixedBytesType or ForKeyword or FunctionKeyword or HexLiteral or HexStringLiteral or Identifier or IfKeyword or MappingKeyword or NewKeyword or OpenBrace or OpenBracket or OpenParen or PayableKeyword or ReturnKeyword or SignedFixedType or SignedIntegerType or StringKeyword or TrueKeyword or UnsignedFixedType or UnsignedIntegerType or WhileKeyword. - ╭─[crates/solidity/testing/snapshots/cst_output/Statement/throw/input.sol:1:1] - │ - 1 │ throw; - │ ───┬── - │ ╰──── Error occurred here. - ───╯ - -Tree: - - SKIPPED (Token): "throw;" # 0..6 diff --git a/crates/solidity/testing/snapshots/cst_output/Statement/throw/generated/0.5.3-failure.yml b/crates/solidity/testing/snapshots/cst_output/Statement/throw/generated/0.5.3-failure.yml deleted file mode 100644 index bf79d5d864..0000000000 --- a/crates/solidity/testing/snapshots/cst_output/Statement/throw/generated/0.5.3-failure.yml +++ /dev/null @@ -1,17 +0,0 @@ -# This file is generated automatically by infrastructure scripts. Please don't edit by hand. - -Source: > - 1 │ throw; │ 0..6 - -Errors: # 1 total - - > - Error: Expected AddressKeyword or AsciiStringLiteral or AssemblyKeyword or BoolKeyword or BreakKeyword or ByteKeyword or ContinueKeyword or DecimalLiteral or DeleteKeyword or DoKeyword or EmitKeyword or FalseKeyword or FixedBytesType or ForKeyword or FunctionKeyword or HexLiteral or HexStringLiteral or Identifier or IfKeyword or MappingKeyword or NewKeyword or OpenBrace or OpenBracket or OpenParen or PayableKeyword or ReturnKeyword or SignedFixedType or SignedIntegerType or StringKeyword or TrueKeyword or TypeKeyword or UnsignedFixedType or UnsignedIntegerType or WhileKeyword. - ╭─[crates/solidity/testing/snapshots/cst_output/Statement/throw/input.sol:1:1] - │ - 1 │ throw; - │ ───┬── - │ ╰──── Error occurred here. - ───╯ - -Tree: - - SKIPPED (Token): "throw;" # 0..6 diff --git a/crates/solidity/testing/snapshots/cst_output/Statement/throw/generated/0.6.0-failure.yml b/crates/solidity/testing/snapshots/cst_output/Statement/throw/generated/0.6.0-failure.yml deleted file mode 100644 index 4f682bf08a..0000000000 --- a/crates/solidity/testing/snapshots/cst_output/Statement/throw/generated/0.6.0-failure.yml +++ /dev/null @@ -1,17 +0,0 @@ -# This file is generated automatically by infrastructure scripts. Please don't edit by hand. - -Source: > - 1 │ throw; │ 0..6 - -Errors: # 1 total - - > - Error: Expected AddressKeyword or AsciiStringLiteral or AssemblyKeyword or BoolKeyword or BreakKeyword or ByteKeyword or ContinueKeyword or DecimalLiteral or DeleteKeyword or DoKeyword or EmitKeyword or FalseKeyword or FixedBytesType or ForKeyword or FunctionKeyword or HexLiteral or HexStringLiteral or Identifier or IfKeyword or MappingKeyword or NewKeyword or OpenBrace or OpenBracket or OpenParen or PayableKeyword or ReturnKeyword or SignedFixedType or SignedIntegerType or StringKeyword or TrueKeyword or TryKeyword or TypeKeyword or UnsignedFixedType or UnsignedIntegerType or WhileKeyword. - ╭─[crates/solidity/testing/snapshots/cst_output/Statement/throw/input.sol:1:1] - │ - 1 │ throw; - │ ───┬── - │ ╰──── Error occurred here. - ───╯ - -Tree: - - SKIPPED (Token): "throw;" # 0..6 diff --git a/crates/solidity/testing/snapshots/cst_output/Statement/throw/generated/0.7.0-failure.yml b/crates/solidity/testing/snapshots/cst_output/Statement/throw/generated/0.7.0-failure.yml deleted file mode 100644 index 022ddc0b29..0000000000 --- a/crates/solidity/testing/snapshots/cst_output/Statement/throw/generated/0.7.0-failure.yml +++ /dev/null @@ -1,17 +0,0 @@ -# This file is generated automatically by infrastructure scripts. Please don't edit by hand. - -Source: > - 1 │ throw; │ 0..6 - -Errors: # 1 total - - > - Error: Expected AddressKeyword or AsciiStringLiteral or AssemblyKeyword or BoolKeyword or BreakKeyword or ByteKeyword or ContinueKeyword or DecimalLiteral or DeleteKeyword or DoKeyword or EmitKeyword or FalseKeyword or FixedBytesType or ForKeyword or FunctionKeyword or HexLiteral or HexStringLiteral or Identifier or IfKeyword or MappingKeyword or NewKeyword or OpenBrace or OpenBracket or OpenParen or PayableKeyword or ReturnKeyword or SignedFixedType or SignedIntegerType or StringKeyword or TrueKeyword or TryKeyword or TypeKeyword or UnicodeStringLiteral or UnsignedFixedType or UnsignedIntegerType or WhileKeyword. - ╭─[crates/solidity/testing/snapshots/cst_output/Statement/throw/input.sol:1:1] - │ - 1 │ throw; - │ ───┬── - │ ╰──── Error occurred here. - ───╯ - -Tree: - - SKIPPED (Token): "throw;" # 0..6 diff --git a/crates/solidity/testing/snapshots/cst_output/Statement/throw/generated/0.8.0-failure.yml b/crates/solidity/testing/snapshots/cst_output/Statement/throw/generated/0.8.0-failure.yml deleted file mode 100644 index d4980c6f25..0000000000 --- a/crates/solidity/testing/snapshots/cst_output/Statement/throw/generated/0.8.0-failure.yml +++ /dev/null @@ -1,17 +0,0 @@ -# This file is generated automatically by infrastructure scripts. Please don't edit by hand. - -Source: > - 1 │ throw; │ 0..6 - -Errors: # 1 total - - > - Error: Expected AddressKeyword or AsciiStringLiteral or AssemblyKeyword or BoolKeyword or BreakKeyword or ContinueKeyword or DecimalLiteral or DeleteKeyword or DoKeyword or EmitKeyword or FalseKeyword or FixedBytesType or ForKeyword or FunctionKeyword or HexLiteral or HexStringLiteral or Identifier or IfKeyword or MappingKeyword or NewKeyword or OpenBrace or OpenBracket or OpenParen or PayableKeyword or ReturnKeyword or SignedFixedType or SignedIntegerType or StringKeyword or TrueKeyword or TryKeyword or TypeKeyword or UncheckedKeyword or UnicodeStringLiteral or UnsignedFixedType or UnsignedIntegerType or WhileKeyword. - ╭─[crates/solidity/testing/snapshots/cst_output/Statement/throw/input.sol:1:1] - │ - 1 │ throw; - │ ───┬── - │ ╰──── Error occurred here. - ───╯ - -Tree: - - SKIPPED (Token): "throw;" # 0..6 diff --git a/crates/solidity/testing/snapshots/cst_output/Statement/throw/generated/0.8.4-failure.yml b/crates/solidity/testing/snapshots/cst_output/Statement/throw/generated/0.8.4-failure.yml deleted file mode 100644 index 29a0d7262f..0000000000 --- a/crates/solidity/testing/snapshots/cst_output/Statement/throw/generated/0.8.4-failure.yml +++ /dev/null @@ -1,17 +0,0 @@ -# This file is generated automatically by infrastructure scripts. Please don't edit by hand. - -Source: > - 1 │ throw; │ 0..6 - -Errors: # 1 total - - > - Error: Expected AddressKeyword or AsciiStringLiteral or AssemblyKeyword or BoolKeyword or BreakKeyword or ContinueKeyword or DecimalLiteral or DeleteKeyword or DoKeyword or EmitKeyword or FalseKeyword or FixedBytesType or ForKeyword or FunctionKeyword or HexLiteral or HexStringLiteral or Identifier or IfKeyword or MappingKeyword or NewKeyword or OpenBrace or OpenBracket or OpenParen or PayableKeyword or ReturnKeyword or RevertKeyword or SignedFixedType or SignedIntegerType or StringKeyword or TrueKeyword or TryKeyword or TypeKeyword or UncheckedKeyword or UnicodeStringLiteral or UnsignedFixedType or UnsignedIntegerType or WhileKeyword. - ╭─[crates/solidity/testing/snapshots/cst_output/Statement/throw/input.sol:1:1] - │ - 1 │ throw; - │ ───┬── - │ ╰──── Error occurred here. - ───╯ - -Tree: - - SKIPPED (Token): "throw;" # 0..6 diff --git a/crates/solidity/testing/snapshots/cst_output/Statement/try_catch/generated/0.4.11-failure.yml b/crates/solidity/testing/snapshots/cst_output/Statement/try_catch/generated/0.4.11-failure.yml deleted file mode 100644 index 473895d262..0000000000 --- a/crates/solidity/testing/snapshots/cst_output/Statement/try_catch/generated/0.4.11-failure.yml +++ /dev/null @@ -1,17 +0,0 @@ -# This file is generated automatically by infrastructure scripts. Please don't edit by hand. - -Source: > - 1 │ try a.b() {} catch {} │ 0..21 - -Errors: # 1 total - - > - Error: Expected AddressKeyword or AsciiStringLiteral or AssemblyKeyword or BoolKeyword or BreakKeyword or ByteKeyword or ContinueKeyword or DecimalLiteral or DeleteKeyword or DoKeyword or FalseKeyword or FixedBytesType or ForKeyword or FunctionKeyword or HexLiteral or HexStringLiteral or Identifier or IfKeyword or MappingKeyword or NewKeyword or OpenBrace or OpenBracket or OpenParen or PayableKeyword or ReturnKeyword or SignedFixedType or SignedIntegerType or StringKeyword or ThrowKeyword or TrueKeyword or UnsignedFixedType or UnsignedIntegerType or VarKeyword or WhileKeyword. - ╭─[crates/solidity/testing/snapshots/cst_output/Statement/try_catch/input.sol:1:1] - │ - 1 │ try a.b() {} catch {} - │ ──────────┬────────── - │ ╰──────────── Error occurred here. - ───╯ - -Tree: - - SKIPPED (Token): "try a.b() {} catch {}" # 0..21 diff --git a/crates/solidity/testing/snapshots/cst_output/Statement/try_catch/generated/0.4.21-failure.yml b/crates/solidity/testing/snapshots/cst_output/Statement/try_catch/generated/0.4.21-failure.yml deleted file mode 100644 index d434e4f119..0000000000 --- a/crates/solidity/testing/snapshots/cst_output/Statement/try_catch/generated/0.4.21-failure.yml +++ /dev/null @@ -1,17 +0,0 @@ -# This file is generated automatically by infrastructure scripts. Please don't edit by hand. - -Source: > - 1 │ try a.b() {} catch {} │ 0..21 - -Errors: # 1 total - - > - Error: Expected AddressKeyword or AsciiStringLiteral or AssemblyKeyword or BoolKeyword or BreakKeyword or ByteKeyword or ContinueKeyword or DecimalLiteral or DeleteKeyword or DoKeyword or EmitKeyword or FalseKeyword or FixedBytesType or ForKeyword or FunctionKeyword or HexLiteral or HexStringLiteral or Identifier or IfKeyword or MappingKeyword or NewKeyword or OpenBrace or OpenBracket or OpenParen or PayableKeyword or ReturnKeyword or SignedFixedType or SignedIntegerType or StringKeyword or ThrowKeyword or TrueKeyword or UnsignedFixedType or UnsignedIntegerType or VarKeyword or WhileKeyword. - ╭─[crates/solidity/testing/snapshots/cst_output/Statement/try_catch/input.sol:1:1] - │ - 1 │ try a.b() {} catch {} - │ ──────────┬────────── - │ ╰──────────── Error occurred here. - ───╯ - -Tree: - - SKIPPED (Token): "try a.b() {} catch {}" # 0..21 diff --git a/crates/solidity/testing/snapshots/cst_output/Statement/try_catch/generated/0.5.0-failure.yml b/crates/solidity/testing/snapshots/cst_output/Statement/try_catch/generated/0.5.0-failure.yml deleted file mode 100644 index 116e446a66..0000000000 --- a/crates/solidity/testing/snapshots/cst_output/Statement/try_catch/generated/0.5.0-failure.yml +++ /dev/null @@ -1,17 +0,0 @@ -# This file is generated automatically by infrastructure scripts. Please don't edit by hand. - -Source: > - 1 │ try a.b() {} catch {} │ 0..21 - -Errors: # 1 total - - > - Error: Expected AddressKeyword or AsciiStringLiteral or AssemblyKeyword or BoolKeyword or BreakKeyword or ByteKeyword or ContinueKeyword or DecimalLiteral or DeleteKeyword or DoKeyword or EmitKeyword or FalseKeyword or FixedBytesType or ForKeyword or FunctionKeyword or HexLiteral or HexStringLiteral or Identifier or IfKeyword or MappingKeyword or NewKeyword or OpenBrace or OpenBracket or OpenParen or PayableKeyword or ReturnKeyword or SignedFixedType or SignedIntegerType or StringKeyword or TrueKeyword or UnsignedFixedType or UnsignedIntegerType or WhileKeyword. - ╭─[crates/solidity/testing/snapshots/cst_output/Statement/try_catch/input.sol:1:1] - │ - 1 │ try a.b() {} catch {} - │ ──────────┬────────── - │ ╰──────────── Error occurred here. - ───╯ - -Tree: - - SKIPPED (Token): "try a.b() {} catch {}" # 0..21 diff --git a/crates/solidity/testing/snapshots/cst_output/Statement/try_catch/generated/0.5.3-failure.yml b/crates/solidity/testing/snapshots/cst_output/Statement/try_catch/generated/0.5.3-failure.yml deleted file mode 100644 index 2aa9d55889..0000000000 --- a/crates/solidity/testing/snapshots/cst_output/Statement/try_catch/generated/0.5.3-failure.yml +++ /dev/null @@ -1,17 +0,0 @@ -# This file is generated automatically by infrastructure scripts. Please don't edit by hand. - -Source: > - 1 │ try a.b() {} catch {} │ 0..21 - -Errors: # 1 total - - > - Error: Expected AddressKeyword or AsciiStringLiteral or AssemblyKeyword or BoolKeyword or BreakKeyword or ByteKeyword or ContinueKeyword or DecimalLiteral or DeleteKeyword or DoKeyword or EmitKeyword or FalseKeyword or FixedBytesType or ForKeyword or FunctionKeyword or HexLiteral or HexStringLiteral or Identifier or IfKeyword or MappingKeyword or NewKeyword or OpenBrace or OpenBracket or OpenParen or PayableKeyword or ReturnKeyword or SignedFixedType or SignedIntegerType or StringKeyword or TrueKeyword or TypeKeyword or UnsignedFixedType or UnsignedIntegerType or WhileKeyword. - ╭─[crates/solidity/testing/snapshots/cst_output/Statement/try_catch/input.sol:1:1] - │ - 1 │ try a.b() {} catch {} - │ ──────────┬────────── - │ ╰──────────── Error occurred here. - ───╯ - -Tree: - - SKIPPED (Token): "try a.b() {} catch {}" # 0..21 diff --git a/crates/solidity/testing/snapshots/cst_output/Statement/try_catch/generated/0.6.0-success.yml b/crates/solidity/testing/snapshots/cst_output/Statement/try_catch/generated/0.6.0-success.yml deleted file mode 100644 index 6f71905779..0000000000 --- a/crates/solidity/testing/snapshots/cst_output/Statement/try_catch/generated/0.6.0-success.yml +++ /dev/null @@ -1,31 +0,0 @@ -# This file is generated automatically by infrastructure scripts. Please don't edit by hand. - -Source: > - 1 │ try a.b() {} catch {} │ 0..21 - -Errors: [] - -Tree: - - Statement (Rule): # 0..21 "try a.b() {} catch {}" - - TryStatement (Rule): # 0..21 "try a.b() {} catch {}" - - TryKeyword (Token): "try" # 0..3 - - Expression (Rule): # 3..9 " a.b()" - - FunctionCallExpression (Rule): # 3..9 " a.b()" - - Expression (Rule): # 3..7 " a.b" - - MemberAccessExpression (Rule): # 3..7 " a.b" - - Expression (Rule): # 3..5 " a" - - Identifier (Token): "a" # 4..5 - - Period (Token): "." # 5..6 - - Identifier (Token): "b" # 6..7 - - ArgumentsDeclaration (Rule): # 7..9 "()" - - OpenParen (Token): "(" # 7..8 - - CloseParen (Token): ")" # 8..9 - - Block (Rule): # 9..12 " {}" - - OpenBrace (Token): "{" # 10..11 - - CloseBrace (Token): "}" # 11..12 - - CatchClausesList (Rule): # 12..21 " catch {}" - - CatchClause (Rule): # 12..21 " catch {}" - - CatchKeyword (Token): "catch" # 13..18 - - Block (Rule): # 18..21 " {}" - - OpenBrace (Token): "{" # 19..20 - - CloseBrace (Token): "}" # 20..21 diff --git a/crates/solidity/testing/snapshots/cst_output/StatementsList/invalid_termination/generated/0.4.11-failure.yml b/crates/solidity/testing/snapshots/cst_output/StatementsList/invalid_termination/generated/0.4.11-failure.yml index 86839e2f26..db80aa56b1 100644 --- a/crates/solidity/testing/snapshots/cst_output/StatementsList/invalid_termination/generated/0.4.11-failure.yml +++ b/crates/solidity/testing/snapshots/cst_output/StatementsList/invalid_termination/generated/0.4.11-failure.yml @@ -25,37 +25,33 @@ Errors: # 2 total Tree: - StatementsList (Rule): # 0..43 "\nthrow invalid ;\n{ 1 * 2; 3 * b invalid; }\n" - - Statement (Rule): # 0..17 "\nthrow invalid ;\n" - - ThrowStatement (Rule): # 0..17 "\nthrow invalid ;\n" - - ThrowKeyword (Token): "throw" # 1..6 - - SKIPPED (Token): "invalid " # 7..15 - - Semicolon (Token): ";" # 15..16 - - Statement (Rule): # 17..43 "{ 1 * 2; 3 * b invalid; }\n" - - Block (Rule): # 17..43 "{ 1 * 2; 3 * b invalid; }\n" - - OpenBrace (Token): "{" # 17..18 - - StatementsList (Rule): # 18..40 " 1 * 2; 3 * b invalid;" - - Statement (Rule): # 18..25 " 1 * 2;" - - ExpressionStatement (Rule): # 18..25 " 1 * 2;" - - Expression (Rule): # 18..24 " 1 * 2" - - BinaryExpression (Rule): # 18..24 " 1 * 2" - - Expression (Rule): # 18..20 " 1" - - DecimalNumberExpression (Rule): # 18..20 " 1" - - DecimalLiteral (Token): "1" # 19..20 - - Asterisk (Token): "*" # 21..22 - - Expression (Rule): # 22..24 " 2" - - DecimalNumberExpression (Rule): # 22..24 " 2" - - DecimalLiteral (Token): "2" # 23..24 - - Semicolon (Token): ";" # 24..25 - - Statement (Rule): # 25..40 " 3 * b invalid;" - - ExpressionStatement (Rule): # 25..40 " 3 * b invalid;" - - Expression (Rule): # 25..31 " 3 * b" - - BinaryExpression (Rule): # 25..31 " 3 * b" - - Expression (Rule): # 25..27 " 3" - - DecimalNumberExpression (Rule): # 25..27 " 3" - - DecimalLiteral (Token): "3" # 26..27 - - Asterisk (Token): "*" # 28..29 - - Expression (Rule): # 29..31 " b" - - Identifier (Token): "b" # 30..31 - - SKIPPED (Token): "invalid" # 32..39 - - Semicolon (Token): ";" # 39..40 - - CloseBrace (Token): "}" # 41..42 + - ThrowStatement (Rule): # 0..17 "\nthrow invalid ;\n" + - ThrowKeyword (Token): "throw" # 1..6 + - SKIPPED (Token): "invalid " # 7..15 + - Semicolon (Token): ";" # 15..16 + - Block (Rule): # 17..43 "{ 1 * 2; 3 * b invalid; }\n" + - OpenBrace (Token): "{" # 17..18 + - StatementsList (Rule): # 18..40 " 1 * 2; 3 * b invalid;" + - ExpressionStatement (Rule): # 18..25 " 1 * 2;" + - Expression (Rule): # 18..24 " 1 * 2" + - BinaryExpression (Rule): # 18..24 " 1 * 2" + - Expression (Rule): # 18..20 " 1" + - DecimalNumberExpression (Rule): # 18..20 " 1" + - DecimalLiteral (Token): "1" # 19..20 + - Asterisk (Token): "*" # 21..22 + - Expression (Rule): # 22..24 " 2" + - DecimalNumberExpression (Rule): # 22..24 " 2" + - DecimalLiteral (Token): "2" # 23..24 + - Semicolon (Token): ";" # 24..25 + - ExpressionStatement (Rule): # 25..40 " 3 * b invalid;" + - Expression (Rule): # 25..31 " 3 * b" + - BinaryExpression (Rule): # 25..31 " 3 * b" + - Expression (Rule): # 25..27 " 3" + - DecimalNumberExpression (Rule): # 25..27 " 3" + - DecimalLiteral (Token): "3" # 26..27 + - Asterisk (Token): "*" # 28..29 + - Expression (Rule): # 29..31 " b" + - Identifier (Token): "b" # 30..31 + - SKIPPED (Token): "invalid" # 32..39 + - Semicolon (Token): ";" # 39..40 + - CloseBrace (Token): "}" # 41..42 diff --git a/crates/solidity/testing/snapshots/cst_output/Statement/throw/generated/0.4.11-success.yml b/crates/solidity/testing/snapshots/cst_output/ThrowStatement/throw/generated/0.4.11-success.yml similarity index 55% rename from crates/solidity/testing/snapshots/cst_output/Statement/throw/generated/0.4.11-success.yml rename to crates/solidity/testing/snapshots/cst_output/ThrowStatement/throw/generated/0.4.11-success.yml index e25713d2f5..0400d4347a 100644 --- a/crates/solidity/testing/snapshots/cst_output/Statement/throw/generated/0.4.11-success.yml +++ b/crates/solidity/testing/snapshots/cst_output/ThrowStatement/throw/generated/0.4.11-success.yml @@ -6,7 +6,6 @@ Source: > Errors: [] Tree: - - Statement (Rule): # 0..6 "throw;" - - ThrowStatement (Rule): # 0..6 "throw;" - - ThrowKeyword (Token): "throw" # 0..5 - - Semicolon (Token): ";" # 5..6 + - ThrowStatement (Rule): # 0..6 "throw;" + - ThrowKeyword (Token): "throw" # 0..5 + - Semicolon (Token): ";" # 5..6 diff --git a/crates/solidity/testing/snapshots/cst_output/ThrowStatement/throw/generated/0.5.0-failure.yml b/crates/solidity/testing/snapshots/cst_output/ThrowStatement/throw/generated/0.5.0-failure.yml new file mode 100644 index 0000000000..3aae55dfa6 --- /dev/null +++ b/crates/solidity/testing/snapshots/cst_output/ThrowStatement/throw/generated/0.5.0-failure.yml @@ -0,0 +1,17 @@ +# This file is generated automatically by infrastructure scripts. Please don't edit by hand. + +Source: > + 1 │ throw; │ 0..6 + +Errors: # 1 total + - > + Error: Expected end of file. + ╭─[crates/solidity/testing/snapshots/cst_output/ThrowStatement/throw/input.sol:1:1] + │ + 1 │ throw; + │ ───┬── + │ ╰──── Error occurred here. + ───╯ + +Tree: + - SKIPPED (Token): "throw;" # 0..6 diff --git a/crates/solidity/testing/snapshots/cst_output/Statement/throw/input.sol b/crates/solidity/testing/snapshots/cst_output/ThrowStatement/throw/input.sol similarity index 100% rename from crates/solidity/testing/snapshots/cst_output/Statement/throw/input.sol rename to crates/solidity/testing/snapshots/cst_output/ThrowStatement/throw/input.sol diff --git a/crates/solidity/testing/snapshots/cst_output/TryStatement/try_catch/generated/0.4.11-failure.yml b/crates/solidity/testing/snapshots/cst_output/TryStatement/try_catch/generated/0.4.11-failure.yml new file mode 100644 index 0000000000..182c263b31 --- /dev/null +++ b/crates/solidity/testing/snapshots/cst_output/TryStatement/try_catch/generated/0.4.11-failure.yml @@ -0,0 +1,17 @@ +# This file is generated automatically by infrastructure scripts. Please don't edit by hand. + +Source: > + 1 │ try a.b() {} catch {} │ 0..21 + +Errors: # 1 total + - > + Error: Expected end of file. + ╭─[crates/solidity/testing/snapshots/cst_output/TryStatement/try_catch/input.sol:1:1] + │ + 1 │ try a.b() {} catch {} + │ ──────────┬────────── + │ ╰──────────── Error occurred here. + ───╯ + +Tree: + - SKIPPED (Token): "try a.b() {} catch {}" # 0..21 diff --git a/crates/solidity/testing/snapshots/cst_output/TryStatement/try_catch/generated/0.6.0-success.yml b/crates/solidity/testing/snapshots/cst_output/TryStatement/try_catch/generated/0.6.0-success.yml new file mode 100644 index 0000000000..66f8544953 --- /dev/null +++ b/crates/solidity/testing/snapshots/cst_output/TryStatement/try_catch/generated/0.6.0-success.yml @@ -0,0 +1,30 @@ +# This file is generated automatically by infrastructure scripts. Please don't edit by hand. + +Source: > + 1 │ try a.b() {} catch {} │ 0..21 + +Errors: [] + +Tree: + - TryStatement (Rule): # 0..21 "try a.b() {} catch {}" + - TryKeyword (Token): "try" # 0..3 + - Expression (Rule): # 3..9 " a.b()" + - FunctionCallExpression (Rule): # 3..9 " a.b()" + - Expression (Rule): # 3..7 " a.b" + - MemberAccessExpression (Rule): # 3..7 " a.b" + - Expression (Rule): # 3..5 " a" + - Identifier (Token): "a" # 4..5 + - Period (Token): "." # 5..6 + - Identifier (Token): "b" # 6..7 + - ArgumentsDeclaration (Rule): # 7..9 "()" + - OpenParen (Token): "(" # 7..8 + - CloseParen (Token): ")" # 8..9 + - Block (Rule): # 9..12 " {}" + - OpenBrace (Token): "{" # 10..11 + - CloseBrace (Token): "}" # 11..12 + - CatchClausesList (Rule): # 12..21 " catch {}" + - CatchClause (Rule): # 12..21 " catch {}" + - CatchKeyword (Token): "catch" # 13..18 + - Block (Rule): # 18..21 " {}" + - OpenBrace (Token): "{" # 19..20 + - CloseBrace (Token): "}" # 20..21 diff --git a/crates/solidity/testing/snapshots/cst_output/Statement/try_catch/input.sol b/crates/solidity/testing/snapshots/cst_output/TryStatement/try_catch/input.sol similarity index 100% rename from crates/solidity/testing/snapshots/cst_output/Statement/try_catch/input.sol rename to crates/solidity/testing/snapshots/cst_output/TryStatement/try_catch/input.sol diff --git a/crates/solidity/testing/snapshots/cst_output/YulBlock/function_def/generated/0.4.11-success.yml b/crates/solidity/testing/snapshots/cst_output/YulBlock/function_def/generated/0.4.11-success.yml index fe9a3141f3..ebeb8b6726 100644 --- a/crates/solidity/testing/snapshots/cst_output/YulBlock/function_def/generated/0.4.11-success.yml +++ b/crates/solidity/testing/snapshots/cst_output/YulBlock/function_def/generated/0.4.11-success.yml @@ -13,44 +13,42 @@ Tree: - YulBlock (Rule): # 0..62 "{\n\tfunction mult(a, b) -> result {\n\t\tresult := mul..." - OpenBrace (Token): "{" # 0..1 - YulStatementsList (Rule): # 2..60 "\tfunction mult(a, b) -> result {\n\t\tresult := mul(a..." - - YulStatement (Rule): # 2..60 "\tfunction mult(a, b) -> result {\n\t\tresult := mul(a..." - - YulFunctionDefinition (Rule): # 2..60 "\tfunction mult(a, b) -> result {\n\t\tresult := mul(a..." - - FunctionKeyword (Token): "function" # 3..11 - - YulIdentifier (Token): "mult" # 12..16 - - YulParametersDeclaration (Rule): # 16..22 "(a, b)" - - OpenParen (Token): "(" # 16..17 - - YulIdentifiersList (Rule): # 17..21 "a, b" - - YulIdentifier (Token): "a" # 17..18 - - Comma (Token): "," # 18..19 - - YulIdentifier (Token): "b" # 20..21 - - CloseParen (Token): ")" # 21..22 - - YulReturnsDeclaration (Rule): # 22..32 " -> result" - - MinusGreaterThan (Token): "->" # 23..25 - - YulIdentifiersList (Rule): # 25..32 " result" - - YulIdentifier (Token): "result" # 26..32 - - YulBlock (Rule): # 32..60 " {\n\t\tresult := mul(a, b)\n\t}\n" - - OpenBrace (Token): "{" # 33..34 - - YulStatementsList (Rule): # 35..57 "\t\tresult := mul(a, b)\n" - - YulStatement (Rule): # 35..57 "\t\tresult := mul(a, b)\n" - - YulAssignmentStatement (Rule): # 35..57 "\t\tresult := mul(a, b)\n" - - YulIdentifierPathsList (Rule): # 35..43 "\t\tresult" - - YulIdentifierPath (Rule): # 35..43 "\t\tresult" - - YulIdentifier (Token): "result" # 37..43 - - ColonEqual (Token): ":=" # 44..46 - - YulExpression (Rule): # 46..57 " mul(a, b)\n" - - YulFunctionCallExpression (Rule): # 46..57 " mul(a, b)\n" - - YulExpression (Rule): # 46..50 " mul" - - YulIdentifierPath (Rule): # 46..50 " mul" - - YulIdentifier (Token): "mul" # 47..50 - - OpenParen (Token): "(" # 50..51 - - YulExpressionsList (Rule): # 51..55 "a, b" - - YulExpression (Rule): # 51..52 "a" - - YulIdentifierPath (Rule): # 51..52 "a" - - YulIdentifier (Token): "a" # 51..52 - - Comma (Token): "," # 52..53 - - YulExpression (Rule): # 53..55 " b" - - YulIdentifierPath (Rule): # 53..55 " b" - - YulIdentifier (Token): "b" # 54..55 - - CloseParen (Token): ")" # 55..56 - - CloseBrace (Token): "}" # 58..59 + - YulFunctionDefinition (Rule): # 2..60 "\tfunction mult(a, b) -> result {\n\t\tresult := mul(a..." + - FunctionKeyword (Token): "function" # 3..11 + - YulIdentifier (Token): "mult" # 12..16 + - YulParametersDeclaration (Rule): # 16..22 "(a, b)" + - OpenParen (Token): "(" # 16..17 + - YulIdentifiersList (Rule): # 17..21 "a, b" + - YulIdentifier (Token): "a" # 17..18 + - Comma (Token): "," # 18..19 + - YulIdentifier (Token): "b" # 20..21 + - CloseParen (Token): ")" # 21..22 + - YulReturnsDeclaration (Rule): # 22..32 " -> result" + - MinusGreaterThan (Token): "->" # 23..25 + - YulIdentifiersList (Rule): # 25..32 " result" + - YulIdentifier (Token): "result" # 26..32 + - YulBlock (Rule): # 32..60 " {\n\t\tresult := mul(a, b)\n\t}\n" + - OpenBrace (Token): "{" # 33..34 + - YulStatementsList (Rule): # 35..57 "\t\tresult := mul(a, b)\n" + - YulAssignmentStatement (Rule): # 35..57 "\t\tresult := mul(a, b)\n" + - YulIdentifierPathsList (Rule): # 35..43 "\t\tresult" + - YulIdentifierPath (Rule): # 35..43 "\t\tresult" + - YulIdentifier (Token): "result" # 37..43 + - ColonEqual (Token): ":=" # 44..46 + - YulExpression (Rule): # 46..57 " mul(a, b)\n" + - YulFunctionCallExpression (Rule): # 46..57 " mul(a, b)\n" + - YulExpression (Rule): # 46..50 " mul" + - YulIdentifierPath (Rule): # 46..50 " mul" + - YulIdentifier (Token): "mul" # 47..50 + - OpenParen (Token): "(" # 50..51 + - YulExpressionsList (Rule): # 51..55 "a, b" + - YulExpression (Rule): # 51..52 "a" + - YulIdentifierPath (Rule): # 51..52 "a" + - YulIdentifier (Token): "a" # 51..52 + - Comma (Token): "," # 52..53 + - YulExpression (Rule): # 53..55 " b" + - YulIdentifierPath (Rule): # 53..55 " b" + - YulIdentifier (Token): "b" # 54..55 + - CloseParen (Token): ")" # 55..56 + - CloseBrace (Token): "}" # 58..59 - CloseBrace (Token): "}" # 60..61 diff --git a/crates/solidity/testing/snapshots/cst_output/YulBlock/ignore_unknown_delim/generated/0.4.11-failure.yml b/crates/solidity/testing/snapshots/cst_output/YulBlock/ignore_unknown_delim/generated/0.4.11-failure.yml index c500e1419c..87c57fcf8f 100644 --- a/crates/solidity/testing/snapshots/cst_output/YulBlock/ignore_unknown_delim/generated/0.4.11-failure.yml +++ b/crates/solidity/testing/snapshots/cst_output/YulBlock/ignore_unknown_delim/generated/0.4.11-failure.yml @@ -23,49 +23,46 @@ Tree: - YulBlock (Rule): # 0..85 "{\n\tfunction mult(a, b) -> result {\n\t\tresult := mul..." - OpenBrace (Token): "{" # 0..1 - YulStatementsList (Rule): # 2..83 "\tfunction mult(a, b) -> result {\n\t\tresult := mul(a..." - - YulStatement (Rule): # 2..83 "\tfunction mult(a, b) -> result {\n\t\tresult := mul(a..." - - YulFunctionDefinition (Rule): # 2..83 "\tfunction mult(a, b) -> result {\n\t\tresult := mul(a..." - - FunctionKeyword (Token): "function" # 3..11 - - YulIdentifier (Token): "mult" # 12..16 - - YulParametersDeclaration (Rule): # 16..22 "(a, b)" - - OpenParen (Token): "(" # 16..17 - - YulIdentifiersList (Rule): # 17..21 "a, b" - - YulIdentifier (Token): "a" # 17..18 - - Comma (Token): "," # 18..19 - - YulIdentifier (Token): "b" # 20..21 - - CloseParen (Token): ")" # 21..22 - - YulReturnsDeclaration (Rule): # 22..32 " -> result" - - MinusGreaterThan (Token): "->" # 23..25 - - YulIdentifiersList (Rule): # 25..32 " result" - - YulIdentifier (Token): "result" # 26..32 - - YulBlock (Rule): # 32..83 " {\n\t\tresult := mul(a, b)\n\t\tresult := [mul(a, b)\n\t}..." - - OpenBrace (Token): "{" # 33..34 - - YulStatementsList (Rule): # 35..65 "\t\tresult := mul(a, b)\n\t\tresult" - - YulStatement (Rule): # 35..57 "\t\tresult := mul(a, b)\n" - - YulAssignmentStatement (Rule): # 35..57 "\t\tresult := mul(a, b)\n" - - YulIdentifierPathsList (Rule): # 35..43 "\t\tresult" - - YulIdentifierPath (Rule): # 35..43 "\t\tresult" - - YulIdentifier (Token): "result" # 37..43 - - ColonEqual (Token): ":=" # 44..46 - - YulExpression (Rule): # 46..57 " mul(a, b)\n" - - YulFunctionCallExpression (Rule): # 46..57 " mul(a, b)\n" - - YulExpression (Rule): # 46..50 " mul" - - YulIdentifierPath (Rule): # 46..50 " mul" - - YulIdentifier (Token): "mul" # 47..50 - - OpenParen (Token): "(" # 50..51 - - YulExpressionsList (Rule): # 51..55 "a, b" - - YulExpression (Rule): # 51..52 "a" - - YulIdentifierPath (Rule): # 51..52 "a" - - YulIdentifier (Token): "a" # 51..52 - - Comma (Token): "," # 52..53 - - YulExpression (Rule): # 53..55 " b" - - YulIdentifierPath (Rule): # 53..55 " b" - - YulIdentifier (Token): "b" # 54..55 - - CloseParen (Token): ")" # 55..56 - - YulStatement (Rule): # 57..65 "\t\tresult" - - YulExpression (Rule): # 57..65 "\t\tresult" - - YulIdentifierPath (Rule): # 57..65 "\t\tresult" - - YulIdentifier (Token): "result" # 59..65 - - SKIPPED (Token): ":= [mul(a, b)\n\t" # 66..81 - - CloseBrace (Token): "}" # 81..82 + - YulFunctionDefinition (Rule): # 2..83 "\tfunction mult(a, b) -> result {\n\t\tresult := mul(a..." + - FunctionKeyword (Token): "function" # 3..11 + - YulIdentifier (Token): "mult" # 12..16 + - YulParametersDeclaration (Rule): # 16..22 "(a, b)" + - OpenParen (Token): "(" # 16..17 + - YulIdentifiersList (Rule): # 17..21 "a, b" + - YulIdentifier (Token): "a" # 17..18 + - Comma (Token): "," # 18..19 + - YulIdentifier (Token): "b" # 20..21 + - CloseParen (Token): ")" # 21..22 + - YulReturnsDeclaration (Rule): # 22..32 " -> result" + - MinusGreaterThan (Token): "->" # 23..25 + - YulIdentifiersList (Rule): # 25..32 " result" + - YulIdentifier (Token): "result" # 26..32 + - YulBlock (Rule): # 32..83 " {\n\t\tresult := mul(a, b)\n\t\tresult := [mul(a, b)\n\t}..." + - OpenBrace (Token): "{" # 33..34 + - YulStatementsList (Rule): # 35..65 "\t\tresult := mul(a, b)\n\t\tresult" + - YulAssignmentStatement (Rule): # 35..57 "\t\tresult := mul(a, b)\n" + - YulIdentifierPathsList (Rule): # 35..43 "\t\tresult" + - YulIdentifierPath (Rule): # 35..43 "\t\tresult" + - YulIdentifier (Token): "result" # 37..43 + - ColonEqual (Token): ":=" # 44..46 + - YulExpression (Rule): # 46..57 " mul(a, b)\n" + - YulFunctionCallExpression (Rule): # 46..57 " mul(a, b)\n" + - YulExpression (Rule): # 46..50 " mul" + - YulIdentifierPath (Rule): # 46..50 " mul" + - YulIdentifier (Token): "mul" # 47..50 + - OpenParen (Token): "(" # 50..51 + - YulExpressionsList (Rule): # 51..55 "a, b" + - YulExpression (Rule): # 51..52 "a" + - YulIdentifierPath (Rule): # 51..52 "a" + - YulIdentifier (Token): "a" # 51..52 + - Comma (Token): "," # 52..53 + - YulExpression (Rule): # 53..55 " b" + - YulIdentifierPath (Rule): # 53..55 " b" + - YulIdentifier (Token): "b" # 54..55 + - CloseParen (Token): ")" # 55..56 + - YulExpression (Rule): # 57..65 "\t\tresult" + - YulIdentifierPath (Rule): # 57..65 "\t\tresult" + - YulIdentifier (Token): "result" # 59..65 + - SKIPPED (Token): ":= [mul(a, b)\n\t" # 66..81 + - CloseBrace (Token): "}" # 81..82 - CloseBrace (Token): "}" # 83..84 diff --git a/crates/solidity/testing/snapshots/cst_output/YulBlock/ignore_unknown_delim/generated/0.6.0-failure.yml b/crates/solidity/testing/snapshots/cst_output/YulBlock/ignore_unknown_delim/generated/0.6.0-failure.yml index 39dab865c2..7a6fc2ac4e 100644 --- a/crates/solidity/testing/snapshots/cst_output/YulBlock/ignore_unknown_delim/generated/0.6.0-failure.yml +++ b/crates/solidity/testing/snapshots/cst_output/YulBlock/ignore_unknown_delim/generated/0.6.0-failure.yml @@ -23,49 +23,46 @@ Tree: - YulBlock (Rule): # 0..85 "{\n\tfunction mult(a, b) -> result {\n\t\tresult := mul..." - OpenBrace (Token): "{" # 0..1 - YulStatementsList (Rule): # 2..83 "\tfunction mult(a, b) -> result {\n\t\tresult := mul(a..." - - YulStatement (Rule): # 2..83 "\tfunction mult(a, b) -> result {\n\t\tresult := mul(a..." - - YulFunctionDefinition (Rule): # 2..83 "\tfunction mult(a, b) -> result {\n\t\tresult := mul(a..." - - FunctionKeyword (Token): "function" # 3..11 - - YulIdentifier (Token): "mult" # 12..16 - - YulParametersDeclaration (Rule): # 16..22 "(a, b)" - - OpenParen (Token): "(" # 16..17 - - YulIdentifiersList (Rule): # 17..21 "a, b" - - YulIdentifier (Token): "a" # 17..18 - - Comma (Token): "," # 18..19 - - YulIdentifier (Token): "b" # 20..21 - - CloseParen (Token): ")" # 21..22 - - YulReturnsDeclaration (Rule): # 22..32 " -> result" - - MinusGreaterThan (Token): "->" # 23..25 - - YulIdentifiersList (Rule): # 25..32 " result" - - YulIdentifier (Token): "result" # 26..32 - - YulBlock (Rule): # 32..83 " {\n\t\tresult := mul(a, b)\n\t\tresult := [mul(a, b)\n\t}..." - - OpenBrace (Token): "{" # 33..34 - - YulStatementsList (Rule): # 35..65 "\t\tresult := mul(a, b)\n\t\tresult" - - YulStatement (Rule): # 35..57 "\t\tresult := mul(a, b)\n" - - YulAssignmentStatement (Rule): # 35..57 "\t\tresult := mul(a, b)\n" - - YulIdentifierPathsList (Rule): # 35..43 "\t\tresult" - - YulIdentifierPath (Rule): # 35..43 "\t\tresult" - - YulIdentifier (Token): "result" # 37..43 - - ColonEqual (Token): ":=" # 44..46 - - YulExpression (Rule): # 46..57 " mul(a, b)\n" - - YulFunctionCallExpression (Rule): # 46..57 " mul(a, b)\n" - - YulExpression (Rule): # 46..50 " mul" - - YulIdentifierPath (Rule): # 46..50 " mul" - - YulIdentifier (Token): "mul" # 47..50 - - OpenParen (Token): "(" # 50..51 - - YulExpressionsList (Rule): # 51..55 "a, b" - - YulExpression (Rule): # 51..52 "a" - - YulIdentifierPath (Rule): # 51..52 "a" - - YulIdentifier (Token): "a" # 51..52 - - Comma (Token): "," # 52..53 - - YulExpression (Rule): # 53..55 " b" - - YulIdentifierPath (Rule): # 53..55 " b" - - YulIdentifier (Token): "b" # 54..55 - - CloseParen (Token): ")" # 55..56 - - YulStatement (Rule): # 57..65 "\t\tresult" - - YulExpression (Rule): # 57..65 "\t\tresult" - - YulIdentifierPath (Rule): # 57..65 "\t\tresult" - - YulIdentifier (Token): "result" # 59..65 - - SKIPPED (Token): ":= [mul(a, b)\n\t" # 66..81 - - CloseBrace (Token): "}" # 81..82 + - YulFunctionDefinition (Rule): # 2..83 "\tfunction mult(a, b) -> result {\n\t\tresult := mul(a..." + - FunctionKeyword (Token): "function" # 3..11 + - YulIdentifier (Token): "mult" # 12..16 + - YulParametersDeclaration (Rule): # 16..22 "(a, b)" + - OpenParen (Token): "(" # 16..17 + - YulIdentifiersList (Rule): # 17..21 "a, b" + - YulIdentifier (Token): "a" # 17..18 + - Comma (Token): "," # 18..19 + - YulIdentifier (Token): "b" # 20..21 + - CloseParen (Token): ")" # 21..22 + - YulReturnsDeclaration (Rule): # 22..32 " -> result" + - MinusGreaterThan (Token): "->" # 23..25 + - YulIdentifiersList (Rule): # 25..32 " result" + - YulIdentifier (Token): "result" # 26..32 + - YulBlock (Rule): # 32..83 " {\n\t\tresult := mul(a, b)\n\t\tresult := [mul(a, b)\n\t}..." + - OpenBrace (Token): "{" # 33..34 + - YulStatementsList (Rule): # 35..65 "\t\tresult := mul(a, b)\n\t\tresult" + - YulAssignmentStatement (Rule): # 35..57 "\t\tresult := mul(a, b)\n" + - YulIdentifierPathsList (Rule): # 35..43 "\t\tresult" + - YulIdentifierPath (Rule): # 35..43 "\t\tresult" + - YulIdentifier (Token): "result" # 37..43 + - ColonEqual (Token): ":=" # 44..46 + - YulExpression (Rule): # 46..57 " mul(a, b)\n" + - YulFunctionCallExpression (Rule): # 46..57 " mul(a, b)\n" + - YulExpression (Rule): # 46..50 " mul" + - YulIdentifierPath (Rule): # 46..50 " mul" + - YulIdentifier (Token): "mul" # 47..50 + - OpenParen (Token): "(" # 50..51 + - YulExpressionsList (Rule): # 51..55 "a, b" + - YulExpression (Rule): # 51..52 "a" + - YulIdentifierPath (Rule): # 51..52 "a" + - YulIdentifier (Token): "a" # 51..52 + - Comma (Token): "," # 52..53 + - YulExpression (Rule): # 53..55 " b" + - YulIdentifierPath (Rule): # 53..55 " b" + - YulIdentifier (Token): "b" # 54..55 + - CloseParen (Token): ")" # 55..56 + - YulExpression (Rule): # 57..65 "\t\tresult" + - YulIdentifierPath (Rule): # 57..65 "\t\tresult" + - YulIdentifier (Token): "result" # 59..65 + - SKIPPED (Token): ":= [mul(a, b)\n\t" # 66..81 + - CloseBrace (Token): "}" # 81..82 - CloseBrace (Token): "}" # 83..84 diff --git a/crates/solidity/testing/snapshots/cst_output/YulLeaveStatement/leave/generated/0.4.11-failure.yml b/crates/solidity/testing/snapshots/cst_output/YulLeaveStatement/leave/generated/0.4.11-failure.yml new file mode 100644 index 0000000000..219ff5585d --- /dev/null +++ b/crates/solidity/testing/snapshots/cst_output/YulLeaveStatement/leave/generated/0.4.11-failure.yml @@ -0,0 +1,17 @@ +# This file is generated automatically by infrastructure scripts. Please don't edit by hand. + +Source: > + 1 │ leave │ 0..5 + +Errors: # 1 total + - > + Error: Expected end of file. + ╭─[crates/solidity/testing/snapshots/cst_output/YulLeaveStatement/leave/input.sol:1:1] + │ + 1 │ leave + │ ──┬── + │ ╰──── Error occurred here. + ───╯ + +Tree: + - SKIPPED (Token): "leave" # 0..5 diff --git a/crates/solidity/testing/snapshots/cst_output/YulStatement/leave/generated/0.6.0-success.yml b/crates/solidity/testing/snapshots/cst_output/YulLeaveStatement/leave/generated/0.6.0-success.yml similarity index 61% rename from crates/solidity/testing/snapshots/cst_output/YulStatement/leave/generated/0.6.0-success.yml rename to crates/solidity/testing/snapshots/cst_output/YulLeaveStatement/leave/generated/0.6.0-success.yml index c8bb0d30e7..5107cf5f6e 100644 --- a/crates/solidity/testing/snapshots/cst_output/YulStatement/leave/generated/0.6.0-success.yml +++ b/crates/solidity/testing/snapshots/cst_output/YulLeaveStatement/leave/generated/0.6.0-success.yml @@ -6,6 +6,5 @@ Source: > Errors: [] Tree: - - YulStatement (Rule): # 0..5 "leave" - - YulLeaveStatement (Rule): # 0..5 "leave" - - LeaveKeyword (Token): "leave" # 0..5 + - YulLeaveStatement (Rule): # 0..5 "leave" + - LeaveKeyword (Token): "leave" # 0..5 diff --git a/crates/solidity/testing/snapshots/cst_output/YulStatement/leave/input.sol b/crates/solidity/testing/snapshots/cst_output/YulLeaveStatement/leave/input.sol similarity index 100% rename from crates/solidity/testing/snapshots/cst_output/YulStatement/leave/input.sol rename to crates/solidity/testing/snapshots/cst_output/YulLeaveStatement/leave/input.sol diff --git a/crates/solidity/testing/snapshots/cst_output/YulStatement/leave/generated/0.4.11-success.yml b/crates/solidity/testing/snapshots/cst_output/YulStatement/leave/generated/0.4.11-success.yml deleted file mode 100644 index 8d078b977c..0000000000 --- a/crates/solidity/testing/snapshots/cst_output/YulStatement/leave/generated/0.4.11-success.yml +++ /dev/null @@ -1,12 +0,0 @@ -# This file is generated automatically by infrastructure scripts. Please don't edit by hand. - -Source: > - 1 │ leave │ 0..5 - -Errors: [] - -Tree: - - YulStatement (Rule): # 0..5 "leave" - - YulExpression (Rule): # 0..5 "leave" - - YulIdentifierPath (Rule): # 0..5 "leave" - - YulIdentifier (Token): "leave" # 0..5