From 7b9b478d8b356b247d7f0aa6ae274de0b9d32da2 Mon Sep 17 00:00:00 2001 From: Beta Ziliani Date: Sat, 23 Nov 2024 00:54:09 -0300 Subject: [PATCH] Adding `jump` and `jumpi` instructions (#1154) Solves #1151 EDIT: I mimicked the logic for `iszero`. My understanding was that the failing test case is ensuring that the keyword is reserved, and the successful case that it can indeed be called. --- .changeset/strong-falcons-hope.md | 5 ++++ .cspell.json | 1 + .../inputs/language/src/definition.rs | 18 +++++++++++ .../cargo/crate/generated/public_api.txt | 2 ++ .../generated/cst/generated/terminal_kind.rs | 2 ++ .../src/generated/parser/generated/parser.rs | 30 +++++++++++++++++++ .../generated/yul_function_call_expression.rs | 10 +++++++ .../yul_variable_assignment_statement.rs | 10 +++++++ .../src/generated/interface/generated/cst.wit | 2 ++ .../nomic-foundation-slang-cst.d.ts | 2 ++ .../outputs/spec/generated/grammar.ebnf | 8 +++++ .../public/06-yul/02-yul-expressions.md | 2 +- .../public/06-yul/03-yul-keywords.md | 12 ++++++++ .../generated/0.4.11-failure.yml | 2 +- .../generated/0.4.12-failure.yml | 2 +- .../generated/0.4.11-failure.yml | 2 +- .../generated/0.4.12-failure.yml | 2 +- .../generated/0.4.11-failure.yml | 2 +- .../generated/0.4.12-failure.yml | 2 +- .../generated/0.4.11-success.yml | 14 +++++++++ .../built_in_jump/generated/0.5.0-failure.yml | 17 +++++++++++ .../generated/0.8.18-failure.yml | 17 +++++++++++ .../generated/0.8.24-failure.yml | 17 +++++++++++ .../built_in_jump/generated/0.8.7-failure.yml | 17 +++++++++++ .../built_in_jump/input.sol | 1 + .../generated/0.4.11-success.yml | 14 +++++++++ .../generated/0.5.0-failure.yml | 17 +++++++++++ .../generated/0.8.18-failure.yml | 17 +++++++++++ .../generated/0.8.24-failure.yml | 17 +++++++++++ .../generated/0.8.7-failure.yml | 17 +++++++++++ .../built_in_jumpi/input.sol | 1 + .../generated/0.4.11-failure.yml | 17 +++++++++++ .../identifier_jump/input.sol | 1 + .../generated/0.4.11-failure.yml | 17 +++++++++++ .../identifier_jumpi/input.sol | 1 + 35 files changed, 311 insertions(+), 7 deletions(-) create mode 100644 .changeset/strong-falcons-hope.md create mode 100644 crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jump/generated/0.4.11-success.yml create mode 100644 crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jump/generated/0.5.0-failure.yml create mode 100644 crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jump/generated/0.8.18-failure.yml create mode 100644 crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jump/generated/0.8.24-failure.yml create mode 100644 crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jump/generated/0.8.7-failure.yml create mode 100644 crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jump/input.sol create mode 100644 crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jumpi/generated/0.4.11-success.yml create mode 100644 crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jumpi/generated/0.5.0-failure.yml create mode 100644 crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jumpi/generated/0.8.18-failure.yml create mode 100644 crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jumpi/generated/0.8.24-failure.yml create mode 100644 crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jumpi/generated/0.8.7-failure.yml create mode 100644 crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jumpi/input.sol create mode 100644 crates/solidity/testing/snapshots/cst_output/YulVariableAssignmentStatement/identifier_jump/generated/0.4.11-failure.yml create mode 100644 crates/solidity/testing/snapshots/cst_output/YulVariableAssignmentStatement/identifier_jump/input.sol create mode 100644 crates/solidity/testing/snapshots/cst_output/YulVariableAssignmentStatement/identifier_jumpi/generated/0.4.11-failure.yml create mode 100644 crates/solidity/testing/snapshots/cst_output/YulVariableAssignmentStatement/identifier_jumpi/input.sol diff --git a/.changeset/strong-falcons-hope.md b/.changeset/strong-falcons-hope.md new file mode 100644 index 0000000000..f8e5c7aa3e --- /dev/null +++ b/.changeset/strong-falcons-hope.md @@ -0,0 +1,5 @@ +--- +"@nomicfoundation/slang": patch +--- + +Adding support for deprecated keywords `jump` and `jumpi` diff --git a/.cspell.json b/.cspell.json index e2acc93fe0..4c3b43b28c 100644 --- a/.cspell.json +++ b/.cspell.json @@ -14,6 +14,7 @@ "inheritdoc", "instanceof", "ipfs", + "jumpi", "metaslang", "mkdocs", "napi", diff --git a/crates/solidity/inputs/language/src/definition.rs b/crates/solidity/inputs/language/src/definition.rs index 15a61a65da..73648c1145 100644 --- a/crates/solidity/inputs/language/src/definition.rs +++ b/crates/solidity/inputs/language/src/definition.rs @@ -4439,6 +4439,8 @@ codegen_language_macros::compile!(Language( EnumVariant(reference = YulGtKeyword), EnumVariant(reference = YulInvalidKeyword), EnumVariant(reference = YulIsZeroKeyword), + EnumVariant(reference = YulJumpKeyword, enabled = Till("0.5.0")), + EnumVariant(reference = YulJumpiKeyword, enabled = Till("0.5.0")), EnumVariant(reference = YulLog0Keyword), EnumVariant(reference = YulLog1Keyword), EnumVariant(reference = YulLog2Keyword), @@ -5553,6 +5555,22 @@ codegen_language_macros::compile!(Language( identifier = YulIdentifier, definitions = [KeywordDefinition(value = Atom("iszero"))] ), + Keyword( + name = YulJumpKeyword, + identifier = YulIdentifier, + definitions = [KeywordDefinition( + enabled = Till("0.5.0"), + value = Atom("jump") + )] + ), + Keyword( + name = YulJumpiKeyword, + identifier = YulIdentifier, + definitions = [KeywordDefinition( + enabled = Till("0.5.0"), + value = Atom("jumpi") + )] + ), Keyword( name = YulKeccak256Keyword, identifier = YulIdentifier, diff --git a/crates/solidity/outputs/cargo/crate/generated/public_api.txt b/crates/solidity/outputs/cargo/crate/generated/public_api.txt index 5169e9aab8..55658f8ea8 100644 --- a/crates/solidity/outputs/cargo/crate/generated/public_api.txt +++ b/crates/solidity/outputs/cargo/crate/generated/public_api.txt @@ -722,6 +722,8 @@ pub slang_solidity::cst::TerminalKind::YulInternalKeyword pub slang_solidity::cst::TerminalKind::YulInvalidKeyword pub slang_solidity::cst::TerminalKind::YulIsKeyword pub slang_solidity::cst::TerminalKind::YulIsZeroKeyword +pub slang_solidity::cst::TerminalKind::YulJumpKeyword +pub slang_solidity::cst::TerminalKind::YulJumpiKeyword pub slang_solidity::cst::TerminalKind::YulKeccak256Keyword pub slang_solidity::cst::TerminalKind::YulLeaveKeyword pub slang_solidity::cst::TerminalKind::YulLetKeyword diff --git a/crates/solidity/outputs/cargo/crate/src/generated/cst/generated/terminal_kind.rs b/crates/solidity/outputs/cargo/crate/src/generated/cst/generated/terminal_kind.rs index 5e66d01a3d..1bae6efad4 100644 --- a/crates/solidity/outputs/cargo/crate/src/generated/cst/generated/terminal_kind.rs +++ b/crates/solidity/outputs/cargo/crate/src/generated/cst/generated/terminal_kind.rs @@ -296,6 +296,8 @@ pub enum TerminalKind { YulInvalidKeyword, YulIsKeyword, YulIsZeroKeyword, + YulJumpKeyword, + YulJumpiKeyword, YulKeccak256Keyword, YulLeaveKeyword, YulLetKeyword, diff --git a/crates/solidity/outputs/cargo/crate/src/generated/parser/generated/parser.rs b/crates/solidity/outputs/cargo/crate/src/generated/parser/generated/parser.rs index 4daf7c6f0c..79c09cc669 100644 --- a/crates/solidity/outputs/cargo/crate/src/generated/parser/generated/parser.rs +++ b/crates/solidity/outputs/cargo/crate/src/generated/parser/generated/parser.rs @@ -5981,6 +5981,20 @@ impl Parser { TerminalKind::YulIsZeroKeyword, ); choice.consider(input, result)?; + if !self.version_is_at_least_0_5_0 { + let result = self.parse_terminal_with_trivia::( + input, + TerminalKind::YulJumpKeyword, + ); + choice.consider(input, result)?; + } + if !self.version_is_at_least_0_5_0 { + let result = self.parse_terminal_with_trivia::( + input, + TerminalKind::YulJumpiKeyword, + ); + choice.consider(input, result)?; + } let result = self.parse_terminal_with_trivia::( input, TerminalKind::YulLog0Keyword, @@ -12257,6 +12271,22 @@ impl Lexer for Parser { } None => KeywordScan::Absent, }, + Some('j') => { + if scan_chars!(input, 'u', 'm', 'p') { + match input.next() { + Some('i') => { + KeywordScan::Reserved(TerminalKind::YulJumpiKeyword) + } + Some(_) => { + input.undo(); + KeywordScan::Reserved(TerminalKind::YulJumpKeyword) + } + None => KeywordScan::Reserved(TerminalKind::YulJumpKeyword), + } + } else { + KeywordScan::Absent + } + } Some('k') => { if scan_chars!(input, 'e', 'c', 'c', 'a', 'k', '2', '5', '6') { if self.version_is_at_least_0_4_12 { diff --git a/crates/solidity/outputs/cargo/tests/src/cst_output/generated/yul_function_call_expression.rs b/crates/solidity/outputs/cargo/tests/src/cst_output/generated/yul_function_call_expression.rs index 8fa3888bbe..11b710e87f 100644 --- a/crates/solidity/outputs/cargo/tests/src/cst_output/generated/yul_function_call_expression.rs +++ b/crates/solidity/outputs/cargo/tests/src/cst_output/generated/yul_function_call_expression.rs @@ -179,6 +179,16 @@ fn built_in_iszero() -> Result<()> { run("YulFunctionCallExpression", "built_in_iszero") } +#[test] +fn built_in_jump() -> Result<()> { + run("YulFunctionCallExpression", "built_in_jump") +} + +#[test] +fn built_in_jumpi() -> Result<()> { + run("YulFunctionCallExpression", "built_in_jumpi") +} + #[test] fn built_in_keccak256() -> Result<()> { run("YulFunctionCallExpression", "built_in_keccak256") diff --git a/crates/solidity/outputs/cargo/tests/src/cst_output/generated/yul_variable_assignment_statement.rs b/crates/solidity/outputs/cargo/tests/src/cst_output/generated/yul_variable_assignment_statement.rs index d5e450d924..eacb3223e3 100644 --- a/crates/solidity/outputs/cargo/tests/src/cst_output/generated/yul_variable_assignment_statement.rs +++ b/crates/solidity/outputs/cargo/tests/src/cst_output/generated/yul_variable_assignment_statement.rs @@ -174,6 +174,16 @@ fn identifier_iszero() -> Result<()> { run("YulVariableAssignmentStatement", "identifier_iszero") } +#[test] +fn identifier_jump() -> Result<()> { + run("YulVariableAssignmentStatement", "identifier_jump") +} + +#[test] +fn identifier_jumpi() -> Result<()> { + run("YulVariableAssignmentStatement", "identifier_jumpi") +} + #[test] fn identifier_keccak256() -> Result<()> { run("YulVariableAssignmentStatement", "identifier_keccak256") diff --git a/crates/solidity/outputs/cargo/wasm/src/generated/interface/generated/cst.wit b/crates/solidity/outputs/cargo/wasm/src/generated/interface/generated/cst.wit index e9ba5dcbec..abbbca39de 100644 --- a/crates/solidity/outputs/cargo/wasm/src/generated/interface/generated/cst.wit +++ b/crates/solidity/outputs/cargo/wasm/src/generated/interface/generated/cst.wit @@ -505,6 +505,8 @@ interface cst { %yul-invalid-keyword, %yul-is-keyword, %yul-is-zero-keyword, + %yul-jump-keyword, + %yul-jumpi-keyword, %yul-keccak256-keyword, %yul-leave-keyword, %yul-let-keyword, diff --git a/crates/solidity/outputs/npm/package/wasm/generated/interfaces/nomic-foundation-slang-cst.d.ts b/crates/solidity/outputs/npm/package/wasm/generated/interfaces/nomic-foundation-slang-cst.d.ts index 1e63b6be91..355853c9fa 100644 --- a/crates/solidity/outputs/npm/package/wasm/generated/interfaces/nomic-foundation-slang-cst.d.ts +++ b/crates/solidity/outputs/npm/package/wasm/generated/interfaces/nomic-foundation-slang-cst.d.ts @@ -508,6 +508,8 @@ export declare enum TerminalKind { YulInvalidKeyword = "YulInvalidKeyword", YulIsKeyword = "YulIsKeyword", YulIsZeroKeyword = "YulIsZeroKeyword", + YulJumpKeyword = "YulJumpKeyword", + YulJumpiKeyword = "YulJumpiKeyword", YulKeccak256Keyword = "YulKeccak256Keyword", YulLeaveKeyword = "YulLeaveKeyword", YulLetKeyword = "YulLetKeyword", diff --git a/crates/solidity/outputs/spec/generated/grammar.ebnf b/crates/solidity/outputs/spec/generated/grammar.ebnf index be997e9810..a1afbddb1d 100644 --- a/crates/solidity/outputs/spec/generated/grammar.ebnf +++ b/crates/solidity/outputs/spec/generated/grammar.ebnf @@ -1759,6 +1759,8 @@ YulBuiltInFunction = (* variant: *) YUL_ADD_KEYWORD | (* variant: *) YUL_GT_KEYWORD | (* variant: *) YUL_INVALID_KEYWORD | (* variant: *) YUL_IS_ZERO_KEYWORD + | (* variant: *) YUL_JUMP_KEYWORD (* Deprecated in 0.5.0 *) + | (* variant: *) YUL_JUMPI_KEYWORD (* Deprecated in 0.5.0 *) | (* variant: *) YUL_LOG_0_KEYWORD | (* variant: *) YUL_LOG_1_KEYWORD | (* variant: *) YUL_LOG_2_KEYWORD @@ -2065,6 +2067,12 @@ YUL_IS_KEYWORD = "is"; YUL_IS_ZERO_KEYWORD = "iszero"; +(* Deprecated in 0.5.0 *) +YUL_JUMP_KEYWORD = "jump"; + +(* Deprecated in 0.5.0 *) +YUL_JUMPI_KEYWORD = "jumpi"; + (* Introduced in 0.4.12 *) (* Reserved in 0.4.12 *) YUL_KECCAK_256_KEYWORD = "keccak256"; diff --git a/crates/solidity/outputs/spec/generated/public/06-yul/02-yul-expressions.md b/crates/solidity/outputs/spec/generated/public/06-yul/02-yul-expressions.md index 83962a6494..6055236eb0 100644 --- a/crates/solidity/outputs/spec/generated/public/06-yul/02-yul-expressions.md +++ b/crates/solidity/outputs/spec/generated/public/06-yul/02-yul-expressions.md @@ -44,7 +44,7 @@ ``` -
YulBuiltInFunction = (* variant: *) YUL_ADD_KEYWORD
| (* variant: *) YUL_ADD_MOD_KEYWORD
| (* variant: *) YUL_ADDRESS_KEYWORD
| (* variant: *) YUL_AND_KEYWORD
| (* variant: *) YUL_BALANCE_KEYWORD
| (* variant: *) YUL_BLOCK_HASH_KEYWORD
| (* variant: *) YUL_BYTE_KEYWORD
| (* variant: *) YUL_CALL_CODE_KEYWORD
| (* variant: *) YUL_CALL_DATA_COPY_KEYWORD
| (* variant: *) YUL_CALL_DATA_LOAD_KEYWORD
| (* variant: *) YUL_CALL_DATA_SIZE_KEYWORD
| (* variant: *) YUL_CALLER_KEYWORD
| (* variant: *) YUL_CALL_KEYWORD
| (* variant: *) YUL_CALL_VALUE_KEYWORD
| (* variant: *) YUL_COIN_BASE_KEYWORD
| (* variant: *) YUL_CREATE_KEYWORD
| (* variant: *) YUL_DELEGATE_CALL_KEYWORD
| (* variant: *) YUL_DIV_KEYWORD
| (* variant: *) YUL_EQ_KEYWORD
| (* variant: *) YUL_EXP_KEYWORD
| (* variant: *) YUL_EXT_CODE_COPY_KEYWORD
| (* variant: *) YUL_EXT_CODE_SIZE_KEYWORD
| (* variant: *) YUL_GAS_KEYWORD
| (* variant: *) YUL_GAS_LIMIT_KEYWORD
| (* variant: *) YUL_GAS_PRICE_KEYWORD
| (* variant: *) YUL_GT_KEYWORD
| (* variant: *) YUL_INVALID_KEYWORD
| (* variant: *) YUL_IS_ZERO_KEYWORD
| (* variant: *) YUL_LOG_0_KEYWORD
| (* variant: *) YUL_LOG_1_KEYWORD
| (* variant: *) YUL_LOG_2_KEYWORD
| (* variant: *) YUL_LOG_3_KEYWORD
| (* variant: *) YUL_LOG_4_KEYWORD
| (* variant: *) YUL_LT_KEYWORD
| (* variant: *) YUL_M_LOAD_KEYWORD
| (* variant: *) YUL_MOD_KEYWORD
| (* variant: *) YUL_M_SIZE_KEYWORD
| (* variant: *) YUL_M_STORE_8_KEYWORD
| (* variant: *) YUL_M_STORE_KEYWORD
| (* variant: *) YUL_MUL_KEYWORD
| (* variant: *) YUL_MUL_MOD_KEYWORD
| (* variant: *) YUL_NOT_KEYWORD
| (* variant: *) YUL_NUMBER_KEYWORD
| (* variant: *) YUL_ORIGIN_KEYWORD
| (* variant: *) YUL_OR_KEYWORD
| (* variant: *) YUL_POP_KEYWORD
| (* variant: *) YUL_RETURN_KEYWORD
| (* variant: *) YUL_REVERT_KEYWORD
| (* variant: *) YUL_S_DIV_KEYWORD
| (* variant: *) YUL_SELF_DESTRUCT_KEYWORD
| (* variant: *) YUL_SGT_KEYWORD
| (* variant: *) YUL_SIGN_EXTEND_KEYWORD
| (* variant: *) YUL_S_LOAD_KEYWORD
| (* variant: *) YUL_SLT_KEYWORD
| (* variant: *) YUL_S_MOD_KEYWORD
| (* variant: *) YUL_S_STORE_KEYWORD
| (* variant: *) YUL_STOP_KEYWORD
| (* variant: *) YUL_SUB_KEYWORD
| (* variant: *) YUL_TIMESTAMP_KEYWORD
| (* variant: *) YUL_XOR_KEYWORD
| (* variant: *) YUL_KECCAK_256_KEYWORD (* Introduced in 0.4.12 *)
| (* variant: *) YUL_SHA_3_KEYWORD (* Deprecated in 0.5.0 *)
| (* variant: *) YUL_SUICIDE_KEYWORD (* Deprecated in 0.5.0 *)
| (* variant: *) YUL_RETURN_DATA_COPY_KEYWORD (* Introduced in 0.4.12 *)
| (* variant: *) YUL_RETURN_DATA_SIZE_KEYWORD (* Introduced in 0.4.12 *)
| (* variant: *) YUL_STATIC_CALL_KEYWORD (* Introduced in 0.4.12 *)
| (* variant: *) YUL_CREATE_2_KEYWORD (* Introduced in 0.4.12 *)
| (* variant: *) YUL_EXT_CODE_HASH_KEYWORD (* Introduced in 0.5.0 *)
| (* variant: *) YUL_SAR_KEYWORD
| (* variant: *) YUL_SHL_KEYWORD
| (* variant: *) YUL_SHR_KEYWORD
| (* variant: *) YUL_CHAIN_ID_KEYWORD
| (* variant: *) YUL_SELF_BALANCE_KEYWORD
| (* variant: *) YUL_BASE_FEE_KEYWORD (* Introduced in 0.8.7 *)
| (* variant: *) YUL_DIFFICULTY_KEYWORD (* Deprecated in 0.8.18 *)
| (* variant: *) YUL_PREV_RANDAO_KEYWORD (* Introduced in 0.8.18 *)
| (* variant: *) YUL_BLOB_BASE_FEE_KEYWORD (* Introduced in 0.8.24 *)
| (* variant: *) YUL_BLOB_HASH_KEYWORD (* Introduced in 0.8.24 *)
| (* variant: *) YUL_T_LOAD_KEYWORD (* Introduced in 0.8.24 *)
| (* variant: *) YUL_T_STORE_KEYWORD (* Introduced in 0.8.24 *)
| (* variant: *) YUL_M_COPY_KEYWORD; (* Introduced in 0.8.24 *)
+
YulBuiltInFunction = (* variant: *) YUL_ADD_KEYWORD
| (* variant: *) YUL_ADD_MOD_KEYWORD
| (* variant: *) YUL_ADDRESS_KEYWORD
| (* variant: *) YUL_AND_KEYWORD
| (* variant: *) YUL_BALANCE_KEYWORD
| (* variant: *) YUL_BLOCK_HASH_KEYWORD
| (* variant: *) YUL_BYTE_KEYWORD
| (* variant: *) YUL_CALL_CODE_KEYWORD
| (* variant: *) YUL_CALL_DATA_COPY_KEYWORD
| (* variant: *) YUL_CALL_DATA_LOAD_KEYWORD
| (* variant: *) YUL_CALL_DATA_SIZE_KEYWORD
| (* variant: *) YUL_CALLER_KEYWORD
| (* variant: *) YUL_CALL_KEYWORD
| (* variant: *) YUL_CALL_VALUE_KEYWORD
| (* variant: *) YUL_COIN_BASE_KEYWORD
| (* variant: *) YUL_CREATE_KEYWORD
| (* variant: *) YUL_DELEGATE_CALL_KEYWORD
| (* variant: *) YUL_DIV_KEYWORD
| (* variant: *) YUL_EQ_KEYWORD
| (* variant: *) YUL_EXP_KEYWORD
| (* variant: *) YUL_EXT_CODE_COPY_KEYWORD
| (* variant: *) YUL_EXT_CODE_SIZE_KEYWORD
| (* variant: *) YUL_GAS_KEYWORD
| (* variant: *) YUL_GAS_LIMIT_KEYWORD
| (* variant: *) YUL_GAS_PRICE_KEYWORD
| (* variant: *) YUL_GT_KEYWORD
| (* variant: *) YUL_INVALID_KEYWORD
| (* variant: *) YUL_IS_ZERO_KEYWORD
| (* variant: *) YUL_JUMP_KEYWORD (* Deprecated in 0.5.0 *)
| (* variant: *) YUL_JUMPI_KEYWORD (* Deprecated in 0.5.0 *)
| (* variant: *) YUL_LOG_0_KEYWORD
| (* variant: *) YUL_LOG_1_KEYWORD
| (* variant: *) YUL_LOG_2_KEYWORD
| (* variant: *) YUL_LOG_3_KEYWORD
| (* variant: *) YUL_LOG_4_KEYWORD
| (* variant: *) YUL_LT_KEYWORD
| (* variant: *) YUL_M_LOAD_KEYWORD
| (* variant: *) YUL_MOD_KEYWORD
| (* variant: *) YUL_M_SIZE_KEYWORD
| (* variant: *) YUL_M_STORE_8_KEYWORD
| (* variant: *) YUL_M_STORE_KEYWORD
| (* variant: *) YUL_MUL_KEYWORD
| (* variant: *) YUL_MUL_MOD_KEYWORD
| (* variant: *) YUL_NOT_KEYWORD
| (* variant: *) YUL_NUMBER_KEYWORD
| (* variant: *) YUL_ORIGIN_KEYWORD
| (* variant: *) YUL_OR_KEYWORD
| (* variant: *) YUL_POP_KEYWORD
| (* variant: *) YUL_RETURN_KEYWORD
| (* variant: *) YUL_REVERT_KEYWORD
| (* variant: *) YUL_S_DIV_KEYWORD
| (* variant: *) YUL_SELF_DESTRUCT_KEYWORD
| (* variant: *) YUL_SGT_KEYWORD
| (* variant: *) YUL_SIGN_EXTEND_KEYWORD
| (* variant: *) YUL_S_LOAD_KEYWORD
| (* variant: *) YUL_SLT_KEYWORD
| (* variant: *) YUL_S_MOD_KEYWORD
| (* variant: *) YUL_S_STORE_KEYWORD
| (* variant: *) YUL_STOP_KEYWORD
| (* variant: *) YUL_SUB_KEYWORD
| (* variant: *) YUL_TIMESTAMP_KEYWORD
| (* variant: *) YUL_XOR_KEYWORD
| (* variant: *) YUL_KECCAK_256_KEYWORD (* Introduced in 0.4.12 *)
| (* variant: *) YUL_SHA_3_KEYWORD (* Deprecated in 0.5.0 *)
| (* variant: *) YUL_SUICIDE_KEYWORD (* Deprecated in 0.5.0 *)
| (* variant: *) YUL_RETURN_DATA_COPY_KEYWORD (* Introduced in 0.4.12 *)
| (* variant: *) YUL_RETURN_DATA_SIZE_KEYWORD (* Introduced in 0.4.12 *)
| (* variant: *) YUL_STATIC_CALL_KEYWORD (* Introduced in 0.4.12 *)
| (* variant: *) YUL_CREATE_2_KEYWORD (* Introduced in 0.4.12 *)
| (* variant: *) YUL_EXT_CODE_HASH_KEYWORD (* Introduced in 0.5.0 *)
| (* variant: *) YUL_SAR_KEYWORD
| (* variant: *) YUL_SHL_KEYWORD
| (* variant: *) YUL_SHR_KEYWORD
| (* variant: *) YUL_CHAIN_ID_KEYWORD
| (* variant: *) YUL_SELF_BALANCE_KEYWORD
| (* variant: *) YUL_BASE_FEE_KEYWORD (* Introduced in 0.8.7 *)
| (* variant: *) YUL_DIFFICULTY_KEYWORD (* Deprecated in 0.8.18 *)
| (* variant: *) YUL_PREV_RANDAO_KEYWORD (* Introduced in 0.8.18 *)
| (* variant: *) YUL_BLOB_BASE_FEE_KEYWORD (* Introduced in 0.8.24 *)
| (* variant: *) YUL_BLOB_HASH_KEYWORD (* Introduced in 0.8.24 *)
| (* variant: *) YUL_T_LOAD_KEYWORD (* Introduced in 0.8.24 *)
| (* variant: *) YUL_T_STORE_KEYWORD (* Introduced in 0.8.24 *)
| (* variant: *) YUL_M_COPY_KEYWORD; (* Introduced in 0.8.24 *)
```{ .ebnf #YulLiteral } diff --git a/crates/solidity/outputs/spec/generated/public/06-yul/03-yul-keywords.md b/crates/solidity/outputs/spec/generated/public/06-yul/03-yul-keywords.md index be4da03b10..b5258afc92 100644 --- a/crates/solidity/outputs/spec/generated/public/06-yul/03-yul-keywords.md +++ b/crates/solidity/outputs/spec/generated/public/06-yul/03-yul-keywords.md @@ -520,6 +520,18 @@
YUL_IS_ZERO_KEYWORD = "iszero";
+```{ .ebnf #YulJumpKeyword } + +``` + +
(* Deprecated in 0.5.0 *)
YUL_JUMP_KEYWORD = "jump";
+ +```{ .ebnf #YulJumpiKeyword } + +``` + +
(* Deprecated in 0.5.0 *)
YUL_JUMPI_KEYWORD = "jumpi";
+ ```{ .ebnf #YulKeccak256Keyword } ``` 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 7d51c9c3d0..c11a09e4ff 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 @@ -10,7 +10,7 @@ Source: > Errors: # 1 total - > - Error: Expected CloseBrace or DoubleQuotedHexStringLiteral or DoubleQuotedStringLiteral or Equal or EqualColon or OpenBrace or SingleQuotedHexStringLiteral or SingleQuotedStringLiteral or YulAddKeyword or YulAddModKeyword or YulAddressKeyword or YulAndKeyword or YulBalanceKeyword or YulBlockHashKeyword or YulBreakKeyword or YulByteKeyword or YulCallCodeKeyword or YulCallDataCopyKeyword or YulCallDataLoadKeyword or YulCallDataSizeKeyword or YulCallKeyword or YulCallValueKeyword or YulCallerKeyword or YulChainIdKeyword or YulCoinBaseKeyword or YulContinueKeyword or YulCreateKeyword or YulDecimalLiteral or YulDelegateCallKeyword or YulDifficultyKeyword or YulDivKeyword or YulEqKeyword or YulExpKeyword or YulExtCodeCopyKeyword or YulExtCodeSizeKeyword or YulFalseKeyword or YulForKeyword or YulFunctionKeyword or YulGasKeyword or YulGasLimitKeyword or YulGasPriceKeyword or YulGtKeyword or YulHexLiteral or YulIdentifier or YulIfKeyword or YulInvalidKeyword or YulIsZeroKeyword or YulLetKeyword or YulLog0Keyword or YulLog1Keyword or YulLog2Keyword or YulLog3Keyword or YulLog4Keyword or YulLtKeyword or YulMLoadKeyword or YulMSizeKeyword or YulMStore8Keyword or YulMStoreKeyword or YulModKeyword or YulMulKeyword or YulMulModKeyword or YulNotKeyword or YulNumberKeyword or YulOrKeyword or YulOriginKeyword or YulPopKeyword or YulReturnKeyword or YulRevertKeyword or YulSDivKeyword or YulSLoadKeyword or YulSModKeyword or YulSStoreKeyword or YulSarKeyword or YulSelfBalanceKeyword or YulSelfDestructKeyword or YulSgtKeyword or YulSha3Keyword or YulShlKeyword or YulShrKeyword or YulSignExtendKeyword or YulSltKeyword or YulStopKeyword or YulSubKeyword or YulSuicideKeyword or YulSwitchKeyword or YulTimestampKeyword or YulTrueKeyword or YulXorKeyword. + Error: Expected CloseBrace or DoubleQuotedHexStringLiteral or DoubleQuotedStringLiteral or Equal or EqualColon or OpenBrace or SingleQuotedHexStringLiteral or SingleQuotedStringLiteral or YulAddKeyword or YulAddModKeyword or YulAddressKeyword or YulAndKeyword or YulBalanceKeyword or YulBlockHashKeyword or YulBreakKeyword or YulByteKeyword or YulCallCodeKeyword or YulCallDataCopyKeyword or YulCallDataLoadKeyword or YulCallDataSizeKeyword or YulCallKeyword or YulCallValueKeyword or YulCallerKeyword or YulChainIdKeyword or YulCoinBaseKeyword or YulContinueKeyword or YulCreateKeyword or YulDecimalLiteral or YulDelegateCallKeyword or YulDifficultyKeyword or YulDivKeyword or YulEqKeyword or YulExpKeyword or YulExtCodeCopyKeyword or YulExtCodeSizeKeyword or YulFalseKeyword or YulForKeyword or YulFunctionKeyword or YulGasKeyword or YulGasLimitKeyword or YulGasPriceKeyword or YulGtKeyword or YulHexLiteral or YulIdentifier or YulIfKeyword or YulInvalidKeyword or YulIsZeroKeyword or YulJumpKeyword or YulJumpiKeyword or YulLetKeyword or YulLog0Keyword or YulLog1Keyword or YulLog2Keyword or YulLog3Keyword or YulLog4Keyword or YulLtKeyword or YulMLoadKeyword or YulMSizeKeyword or YulMStore8Keyword or YulMStoreKeyword or YulModKeyword or YulMulKeyword or YulMulModKeyword or YulNotKeyword or YulNumberKeyword or YulOrKeyword or YulOriginKeyword or YulPopKeyword or YulReturnKeyword or YulRevertKeyword or YulSDivKeyword or YulSLoadKeyword or YulSModKeyword or YulSStoreKeyword or YulSarKeyword or YulSelfBalanceKeyword or YulSelfDestructKeyword or YulSgtKeyword or YulSha3Keyword or YulShlKeyword or YulShrKeyword or YulSignExtendKeyword or YulSltKeyword or YulStopKeyword or YulSubKeyword or YulSuicideKeyword or YulSwitchKeyword or YulTimestampKeyword or YulTrueKeyword or YulXorKeyword. ╭─[crates/solidity/testing/snapshots/cst_output/YulBlock/ignore_unknown_delim/input.sol:4:10] │ 4 │ ╭─▶ result := [mul(a, b) diff --git a/crates/solidity/testing/snapshots/cst_output/YulBlock/ignore_unknown_delim/generated/0.4.12-failure.yml b/crates/solidity/testing/snapshots/cst_output/YulBlock/ignore_unknown_delim/generated/0.4.12-failure.yml index 61685e93a6..12e8e01cdd 100644 --- a/crates/solidity/testing/snapshots/cst_output/YulBlock/ignore_unknown_delim/generated/0.4.12-failure.yml +++ b/crates/solidity/testing/snapshots/cst_output/YulBlock/ignore_unknown_delim/generated/0.4.12-failure.yml @@ -10,7 +10,7 @@ Source: > Errors: # 1 total - > - Error: Expected CloseBrace or DoubleQuotedHexStringLiteral or DoubleQuotedStringLiteral or Equal or EqualColon or OpenBrace or SingleQuotedHexStringLiteral or SingleQuotedStringLiteral or YulAddKeyword or YulAddModKeyword or YulAddressKeyword or YulAndKeyword or YulBalanceKeyword or YulBlockHashKeyword or YulBreakKeyword or YulByteKeyword or YulCallCodeKeyword or YulCallDataCopyKeyword or YulCallDataLoadKeyword or YulCallDataSizeKeyword or YulCallKeyword or YulCallValueKeyword or YulCallerKeyword or YulChainIdKeyword or YulCoinBaseKeyword or YulContinueKeyword or YulCreate2Keyword or YulCreateKeyword or YulDecimalLiteral or YulDelegateCallKeyword or YulDifficultyKeyword or YulDivKeyword or YulEqKeyword or YulExpKeyword or YulExtCodeCopyKeyword or YulExtCodeSizeKeyword or YulFalseKeyword or YulForKeyword or YulFunctionKeyword or YulGasKeyword or YulGasLimitKeyword or YulGasPriceKeyword or YulGtKeyword or YulHexLiteral or YulIdentifier or YulIfKeyword or YulInvalidKeyword or YulIsZeroKeyword or YulKeccak256Keyword or YulLetKeyword or YulLog0Keyword or YulLog1Keyword or YulLog2Keyword or YulLog3Keyword or YulLog4Keyword or YulLtKeyword or YulMLoadKeyword or YulMSizeKeyword or YulMStore8Keyword or YulMStoreKeyword or YulModKeyword or YulMulKeyword or YulMulModKeyword or YulNotKeyword or YulNumberKeyword or YulOrKeyword or YulOriginKeyword or YulPopKeyword or YulReturnDataCopyKeyword or YulReturnDataSizeKeyword or YulReturnKeyword or YulRevertKeyword or YulSDivKeyword or YulSLoadKeyword or YulSModKeyword or YulSStoreKeyword or YulSarKeyword or YulSelfBalanceKeyword or YulSelfDestructKeyword or YulSgtKeyword or YulSha3Keyword or YulShlKeyword or YulShrKeyword or YulSignExtendKeyword or YulSltKeyword or YulStaticCallKeyword or YulStopKeyword or YulSubKeyword or YulSuicideKeyword or YulSwitchKeyword or YulTimestampKeyword or YulTrueKeyword or YulXorKeyword. + Error: Expected CloseBrace or DoubleQuotedHexStringLiteral or DoubleQuotedStringLiteral or Equal or EqualColon or OpenBrace or SingleQuotedHexStringLiteral or SingleQuotedStringLiteral or YulAddKeyword or YulAddModKeyword or YulAddressKeyword or YulAndKeyword or YulBalanceKeyword or YulBlockHashKeyword or YulBreakKeyword or YulByteKeyword or YulCallCodeKeyword or YulCallDataCopyKeyword or YulCallDataLoadKeyword or YulCallDataSizeKeyword or YulCallKeyword or YulCallValueKeyword or YulCallerKeyword or YulChainIdKeyword or YulCoinBaseKeyword or YulContinueKeyword or YulCreate2Keyword or YulCreateKeyword or YulDecimalLiteral or YulDelegateCallKeyword or YulDifficultyKeyword or YulDivKeyword or YulEqKeyword or YulExpKeyword or YulExtCodeCopyKeyword or YulExtCodeSizeKeyword or YulFalseKeyword or YulForKeyword or YulFunctionKeyword or YulGasKeyword or YulGasLimitKeyword or YulGasPriceKeyword or YulGtKeyword or YulHexLiteral or YulIdentifier or YulIfKeyword or YulInvalidKeyword or YulIsZeroKeyword or YulJumpKeyword or YulJumpiKeyword or YulKeccak256Keyword or YulLetKeyword or YulLog0Keyword or YulLog1Keyword or YulLog2Keyword or YulLog3Keyword or YulLog4Keyword or YulLtKeyword or YulMLoadKeyword or YulMSizeKeyword or YulMStore8Keyword or YulMStoreKeyword or YulModKeyword or YulMulKeyword or YulMulModKeyword or YulNotKeyword or YulNumberKeyword or YulOrKeyword or YulOriginKeyword or YulPopKeyword or YulReturnDataCopyKeyword or YulReturnDataSizeKeyword or YulReturnKeyword or YulRevertKeyword or YulSDivKeyword or YulSLoadKeyword or YulSModKeyword or YulSStoreKeyword or YulSarKeyword or YulSelfBalanceKeyword or YulSelfDestructKeyword or YulSgtKeyword or YulSha3Keyword or YulShlKeyword or YulShrKeyword or YulSignExtendKeyword or YulSltKeyword or YulStaticCallKeyword or YulStopKeyword or YulSubKeyword or YulSuicideKeyword or YulSwitchKeyword or YulTimestampKeyword or YulTrueKeyword or YulXorKeyword. ╭─[crates/solidity/testing/snapshots/cst_output/YulBlock/ignore_unknown_delim/input.sol:4:10] │ 4 │ ╭─▶ result := [mul(a, b) diff --git a/crates/solidity/testing/snapshots/cst_output/YulExpression/decimal_trailing_ident_start/generated/0.4.11-failure.yml b/crates/solidity/testing/snapshots/cst_output/YulExpression/decimal_trailing_ident_start/generated/0.4.11-failure.yml index 0e160931dd..2c6030d513 100644 --- a/crates/solidity/testing/snapshots/cst_output/YulExpression/decimal_trailing_ident_start/generated/0.4.11-failure.yml +++ b/crates/solidity/testing/snapshots/cst_output/YulExpression/decimal_trailing_ident_start/generated/0.4.11-failure.yml @@ -5,7 +5,7 @@ Source: > Errors: # 1 total - > - Error: Expected DoubleQuotedHexStringLiteral or DoubleQuotedStringLiteral or SingleQuotedHexStringLiteral or SingleQuotedStringLiteral or YulAddKeyword or YulAddModKeyword or YulAddressKeyword or YulAndKeyword or YulBalanceKeyword or YulBlockHashKeyword or YulByteKeyword or YulCallCodeKeyword or YulCallDataCopyKeyword or YulCallDataLoadKeyword or YulCallDataSizeKeyword or YulCallKeyword or YulCallValueKeyword or YulCallerKeyword or YulChainIdKeyword or YulCoinBaseKeyword or YulCreateKeyword or YulDecimalLiteral or YulDelegateCallKeyword or YulDifficultyKeyword or YulDivKeyword or YulEqKeyword or YulExpKeyword or YulExtCodeCopyKeyword or YulExtCodeSizeKeyword or YulFalseKeyword or YulGasKeyword or YulGasLimitKeyword or YulGasPriceKeyword or YulGtKeyword or YulHexLiteral or YulIdentifier or YulInvalidKeyword or YulIsZeroKeyword or YulLog0Keyword or YulLog1Keyword or YulLog2Keyword or YulLog3Keyword or YulLog4Keyword or YulLtKeyword or YulMLoadKeyword or YulMSizeKeyword or YulMStore8Keyword or YulMStoreKeyword or YulModKeyword or YulMulKeyword or YulMulModKeyword or YulNotKeyword or YulNumberKeyword or YulOrKeyword or YulOriginKeyword or YulPopKeyword or YulReturnKeyword or YulRevertKeyword or YulSDivKeyword or YulSLoadKeyword or YulSModKeyword or YulSStoreKeyword or YulSarKeyword or YulSelfBalanceKeyword or YulSelfDestructKeyword or YulSgtKeyword or YulSha3Keyword or YulShlKeyword or YulShrKeyword or YulSignExtendKeyword or YulSltKeyword or YulStopKeyword or YulSubKeyword or YulSuicideKeyword or YulTimestampKeyword or YulTrueKeyword or YulXorKeyword. + Error: Expected DoubleQuotedHexStringLiteral or DoubleQuotedStringLiteral or SingleQuotedHexStringLiteral or SingleQuotedStringLiteral or YulAddKeyword or YulAddModKeyword or YulAddressKeyword or YulAndKeyword or YulBalanceKeyword or YulBlockHashKeyword or YulByteKeyword or YulCallCodeKeyword or YulCallDataCopyKeyword or YulCallDataLoadKeyword or YulCallDataSizeKeyword or YulCallKeyword or YulCallValueKeyword or YulCallerKeyword or YulChainIdKeyword or YulCoinBaseKeyword or YulCreateKeyword or YulDecimalLiteral or YulDelegateCallKeyword or YulDifficultyKeyword or YulDivKeyword or YulEqKeyword or YulExpKeyword or YulExtCodeCopyKeyword or YulExtCodeSizeKeyword or YulFalseKeyword or YulGasKeyword or YulGasLimitKeyword or YulGasPriceKeyword or YulGtKeyword or YulHexLiteral or YulIdentifier or YulInvalidKeyword or YulIsZeroKeyword or YulJumpKeyword or YulJumpiKeyword or YulLog0Keyword or YulLog1Keyword or YulLog2Keyword or YulLog3Keyword or YulLog4Keyword or YulLtKeyword or YulMLoadKeyword or YulMSizeKeyword or YulMStore8Keyword or YulMStoreKeyword or YulModKeyword or YulMulKeyword or YulMulModKeyword or YulNotKeyword or YulNumberKeyword or YulOrKeyword or YulOriginKeyword or YulPopKeyword or YulReturnKeyword or YulRevertKeyword or YulSDivKeyword or YulSLoadKeyword or YulSModKeyword or YulSStoreKeyword or YulSarKeyword or YulSelfBalanceKeyword or YulSelfDestructKeyword or YulSgtKeyword or YulSha3Keyword or YulShlKeyword or YulShrKeyword or YulSignExtendKeyword or YulSltKeyword or YulStopKeyword or YulSubKeyword or YulSuicideKeyword or YulTimestampKeyword or YulTrueKeyword or YulXorKeyword. ╭─[crates/solidity/testing/snapshots/cst_output/YulExpression/decimal_trailing_ident_start/input.sol:1:1] │ 1 │ 1a diff --git a/crates/solidity/testing/snapshots/cst_output/YulExpression/decimal_trailing_ident_start/generated/0.4.12-failure.yml b/crates/solidity/testing/snapshots/cst_output/YulExpression/decimal_trailing_ident_start/generated/0.4.12-failure.yml index ddaf654ce6..b670fca596 100644 --- a/crates/solidity/testing/snapshots/cst_output/YulExpression/decimal_trailing_ident_start/generated/0.4.12-failure.yml +++ b/crates/solidity/testing/snapshots/cst_output/YulExpression/decimal_trailing_ident_start/generated/0.4.12-failure.yml @@ -5,7 +5,7 @@ Source: > Errors: # 1 total - > - Error: Expected DoubleQuotedHexStringLiteral or DoubleQuotedStringLiteral or SingleQuotedHexStringLiteral or SingleQuotedStringLiteral or YulAddKeyword or YulAddModKeyword or YulAddressKeyword or YulAndKeyword or YulBalanceKeyword or YulBlockHashKeyword or YulByteKeyword or YulCallCodeKeyword or YulCallDataCopyKeyword or YulCallDataLoadKeyword or YulCallDataSizeKeyword or YulCallKeyword or YulCallValueKeyword or YulCallerKeyword or YulChainIdKeyword or YulCoinBaseKeyword or YulCreate2Keyword or YulCreateKeyword or YulDecimalLiteral or YulDelegateCallKeyword or YulDifficultyKeyword or YulDivKeyword or YulEqKeyword or YulExpKeyword or YulExtCodeCopyKeyword or YulExtCodeSizeKeyword or YulFalseKeyword or YulGasKeyword or YulGasLimitKeyword or YulGasPriceKeyword or YulGtKeyword or YulHexLiteral or YulIdentifier or YulInvalidKeyword or YulIsZeroKeyword or YulKeccak256Keyword or YulLog0Keyword or YulLog1Keyword or YulLog2Keyword or YulLog3Keyword or YulLog4Keyword or YulLtKeyword or YulMLoadKeyword or YulMSizeKeyword or YulMStore8Keyword or YulMStoreKeyword or YulModKeyword or YulMulKeyword or YulMulModKeyword or YulNotKeyword or YulNumberKeyword or YulOrKeyword or YulOriginKeyword or YulPopKeyword or YulReturnDataCopyKeyword or YulReturnDataSizeKeyword or YulReturnKeyword or YulRevertKeyword or YulSDivKeyword or YulSLoadKeyword or YulSModKeyword or YulSStoreKeyword or YulSarKeyword or YulSelfBalanceKeyword or YulSelfDestructKeyword or YulSgtKeyword or YulSha3Keyword or YulShlKeyword or YulShrKeyword or YulSignExtendKeyword or YulSltKeyword or YulStaticCallKeyword or YulStopKeyword or YulSubKeyword or YulSuicideKeyword or YulTimestampKeyword or YulTrueKeyword or YulXorKeyword. + Error: Expected DoubleQuotedHexStringLiteral or DoubleQuotedStringLiteral or SingleQuotedHexStringLiteral or SingleQuotedStringLiteral or YulAddKeyword or YulAddModKeyword or YulAddressKeyword or YulAndKeyword or YulBalanceKeyword or YulBlockHashKeyword or YulByteKeyword or YulCallCodeKeyword or YulCallDataCopyKeyword or YulCallDataLoadKeyword or YulCallDataSizeKeyword or YulCallKeyword or YulCallValueKeyword or YulCallerKeyword or YulChainIdKeyword or YulCoinBaseKeyword or YulCreate2Keyword or YulCreateKeyword or YulDecimalLiteral or YulDelegateCallKeyword or YulDifficultyKeyword or YulDivKeyword or YulEqKeyword or YulExpKeyword or YulExtCodeCopyKeyword or YulExtCodeSizeKeyword or YulFalseKeyword or YulGasKeyword or YulGasLimitKeyword or YulGasPriceKeyword or YulGtKeyword or YulHexLiteral or YulIdentifier or YulInvalidKeyword or YulIsZeroKeyword or YulJumpKeyword or YulJumpiKeyword or YulKeccak256Keyword or YulLog0Keyword or YulLog1Keyword or YulLog2Keyword or YulLog3Keyword or YulLog4Keyword or YulLtKeyword or YulMLoadKeyword or YulMSizeKeyword or YulMStore8Keyword or YulMStoreKeyword or YulModKeyword or YulMulKeyword or YulMulModKeyword or YulNotKeyword or YulNumberKeyword or YulOrKeyword or YulOriginKeyword or YulPopKeyword or YulReturnDataCopyKeyword or YulReturnDataSizeKeyword or YulReturnKeyword or YulRevertKeyword or YulSDivKeyword or YulSLoadKeyword or YulSModKeyword or YulSStoreKeyword or YulSarKeyword or YulSelfBalanceKeyword or YulSelfDestructKeyword or YulSgtKeyword or YulSha3Keyword or YulShlKeyword or YulShrKeyword or YulSignExtendKeyword or YulSltKeyword or YulStaticCallKeyword or YulStopKeyword or YulSubKeyword or YulSuicideKeyword or YulTimestampKeyword or YulTrueKeyword or YulXorKeyword. ╭─[crates/solidity/testing/snapshots/cst_output/YulExpression/decimal_trailing_ident_start/input.sol:1:1] │ 1 │ 1a diff --git a/crates/solidity/testing/snapshots/cst_output/YulExpression/hex_trailing_ident_start/generated/0.4.11-failure.yml b/crates/solidity/testing/snapshots/cst_output/YulExpression/hex_trailing_ident_start/generated/0.4.11-failure.yml index 877c058b6b..7b09521d67 100644 --- a/crates/solidity/testing/snapshots/cst_output/YulExpression/hex_trailing_ident_start/generated/0.4.11-failure.yml +++ b/crates/solidity/testing/snapshots/cst_output/YulExpression/hex_trailing_ident_start/generated/0.4.11-failure.yml @@ -5,7 +5,7 @@ Source: > Errors: # 1 total - > - Error: Expected DoubleQuotedHexStringLiteral or DoubleQuotedStringLiteral or SingleQuotedHexStringLiteral or SingleQuotedStringLiteral or YulAddKeyword or YulAddModKeyword or YulAddressKeyword or YulAndKeyword or YulBalanceKeyword or YulBlockHashKeyword or YulByteKeyword or YulCallCodeKeyword or YulCallDataCopyKeyword or YulCallDataLoadKeyword or YulCallDataSizeKeyword or YulCallKeyword or YulCallValueKeyword or YulCallerKeyword or YulChainIdKeyword or YulCoinBaseKeyword or YulCreateKeyword or YulDecimalLiteral or YulDelegateCallKeyword or YulDifficultyKeyword or YulDivKeyword or YulEqKeyword or YulExpKeyword or YulExtCodeCopyKeyword or YulExtCodeSizeKeyword or YulFalseKeyword or YulGasKeyword or YulGasLimitKeyword or YulGasPriceKeyword or YulGtKeyword or YulHexLiteral or YulIdentifier or YulInvalidKeyword or YulIsZeroKeyword or YulLog0Keyword or YulLog1Keyword or YulLog2Keyword or YulLog3Keyword or YulLog4Keyword or YulLtKeyword or YulMLoadKeyword or YulMSizeKeyword or YulMStore8Keyword or YulMStoreKeyword or YulModKeyword or YulMulKeyword or YulMulModKeyword or YulNotKeyword or YulNumberKeyword or YulOrKeyword or YulOriginKeyword or YulPopKeyword or YulReturnKeyword or YulRevertKeyword or YulSDivKeyword or YulSLoadKeyword or YulSModKeyword or YulSStoreKeyword or YulSarKeyword or YulSelfBalanceKeyword or YulSelfDestructKeyword or YulSgtKeyword or YulSha3Keyword or YulShlKeyword or YulShrKeyword or YulSignExtendKeyword or YulSltKeyword or YulStopKeyword or YulSubKeyword or YulSuicideKeyword or YulTimestampKeyword or YulTrueKeyword or YulXorKeyword. + Error: Expected DoubleQuotedHexStringLiteral or DoubleQuotedStringLiteral or SingleQuotedHexStringLiteral or SingleQuotedStringLiteral or YulAddKeyword or YulAddModKeyword or YulAddressKeyword or YulAndKeyword or YulBalanceKeyword or YulBlockHashKeyword or YulByteKeyword or YulCallCodeKeyword or YulCallDataCopyKeyword or YulCallDataLoadKeyword or YulCallDataSizeKeyword or YulCallKeyword or YulCallValueKeyword or YulCallerKeyword or YulChainIdKeyword or YulCoinBaseKeyword or YulCreateKeyword or YulDecimalLiteral or YulDelegateCallKeyword or YulDifficultyKeyword or YulDivKeyword or YulEqKeyword or YulExpKeyword or YulExtCodeCopyKeyword or YulExtCodeSizeKeyword or YulFalseKeyword or YulGasKeyword or YulGasLimitKeyword or YulGasPriceKeyword or YulGtKeyword or YulHexLiteral or YulIdentifier or YulInvalidKeyword or YulIsZeroKeyword or YulJumpKeyword or YulJumpiKeyword or YulLog0Keyword or YulLog1Keyword or YulLog2Keyword or YulLog3Keyword or YulLog4Keyword or YulLtKeyword or YulMLoadKeyword or YulMSizeKeyword or YulMStore8Keyword or YulMStoreKeyword or YulModKeyword or YulMulKeyword or YulMulModKeyword or YulNotKeyword or YulNumberKeyword or YulOrKeyword or YulOriginKeyword or YulPopKeyword or YulReturnKeyword or YulRevertKeyword or YulSDivKeyword or YulSLoadKeyword or YulSModKeyword or YulSStoreKeyword or YulSarKeyword or YulSelfBalanceKeyword or YulSelfDestructKeyword or YulSgtKeyword or YulSha3Keyword or YulShlKeyword or YulShrKeyword or YulSignExtendKeyword or YulSltKeyword or YulStopKeyword or YulSubKeyword or YulSuicideKeyword or YulTimestampKeyword or YulTrueKeyword or YulXorKeyword. ╭─[crates/solidity/testing/snapshots/cst_output/YulExpression/hex_trailing_ident_start/input.sol:1:1] │ 1 │ 0x1$ diff --git a/crates/solidity/testing/snapshots/cst_output/YulExpression/hex_trailing_ident_start/generated/0.4.12-failure.yml b/crates/solidity/testing/snapshots/cst_output/YulExpression/hex_trailing_ident_start/generated/0.4.12-failure.yml index ac0c7a2fbd..4886b5dbb8 100644 --- a/crates/solidity/testing/snapshots/cst_output/YulExpression/hex_trailing_ident_start/generated/0.4.12-failure.yml +++ b/crates/solidity/testing/snapshots/cst_output/YulExpression/hex_trailing_ident_start/generated/0.4.12-failure.yml @@ -5,7 +5,7 @@ Source: > Errors: # 1 total - > - Error: Expected DoubleQuotedHexStringLiteral or DoubleQuotedStringLiteral or SingleQuotedHexStringLiteral or SingleQuotedStringLiteral or YulAddKeyword or YulAddModKeyword or YulAddressKeyword or YulAndKeyword or YulBalanceKeyword or YulBlockHashKeyword or YulByteKeyword or YulCallCodeKeyword or YulCallDataCopyKeyword or YulCallDataLoadKeyword or YulCallDataSizeKeyword or YulCallKeyword or YulCallValueKeyword or YulCallerKeyword or YulChainIdKeyword or YulCoinBaseKeyword or YulCreate2Keyword or YulCreateKeyword or YulDecimalLiteral or YulDelegateCallKeyword or YulDifficultyKeyword or YulDivKeyword or YulEqKeyword or YulExpKeyword or YulExtCodeCopyKeyword or YulExtCodeSizeKeyword or YulFalseKeyword or YulGasKeyword or YulGasLimitKeyword or YulGasPriceKeyword or YulGtKeyword or YulHexLiteral or YulIdentifier or YulInvalidKeyword or YulIsZeroKeyword or YulKeccak256Keyword or YulLog0Keyword or YulLog1Keyword or YulLog2Keyword or YulLog3Keyword or YulLog4Keyword or YulLtKeyword or YulMLoadKeyword or YulMSizeKeyword or YulMStore8Keyword or YulMStoreKeyword or YulModKeyword or YulMulKeyword or YulMulModKeyword or YulNotKeyword or YulNumberKeyword or YulOrKeyword or YulOriginKeyword or YulPopKeyword or YulReturnDataCopyKeyword or YulReturnDataSizeKeyword or YulReturnKeyword or YulRevertKeyword or YulSDivKeyword or YulSLoadKeyword or YulSModKeyword or YulSStoreKeyword or YulSarKeyword or YulSelfBalanceKeyword or YulSelfDestructKeyword or YulSgtKeyword or YulSha3Keyword or YulShlKeyword or YulShrKeyword or YulSignExtendKeyword or YulSltKeyword or YulStaticCallKeyword or YulStopKeyword or YulSubKeyword or YulSuicideKeyword or YulTimestampKeyword or YulTrueKeyword or YulXorKeyword. + Error: Expected DoubleQuotedHexStringLiteral or DoubleQuotedStringLiteral or SingleQuotedHexStringLiteral or SingleQuotedStringLiteral or YulAddKeyword or YulAddModKeyword or YulAddressKeyword or YulAndKeyword or YulBalanceKeyword or YulBlockHashKeyword or YulByteKeyword or YulCallCodeKeyword or YulCallDataCopyKeyword or YulCallDataLoadKeyword or YulCallDataSizeKeyword or YulCallKeyword or YulCallValueKeyword or YulCallerKeyword or YulChainIdKeyword or YulCoinBaseKeyword or YulCreate2Keyword or YulCreateKeyword or YulDecimalLiteral or YulDelegateCallKeyword or YulDifficultyKeyword or YulDivKeyword or YulEqKeyword or YulExpKeyword or YulExtCodeCopyKeyword or YulExtCodeSizeKeyword or YulFalseKeyword or YulGasKeyword or YulGasLimitKeyword or YulGasPriceKeyword or YulGtKeyword or YulHexLiteral or YulIdentifier or YulInvalidKeyword or YulIsZeroKeyword or YulJumpKeyword or YulJumpiKeyword or YulKeccak256Keyword or YulLog0Keyword or YulLog1Keyword or YulLog2Keyword or YulLog3Keyword or YulLog4Keyword or YulLtKeyword or YulMLoadKeyword or YulMSizeKeyword or YulMStore8Keyword or YulMStoreKeyword or YulModKeyword or YulMulKeyword or YulMulModKeyword or YulNotKeyword or YulNumberKeyword or YulOrKeyword or YulOriginKeyword or YulPopKeyword or YulReturnDataCopyKeyword or YulReturnDataSizeKeyword or YulReturnKeyword or YulRevertKeyword or YulSDivKeyword or YulSLoadKeyword or YulSModKeyword or YulSStoreKeyword or YulSarKeyword or YulSelfBalanceKeyword or YulSelfDestructKeyword or YulSgtKeyword or YulSha3Keyword or YulShlKeyword or YulShrKeyword or YulSignExtendKeyword or YulSltKeyword or YulStaticCallKeyword or YulStopKeyword or YulSubKeyword or YulSuicideKeyword or YulTimestampKeyword or YulTrueKeyword or YulXorKeyword. ╭─[crates/solidity/testing/snapshots/cst_output/YulExpression/hex_trailing_ident_start/input.sol:1:1] │ 1 │ 0x1$ diff --git a/crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jump/generated/0.4.11-success.yml b/crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jump/generated/0.4.11-success.yml new file mode 100644 index 0000000000..f98b7fe7de --- /dev/null +++ b/crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jump/generated/0.4.11-success.yml @@ -0,0 +1,14 @@ +# This file is generated automatically by infrastructure scripts. Please don't edit by hand. + +Source: > + 1 │ jump() │ 0..6 + +Errors: [] + +Tree: + - (YulFunctionCallExpression): # "jump()\n" (0..7) + - (operand꞉ YulExpression) ► (variant꞉ YulBuiltInFunction) ► (variant꞉ YulJumpKeyword): "jump" # (0..4) + - (open_paren꞉ OpenParen): "(" # (4..5) + - (arguments꞉ YulArguments): [] # (5..5) + - (close_paren꞉ CloseParen): ")" # (5..6) + - (trailing_trivia꞉ EndOfLine): "\n" # (6..7) diff --git a/crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jump/generated/0.5.0-failure.yml b/crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jump/generated/0.5.0-failure.yml new file mode 100644 index 0000000000..a308883cd2 --- /dev/null +++ b/crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jump/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 │ jump() │ 0..6 + +Errors: # 1 total + - > + Error: Expected DoubleQuotedHexStringLiteral or DoubleQuotedStringLiteral or SingleQuotedHexStringLiteral or SingleQuotedStringLiteral or YulAddKeyword or YulAddModKeyword or YulAddressKeyword or YulAndKeyword or YulBalanceKeyword or YulBlockHashKeyword or YulByteKeyword or YulCallCodeKeyword or YulCallDataCopyKeyword or YulCallDataLoadKeyword or YulCallDataSizeKeyword or YulCallKeyword or YulCallValueKeyword or YulCallerKeyword or YulChainIdKeyword or YulCoinBaseKeyword or YulCreate2Keyword or YulCreateKeyword or YulDecimalLiteral or YulDelegateCallKeyword or YulDifficultyKeyword or YulDivKeyword or YulEqKeyword or YulExpKeyword or YulExtCodeCopyKeyword or YulExtCodeHashKeyword or YulExtCodeSizeKeyword or YulFalseKeyword or YulGasKeyword or YulGasLimitKeyword or YulGasPriceKeyword or YulGtKeyword or YulHexLiteral or YulIdentifier or YulInvalidKeyword or YulIsZeroKeyword or YulKeccak256Keyword or YulLog0Keyword or YulLog1Keyword or YulLog2Keyword or YulLog3Keyword or YulLog4Keyword or YulLtKeyword or YulMLoadKeyword or YulMSizeKeyword or YulMStore8Keyword or YulMStoreKeyword or YulModKeyword or YulMulKeyword or YulMulModKeyword or YulNotKeyword or YulNumberKeyword or YulOrKeyword or YulOriginKeyword or YulPopKeyword or YulReturnDataCopyKeyword or YulReturnDataSizeKeyword or YulReturnKeyword or YulRevertKeyword or YulSDivKeyword or YulSLoadKeyword or YulSModKeyword or YulSStoreKeyword or YulSarKeyword or YulSelfBalanceKeyword or YulSelfDestructKeyword or YulSgtKeyword or YulShlKeyword or YulShrKeyword or YulSignExtendKeyword or YulSltKeyword or YulStaticCallKeyword or YulStopKeyword or YulSubKeyword or YulTimestampKeyword or YulTrueKeyword or YulXorKeyword. + ╭─[crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jump/input.sol:1:1] + │ + 1 │ jump() + │ ───┬─── + │ ╰───── Error occurred here. + ───╯ + +Tree: + - (UNRECOGNIZED): "jump()\n" # (0..7) diff --git a/crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jump/generated/0.8.18-failure.yml b/crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jump/generated/0.8.18-failure.yml new file mode 100644 index 0000000000..da308c7866 --- /dev/null +++ b/crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jump/generated/0.8.18-failure.yml @@ -0,0 +1,17 @@ +# This file is generated automatically by infrastructure scripts. Please don't edit by hand. + +Source: > + 1 │ jump() │ 0..6 + +Errors: # 1 total + - > + Error: Expected DoubleQuotedHexStringLiteral or DoubleQuotedStringLiteral or SingleQuotedHexStringLiteral or SingleQuotedStringLiteral or YulAddKeyword or YulAddModKeyword or YulAddressKeyword or YulAndKeyword or YulBalanceKeyword or YulBaseFeeKeyword or YulBlockHashKeyword or YulByteKeyword or YulCallCodeKeyword or YulCallDataCopyKeyword or YulCallDataLoadKeyword or YulCallDataSizeKeyword or YulCallKeyword or YulCallValueKeyword or YulCallerKeyword or YulChainIdKeyword or YulCoinBaseKeyword or YulCreate2Keyword or YulCreateKeyword or YulDecimalLiteral or YulDelegateCallKeyword or YulDivKeyword or YulEqKeyword or YulExpKeyword or YulExtCodeCopyKeyword or YulExtCodeHashKeyword or YulExtCodeSizeKeyword or YulFalseKeyword or YulGasKeyword or YulGasLimitKeyword or YulGasPriceKeyword or YulGtKeyword or YulHexLiteral or YulIdentifier or YulInvalidKeyword or YulIsZeroKeyword or YulKeccak256Keyword or YulLog0Keyword or YulLog1Keyword or YulLog2Keyword or YulLog3Keyword or YulLog4Keyword or YulLtKeyword or YulMLoadKeyword or YulMSizeKeyword or YulMStore8Keyword or YulMStoreKeyword or YulModKeyword or YulMulKeyword or YulMulModKeyword or YulNotKeyword or YulNumberKeyword or YulOrKeyword or YulOriginKeyword or YulPopKeyword or YulPrevRandaoKeyword or YulReturnDataCopyKeyword or YulReturnDataSizeKeyword or YulReturnKeyword or YulRevertKeyword or YulSDivKeyword or YulSLoadKeyword or YulSModKeyword or YulSStoreKeyword or YulSarKeyword or YulSelfBalanceKeyword or YulSelfDestructKeyword or YulSgtKeyword or YulShlKeyword or YulShrKeyword or YulSignExtendKeyword or YulSltKeyword or YulStaticCallKeyword or YulStopKeyword or YulSubKeyword or YulTimestampKeyword or YulTrueKeyword or YulXorKeyword. + ╭─[crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jump/input.sol:1:1] + │ + 1 │ jump() + │ ───┬─── + │ ╰───── Error occurred here. + ───╯ + +Tree: + - (UNRECOGNIZED): "jump()\n" # (0..7) diff --git a/crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jump/generated/0.8.24-failure.yml b/crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jump/generated/0.8.24-failure.yml new file mode 100644 index 0000000000..7174edda97 --- /dev/null +++ b/crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jump/generated/0.8.24-failure.yml @@ -0,0 +1,17 @@ +# This file is generated automatically by infrastructure scripts. Please don't edit by hand. + +Source: > + 1 │ jump() │ 0..6 + +Errors: # 1 total + - > + Error: Expected DoubleQuotedHexStringLiteral or DoubleQuotedStringLiteral or SingleQuotedHexStringLiteral or SingleQuotedStringLiteral or YulAddKeyword or YulAddModKeyword or YulAddressKeyword or YulAndKeyword or YulBalanceKeyword or YulBaseFeeKeyword or YulBlobBaseFeeKeyword or YulBlobHashKeyword or YulBlockHashKeyword or YulByteKeyword or YulCallCodeKeyword or YulCallDataCopyKeyword or YulCallDataLoadKeyword or YulCallDataSizeKeyword or YulCallKeyword or YulCallValueKeyword or YulCallerKeyword or YulChainIdKeyword or YulCoinBaseKeyword or YulCreate2Keyword or YulCreateKeyword or YulDecimalLiteral or YulDelegateCallKeyword or YulDivKeyword or YulEqKeyword or YulExpKeyword or YulExtCodeCopyKeyword or YulExtCodeHashKeyword or YulExtCodeSizeKeyword or YulFalseKeyword or YulGasKeyword or YulGasLimitKeyword or YulGasPriceKeyword or YulGtKeyword or YulHexLiteral or YulIdentifier or YulInvalidKeyword or YulIsZeroKeyword or YulKeccak256Keyword or YulLog0Keyword or YulLog1Keyword or YulLog2Keyword or YulLog3Keyword or YulLog4Keyword or YulLtKeyword or YulMCopyKeyword or YulMLoadKeyword or YulMSizeKeyword or YulMStore8Keyword or YulMStoreKeyword or YulModKeyword or YulMulKeyword or YulMulModKeyword or YulNotKeyword or YulNumberKeyword or YulOrKeyword or YulOriginKeyword or YulPopKeyword or YulPrevRandaoKeyword or YulReturnDataCopyKeyword or YulReturnDataSizeKeyword or YulReturnKeyword or YulRevertKeyword or YulSDivKeyword or YulSLoadKeyword or YulSModKeyword or YulSStoreKeyword or YulSarKeyword or YulSelfBalanceKeyword or YulSelfDestructKeyword or YulSgtKeyword or YulShlKeyword or YulShrKeyword or YulSignExtendKeyword or YulSltKeyword or YulStaticCallKeyword or YulStopKeyword or YulSubKeyword or YulTLoadKeyword or YulTStoreKeyword or YulTimestampKeyword or YulTrueKeyword or YulXorKeyword. + ╭─[crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jump/input.sol:1:1] + │ + 1 │ jump() + │ ───┬─── + │ ╰───── Error occurred here. + ───╯ + +Tree: + - (UNRECOGNIZED): "jump()\n" # (0..7) diff --git a/crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jump/generated/0.8.7-failure.yml b/crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jump/generated/0.8.7-failure.yml new file mode 100644 index 0000000000..f96a9d1499 --- /dev/null +++ b/crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jump/generated/0.8.7-failure.yml @@ -0,0 +1,17 @@ +# This file is generated automatically by infrastructure scripts. Please don't edit by hand. + +Source: > + 1 │ jump() │ 0..6 + +Errors: # 1 total + - > + Error: Expected DoubleQuotedHexStringLiteral or DoubleQuotedStringLiteral or SingleQuotedHexStringLiteral or SingleQuotedStringLiteral or YulAddKeyword or YulAddModKeyword or YulAddressKeyword or YulAndKeyword or YulBalanceKeyword or YulBaseFeeKeyword or YulBlockHashKeyword or YulByteKeyword or YulCallCodeKeyword or YulCallDataCopyKeyword or YulCallDataLoadKeyword or YulCallDataSizeKeyword or YulCallKeyword or YulCallValueKeyword or YulCallerKeyword or YulChainIdKeyword or YulCoinBaseKeyword or YulCreate2Keyword or YulCreateKeyword or YulDecimalLiteral or YulDelegateCallKeyword or YulDifficultyKeyword or YulDivKeyword or YulEqKeyword or YulExpKeyword or YulExtCodeCopyKeyword or YulExtCodeHashKeyword or YulExtCodeSizeKeyword or YulFalseKeyword or YulGasKeyword or YulGasLimitKeyword or YulGasPriceKeyword or YulGtKeyword or YulHexLiteral or YulIdentifier or YulInvalidKeyword or YulIsZeroKeyword or YulKeccak256Keyword or YulLog0Keyword or YulLog1Keyword or YulLog2Keyword or YulLog3Keyword or YulLog4Keyword or YulLtKeyword or YulMLoadKeyword or YulMSizeKeyword or YulMStore8Keyword or YulMStoreKeyword or YulModKeyword or YulMulKeyword or YulMulModKeyword or YulNotKeyword or YulNumberKeyword or YulOrKeyword or YulOriginKeyword or YulPopKeyword or YulReturnDataCopyKeyword or YulReturnDataSizeKeyword or YulReturnKeyword or YulRevertKeyword or YulSDivKeyword or YulSLoadKeyword or YulSModKeyword or YulSStoreKeyword or YulSarKeyword or YulSelfBalanceKeyword or YulSelfDestructKeyword or YulSgtKeyword or YulShlKeyword or YulShrKeyword or YulSignExtendKeyword or YulSltKeyword or YulStaticCallKeyword or YulStopKeyword or YulSubKeyword or YulTimestampKeyword or YulTrueKeyword or YulXorKeyword. + ╭─[crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jump/input.sol:1:1] + │ + 1 │ jump() + │ ───┬─── + │ ╰───── Error occurred here. + ───╯ + +Tree: + - (UNRECOGNIZED): "jump()\n" # (0..7) diff --git a/crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jump/input.sol b/crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jump/input.sol new file mode 100644 index 0000000000..6d80ca8fa4 --- /dev/null +++ b/crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jump/input.sol @@ -0,0 +1 @@ +jump() diff --git a/crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jumpi/generated/0.4.11-success.yml b/crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jumpi/generated/0.4.11-success.yml new file mode 100644 index 0000000000..3711e0b206 --- /dev/null +++ b/crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jumpi/generated/0.4.11-success.yml @@ -0,0 +1,14 @@ +# This file is generated automatically by infrastructure scripts. Please don't edit by hand. + +Source: > + 1 │ jumpi() │ 0..7 + +Errors: [] + +Tree: + - (YulFunctionCallExpression): # "jumpi()\n" (0..8) + - (operand꞉ YulExpression) ► (variant꞉ YulBuiltInFunction) ► (variant꞉ YulJumpiKeyword): "jumpi" # (0..5) + - (open_paren꞉ OpenParen): "(" # (5..6) + - (arguments꞉ YulArguments): [] # (6..6) + - (close_paren꞉ CloseParen): ")" # (6..7) + - (trailing_trivia꞉ EndOfLine): "\n" # (7..8) diff --git a/crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jumpi/generated/0.5.0-failure.yml b/crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jumpi/generated/0.5.0-failure.yml new file mode 100644 index 0000000000..a2993d10b4 --- /dev/null +++ b/crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jumpi/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 │ jumpi() │ 0..7 + +Errors: # 1 total + - > + Error: Expected DoubleQuotedHexStringLiteral or DoubleQuotedStringLiteral or SingleQuotedHexStringLiteral or SingleQuotedStringLiteral or YulAddKeyword or YulAddModKeyword or YulAddressKeyword or YulAndKeyword or YulBalanceKeyword or YulBlockHashKeyword or YulByteKeyword or YulCallCodeKeyword or YulCallDataCopyKeyword or YulCallDataLoadKeyword or YulCallDataSizeKeyword or YulCallKeyword or YulCallValueKeyword or YulCallerKeyword or YulChainIdKeyword or YulCoinBaseKeyword or YulCreate2Keyword or YulCreateKeyword or YulDecimalLiteral or YulDelegateCallKeyword or YulDifficultyKeyword or YulDivKeyword or YulEqKeyword or YulExpKeyword or YulExtCodeCopyKeyword or YulExtCodeHashKeyword or YulExtCodeSizeKeyword or YulFalseKeyword or YulGasKeyword or YulGasLimitKeyword or YulGasPriceKeyword or YulGtKeyword or YulHexLiteral or YulIdentifier or YulInvalidKeyword or YulIsZeroKeyword or YulKeccak256Keyword or YulLog0Keyword or YulLog1Keyword or YulLog2Keyword or YulLog3Keyword or YulLog4Keyword or YulLtKeyword or YulMLoadKeyword or YulMSizeKeyword or YulMStore8Keyword or YulMStoreKeyword or YulModKeyword or YulMulKeyword or YulMulModKeyword or YulNotKeyword or YulNumberKeyword or YulOrKeyword or YulOriginKeyword or YulPopKeyword or YulReturnDataCopyKeyword or YulReturnDataSizeKeyword or YulReturnKeyword or YulRevertKeyword or YulSDivKeyword or YulSLoadKeyword or YulSModKeyword or YulSStoreKeyword or YulSarKeyword or YulSelfBalanceKeyword or YulSelfDestructKeyword or YulSgtKeyword or YulShlKeyword or YulShrKeyword or YulSignExtendKeyword or YulSltKeyword or YulStaticCallKeyword or YulStopKeyword or YulSubKeyword or YulTimestampKeyword or YulTrueKeyword or YulXorKeyword. + ╭─[crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jumpi/input.sol:1:1] + │ + 1 │ jumpi() + │ ────┬─── + │ ╰───── Error occurred here. + ───╯ + +Tree: + - (UNRECOGNIZED): "jumpi()\n" # (0..8) diff --git a/crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jumpi/generated/0.8.18-failure.yml b/crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jumpi/generated/0.8.18-failure.yml new file mode 100644 index 0000000000..2fcb53ba57 --- /dev/null +++ b/crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jumpi/generated/0.8.18-failure.yml @@ -0,0 +1,17 @@ +# This file is generated automatically by infrastructure scripts. Please don't edit by hand. + +Source: > + 1 │ jumpi() │ 0..7 + +Errors: # 1 total + - > + Error: Expected DoubleQuotedHexStringLiteral or DoubleQuotedStringLiteral or SingleQuotedHexStringLiteral or SingleQuotedStringLiteral or YulAddKeyword or YulAddModKeyword or YulAddressKeyword or YulAndKeyword or YulBalanceKeyword or YulBaseFeeKeyword or YulBlockHashKeyword or YulByteKeyword or YulCallCodeKeyword or YulCallDataCopyKeyword or YulCallDataLoadKeyword or YulCallDataSizeKeyword or YulCallKeyword or YulCallValueKeyword or YulCallerKeyword or YulChainIdKeyword or YulCoinBaseKeyword or YulCreate2Keyword or YulCreateKeyword or YulDecimalLiteral or YulDelegateCallKeyword or YulDivKeyword or YulEqKeyword or YulExpKeyword or YulExtCodeCopyKeyword or YulExtCodeHashKeyword or YulExtCodeSizeKeyword or YulFalseKeyword or YulGasKeyword or YulGasLimitKeyword or YulGasPriceKeyword or YulGtKeyword or YulHexLiteral or YulIdentifier or YulInvalidKeyword or YulIsZeroKeyword or YulKeccak256Keyword or YulLog0Keyword or YulLog1Keyword or YulLog2Keyword or YulLog3Keyword or YulLog4Keyword or YulLtKeyword or YulMLoadKeyword or YulMSizeKeyword or YulMStore8Keyword or YulMStoreKeyword or YulModKeyword or YulMulKeyword or YulMulModKeyword or YulNotKeyword or YulNumberKeyword or YulOrKeyword or YulOriginKeyword or YulPopKeyword or YulPrevRandaoKeyword or YulReturnDataCopyKeyword or YulReturnDataSizeKeyword or YulReturnKeyword or YulRevertKeyword or YulSDivKeyword or YulSLoadKeyword or YulSModKeyword or YulSStoreKeyword or YulSarKeyword or YulSelfBalanceKeyword or YulSelfDestructKeyword or YulSgtKeyword or YulShlKeyword or YulShrKeyword or YulSignExtendKeyword or YulSltKeyword or YulStaticCallKeyword or YulStopKeyword or YulSubKeyword or YulTimestampKeyword or YulTrueKeyword or YulXorKeyword. + ╭─[crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jumpi/input.sol:1:1] + │ + 1 │ jumpi() + │ ────┬─── + │ ╰───── Error occurred here. + ───╯ + +Tree: + - (UNRECOGNIZED): "jumpi()\n" # (0..8) diff --git a/crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jumpi/generated/0.8.24-failure.yml b/crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jumpi/generated/0.8.24-failure.yml new file mode 100644 index 0000000000..81ac40f2a8 --- /dev/null +++ b/crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jumpi/generated/0.8.24-failure.yml @@ -0,0 +1,17 @@ +# This file is generated automatically by infrastructure scripts. Please don't edit by hand. + +Source: > + 1 │ jumpi() │ 0..7 + +Errors: # 1 total + - > + Error: Expected DoubleQuotedHexStringLiteral or DoubleQuotedStringLiteral or SingleQuotedHexStringLiteral or SingleQuotedStringLiteral or YulAddKeyword or YulAddModKeyword or YulAddressKeyword or YulAndKeyword or YulBalanceKeyword or YulBaseFeeKeyword or YulBlobBaseFeeKeyword or YulBlobHashKeyword or YulBlockHashKeyword or YulByteKeyword or YulCallCodeKeyword or YulCallDataCopyKeyword or YulCallDataLoadKeyword or YulCallDataSizeKeyword or YulCallKeyword or YulCallValueKeyword or YulCallerKeyword or YulChainIdKeyword or YulCoinBaseKeyword or YulCreate2Keyword or YulCreateKeyword or YulDecimalLiteral or YulDelegateCallKeyword or YulDivKeyword or YulEqKeyword or YulExpKeyword or YulExtCodeCopyKeyword or YulExtCodeHashKeyword or YulExtCodeSizeKeyword or YulFalseKeyword or YulGasKeyword or YulGasLimitKeyword or YulGasPriceKeyword or YulGtKeyword or YulHexLiteral or YulIdentifier or YulInvalidKeyword or YulIsZeroKeyword or YulKeccak256Keyword or YulLog0Keyword or YulLog1Keyword or YulLog2Keyword or YulLog3Keyword or YulLog4Keyword or YulLtKeyword or YulMCopyKeyword or YulMLoadKeyword or YulMSizeKeyword or YulMStore8Keyword or YulMStoreKeyword or YulModKeyword or YulMulKeyword or YulMulModKeyword or YulNotKeyword or YulNumberKeyword or YulOrKeyword or YulOriginKeyword or YulPopKeyword or YulPrevRandaoKeyword or YulReturnDataCopyKeyword or YulReturnDataSizeKeyword or YulReturnKeyword or YulRevertKeyword or YulSDivKeyword or YulSLoadKeyword or YulSModKeyword or YulSStoreKeyword or YulSarKeyword or YulSelfBalanceKeyword or YulSelfDestructKeyword or YulSgtKeyword or YulShlKeyword or YulShrKeyword or YulSignExtendKeyword or YulSltKeyword or YulStaticCallKeyword or YulStopKeyword or YulSubKeyword or YulTLoadKeyword or YulTStoreKeyword or YulTimestampKeyword or YulTrueKeyword or YulXorKeyword. + ╭─[crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jumpi/input.sol:1:1] + │ + 1 │ jumpi() + │ ────┬─── + │ ╰───── Error occurred here. + ───╯ + +Tree: + - (UNRECOGNIZED): "jumpi()\n" # (0..8) diff --git a/crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jumpi/generated/0.8.7-failure.yml b/crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jumpi/generated/0.8.7-failure.yml new file mode 100644 index 0000000000..3c5be2d138 --- /dev/null +++ b/crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jumpi/generated/0.8.7-failure.yml @@ -0,0 +1,17 @@ +# This file is generated automatically by infrastructure scripts. Please don't edit by hand. + +Source: > + 1 │ jumpi() │ 0..7 + +Errors: # 1 total + - > + Error: Expected DoubleQuotedHexStringLiteral or DoubleQuotedStringLiteral or SingleQuotedHexStringLiteral or SingleQuotedStringLiteral or YulAddKeyword or YulAddModKeyword or YulAddressKeyword or YulAndKeyword or YulBalanceKeyword or YulBaseFeeKeyword or YulBlockHashKeyword or YulByteKeyword or YulCallCodeKeyword or YulCallDataCopyKeyword or YulCallDataLoadKeyword or YulCallDataSizeKeyword or YulCallKeyword or YulCallValueKeyword or YulCallerKeyword or YulChainIdKeyword or YulCoinBaseKeyword or YulCreate2Keyword or YulCreateKeyword or YulDecimalLiteral or YulDelegateCallKeyword or YulDifficultyKeyword or YulDivKeyword or YulEqKeyword or YulExpKeyword or YulExtCodeCopyKeyword or YulExtCodeHashKeyword or YulExtCodeSizeKeyword or YulFalseKeyword or YulGasKeyword or YulGasLimitKeyword or YulGasPriceKeyword or YulGtKeyword or YulHexLiteral or YulIdentifier or YulInvalidKeyword or YulIsZeroKeyword or YulKeccak256Keyword or YulLog0Keyword or YulLog1Keyword or YulLog2Keyword or YulLog3Keyword or YulLog4Keyword or YulLtKeyword or YulMLoadKeyword or YulMSizeKeyword or YulMStore8Keyword or YulMStoreKeyword or YulModKeyword or YulMulKeyword or YulMulModKeyword or YulNotKeyword or YulNumberKeyword or YulOrKeyword or YulOriginKeyword or YulPopKeyword or YulReturnDataCopyKeyword or YulReturnDataSizeKeyword or YulReturnKeyword or YulRevertKeyword or YulSDivKeyword or YulSLoadKeyword or YulSModKeyword or YulSStoreKeyword or YulSarKeyword or YulSelfBalanceKeyword or YulSelfDestructKeyword or YulSgtKeyword or YulShlKeyword or YulShrKeyword or YulSignExtendKeyword or YulSltKeyword or YulStaticCallKeyword or YulStopKeyword or YulSubKeyword or YulTimestampKeyword or YulTrueKeyword or YulXorKeyword. + ╭─[crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jumpi/input.sol:1:1] + │ + 1 │ jumpi() + │ ────┬─── + │ ╰───── Error occurred here. + ───╯ + +Tree: + - (UNRECOGNIZED): "jumpi()\n" # (0..8) diff --git a/crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jumpi/input.sol b/crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jumpi/input.sol new file mode 100644 index 0000000000..1be1d508ac --- /dev/null +++ b/crates/solidity/testing/snapshots/cst_output/YulFunctionCallExpression/built_in_jumpi/input.sol @@ -0,0 +1 @@ +jumpi() diff --git a/crates/solidity/testing/snapshots/cst_output/YulVariableAssignmentStatement/identifier_jump/generated/0.4.11-failure.yml b/crates/solidity/testing/snapshots/cst_output/YulVariableAssignmentStatement/identifier_jump/generated/0.4.11-failure.yml new file mode 100644 index 0000000000..09ac706353 --- /dev/null +++ b/crates/solidity/testing/snapshots/cst_output/YulVariableAssignmentStatement/identifier_jump/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 │ jump := 0 │ 0..9 + +Errors: # 1 total + - > + Error: Expected YulIdentifier. + ╭─[crates/solidity/testing/snapshots/cst_output/YulVariableAssignmentStatement/identifier_jump/input.sol:1:1] + │ + 1 │ jump := 0 + │ ─────┬──── + │ ╰────── Error occurred here. + ───╯ + +Tree: + - (UNRECOGNIZED): "jump := 0\n" # (0..10) diff --git a/crates/solidity/testing/snapshots/cst_output/YulVariableAssignmentStatement/identifier_jump/input.sol b/crates/solidity/testing/snapshots/cst_output/YulVariableAssignmentStatement/identifier_jump/input.sol new file mode 100644 index 0000000000..bbb8e1299c --- /dev/null +++ b/crates/solidity/testing/snapshots/cst_output/YulVariableAssignmentStatement/identifier_jump/input.sol @@ -0,0 +1 @@ +jump := 0 diff --git a/crates/solidity/testing/snapshots/cst_output/YulVariableAssignmentStatement/identifier_jumpi/generated/0.4.11-failure.yml b/crates/solidity/testing/snapshots/cst_output/YulVariableAssignmentStatement/identifier_jumpi/generated/0.4.11-failure.yml new file mode 100644 index 0000000000..cbf4a3ef3e --- /dev/null +++ b/crates/solidity/testing/snapshots/cst_output/YulVariableAssignmentStatement/identifier_jumpi/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 │ jumpi := 0 │ 0..10 + +Errors: # 1 total + - > + Error: Expected YulIdentifier. + ╭─[crates/solidity/testing/snapshots/cst_output/YulVariableAssignmentStatement/identifier_jumpi/input.sol:1:1] + │ + 1 │ jumpi := 0 + │ ─────┬───── + │ ╰─────── Error occurred here. + ───╯ + +Tree: + - (UNRECOGNIZED): "jumpi := 0\n" # (0..11) diff --git a/crates/solidity/testing/snapshots/cst_output/YulVariableAssignmentStatement/identifier_jumpi/input.sol b/crates/solidity/testing/snapshots/cst_output/YulVariableAssignmentStatement/identifier_jumpi/input.sol new file mode 100644 index 0000000000..8de2a37c98 --- /dev/null +++ b/crates/solidity/testing/snapshots/cst_output/YulVariableAssignmentStatement/identifier_jumpi/input.sol @@ -0,0 +1 @@ +jumpi := 0