6.2. Yul Expressions
YulExpression = (* variant: *) YulFunctionCallExpression
| (* variant: *) YulLiteral
| (* variant: *) YulPath;
(* Postfix unary operator *)
YulFunctionCallExpression = (* operand: *) YulExpression
(* open_paren: *) OPEN_PAREN
(* arguments: *) YulArguments
(* close_paren: *) CLOSE_PAREN;
YulArguments = ((* item: *) YulExpression ((* separator: *) COMMA (* item: *) YulExpression)*)?;
YulPaths = (* item: *) YulPath ((* separator: *) COMMA (* item: *) YulPath)*;
YulPath = (* item: *) YUL_IDENTIFIER ((* separator: *) PERIOD (* item: *) YUL_IDENTIFIER)*;
(* Introduced in 0.5.8 and deprecated in 0.7.0. *)
YUL_IDENTIFIER = «IDENTIFIER_START» («IDENTIFIER_PART» | ".")*;
YUL_IDENTIFIER = «IDENTIFIER_START» «IDENTIFIER_PART»*;
YulLiteral = (* variant: *) YUL_TRUE_KEYWORD (* Introduced in 0.6.2 *)
| (* variant: *) YUL_FALSE_KEYWORD (* Introduced in 0.6.2 *)
| (* variant: *) YUL_DECIMAL_LITERAL
| (* variant: *) YUL_HEX_LITERAL
| (* variant: *) HexStringLiteral
| (* variant: *) StringLiteral;
YUL_DECIMAL_LITERAL = ("0" | ("1"…"9" "0"…"9"*)) (?!«IDENTIFIER_START»);
YUL_HEX_LITERAL = "0x" «HEX_CHARACTER»+ (?!«IDENTIFIER_START»);