\r
variable_identifier\r
=\r
- ( LITERAL | IDENTIFIER )\r
- { variable_accessor }*\r
+ variable:( LITERAL | IDENTIFIER )\r
+ accessors:{ variable_accessor }*\r
;\r
\r
variable_accessor\r
\r
variable_accessor_brackets\r
=\r
- "[" variable_identifier "]"\r
+ accessor_type:`brackets`\r
+ "[" parameter:variable_identifier "]"\r
;\r
\r
variable_accessor_call\r
=\r
- "(" [variable_accessor_call_parameters] ")"\r
+ accessor_type:`call`\r
+ "(" parameters:[variable_accessor_call_parameters] ")"\r
+ ;\r
+\r
+variable_accessor_dot\r
+ =\r
+ accessor_type:`dot`\r
+ "." parameter:variable_identifier\r
;\r
\r
variable_accessor_call_parameters\r
\r
variable_accessor_call_parameter_key\r
=\r
- {SP}* key:IDENTIFIER {SP}*\r
+ {SP}* @:IDENTIFIER {SP}*\r
;\r
\r
variable_accessor_call_parameter_value\r
| "or"\r
;\r
\r
-variable_accessor_dot\r
- =\r
- "." variable_identifier\r
- ;\r
-\r
variable_filter\r
=\r
{SP}* "|" {SP}* @:filter\r
\r
LIST_LITERAL\r
=\r
- "[" {SP}* list+:LITERAL {SP}* { "," {SP}* list+:LITERAL }* {SP}* "]"\r
- | "[" {SP}* "]"\r
+ literal_type:`list`\r
+ (\r
+ | ( "[" {SP}* value+:LITERAL {SP}* { "," {SP}* value+:LITERAL }* {SP}* "]" )\r
+ | ( "[" {SP}* "]" )\r
+ )\r
;\r
\r
TUPLE_LITERAL\r
=\r
- "(" {SP}* tuple+:LITERAL {SP}* { "," {SP}* tuple+:LITERAL {SP}* } ")"\r
- | "(" {SP}* tuple+:LITERAL {SP}* "," {SP}* ")"\r
+ literal_type:`tuple`\r
+ (\r
+ | ( "(" {SP}* value+:LITERAL {SP}* { "," {SP}* value+:LITERAL {SP}* } ")" )\r
+ | ( "(" {SP}* value+:LITERAL {SP}* "," {SP}* ")" )\r
+ )\r
;\r
\r
INTEGER_LITERAL\r
\r
NUMBER_LITERAL\r
=\r
+ literal_type:`number`\r
whole:INTEGER_LITERAL\r
["." fractional:INTEGER_LITERAL]\r
[ "e" exponent:[ ( "+" | "-" ) ] INTEGER_LITERAL ]\r
\r
STRING_LITERAL_SINGLE_QUOTE\r
=\r
- "'" { !"'" /./ }* "'"\r
+ literal_type:`string`\r
+ "'" value:{ !"'" /./ }* "'"\r
;\r
\r
STRING_LITERAL_DOUBLE_QUOTE\r
=\r
- '"' { !'"' /./ }* '"'\r
+ literal_type:`string`\r
+ '"' value:{ !'"' /./ }* '"'\r
;\r
\r
BOOLEAN_LITERAL\r
=\r
- (("true" | "True") @:`True`) | (("false" | "False") @:`False`)\r
+ literal_type:`boolean`\r
+ (\r
+ | ( ("true" | "True") value:`True`)\r
+ | ( ("false" | "False") value:`False`)\r
+ )\r
;\r
\r
IDENTIFIER\r