{ "name": "elixir", "rules": { "source": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_terminator" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_expression" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_terminator" }, { "type": "SYMBOL", "name": "_expression" } ] } } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_terminator" }, { "type": "BLANK" } ] } ] }, { "type": "BLANK" } ] } ] }, "_terminator": { "type": "PREC_RIGHT", "value": 0, "content": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "REPEAT", "content": { "type": "PATTERN", "value": "\\r?\\n" } }, { "type": "STRING", "value": ";" } ] }, { "type": "REPEAT1", "content": { "type": "PATTERN", "value": "\\r?\\n" } } ] } }, "_expression": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "block" }, { "type": "SYMBOL", "name": "identifier" }, { "type": "SYMBOL", "name": "alias" }, { "type": "SYMBOL", "name": "integer" }, { "type": "SYMBOL", "name": "float" }, { "type": "SYMBOL", "name": "char" }, { "type": "SYMBOL", "name": "boolean" }, { "type": "SYMBOL", "name": "nil" }, { "type": "SYMBOL", "name": "_atom" }, { "type": "SYMBOL", "name": "string" }, { "type": "SYMBOL", "name": "charlist" }, { "type": "SYMBOL", "name": "sigil" }, { "type": "SYMBOL", "name": "list" }, { "type": "SYMBOL", "name": "tuple" }, { "type": "SYMBOL", "name": "bitstring" }, { "type": "SYMBOL", "name": "map" }, { "type": "SYMBOL", "name": "_nullary_operator" }, { "type": "SYMBOL", "name": "unary_operator" }, { "type": "SYMBOL", "name": "binary_operator" }, { "type": "SYMBOL", "name": "dot" }, { "type": "SYMBOL", "name": "call" }, { "type": "SYMBOL", "name": "access_call" }, { "type": "SYMBOL", "name": "anonymous_function" } ] }, "block": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_terminator" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "stab_clause" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_terminator" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "stab_clause" } ] } ] } } ] }, { "type": "SEQ", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_expression" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_terminator" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_expression" } ] } ] } } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_terminator" }, { "type": "BLANK" } ] } ] } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" } ] }, "identifier": { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[_\\p{Ll}\\p{Lm}\\p{Lo}\\p{Nl}\\u1885\\u1886\\u2118\\u212E\\u309B\\u309C][\\p{ID_Continue}]*[?!]?" }, { "type": "STRING", "value": "..." } ] }, "alias": { "type": "TOKEN", "content": { "type": "SEQ", "members": [ { "type": "PATTERN", "value": "[A-Z][_a-zA-Z0-9]*" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "PATTERN", "value": "\\s*\\.\\s*" }, { "type": "PATTERN", "value": "[A-Z][_a-zA-Z0-9]*" } ] } } ] } }, "integer": { "type": "TOKEN", "content": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "PATTERN", "value": "[0-9]+" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "_" }, { "type": "PATTERN", "value": "[0-9]+" } ] } } ] }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "0b" }, { "type": "SEQ", "members": [ { "type": "PATTERN", "value": "[0-1]+" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "_" }, { "type": "PATTERN", "value": "[0-1]+" } ] } } ] } ] }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "0o" }, { "type": "SEQ", "members": [ { "type": "PATTERN", "value": "[0-7]+" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "_" }, { "type": "PATTERN", "value": "[0-7]+" } ] } } ] } ] }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "0x" }, { "type": "SEQ", "members": [ { "type": "PATTERN", "value": "[0-9a-fA-F]+" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "_" }, { "type": "PATTERN", "value": "[0-9a-fA-F]+" } ] } } ] } ] } ] } }, "float": { "type": "TOKEN", "content": { "type": "SEQ", "members": [ { "type": "SEQ", "members": [ { "type": "PATTERN", "value": "[0-9]+" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "_" }, { "type": "PATTERN", "value": "[0-9]+" } ] } } ] }, { "type": "STRING", "value": "." }, { "type": "SEQ", "members": [ { "type": "PATTERN", "value": "[0-9]+" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "_" }, { "type": "PATTERN", "value": "[0-9]+" } ] } } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "PATTERN", "value": "[eE]" }, { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "-" }, { "type": "STRING", "value": "+" } ] }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "PATTERN", "value": "[0-9]+" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "_" }, { "type": "PATTERN", "value": "[0-9]+" } ] } } ] }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "0b" }, { "type": "SEQ", "members": [ { "type": "PATTERN", "value": "[0-1]+" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "_" }, { "type": "PATTERN", "value": "[0-1]+" } ] } } ] } ] }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "0o" }, { "type": "SEQ", "members": [ { "type": "PATTERN", "value": "[0-7]+" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "_" }, { "type": "PATTERN", "value": "[0-7]+" } ] } } ] } ] }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "0x" }, { "type": "SEQ", "members": [ { "type": "PATTERN", "value": "[0-9a-fA-F]+" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "_" }, { "type": "PATTERN", "value": "[0-9a-fA-F]+" } ] } } ] } ] } ] } ] }, { "type": "BLANK" } ] } ] } }, "char": { "type": "PATTERN", "value": "\\?(.|\\\\.)" }, "boolean": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "true" }, { "type": "STRING", "value": "false" } ] }, "nil": { "type": "STRING", "value": "nil" }, "_atom": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "atom" }, { "type": "SYMBOL", "name": "quoted_atom" } ] }, "atom": { "type": "TOKEN", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": ":" }, { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[\\p{ID_Start}_][\\p{ID_Continue}@]*[?!]?" }, { "type": "STRING", "value": "->" }, { "type": "STRING", "value": "::" }, { "type": "STRING", "value": "|" }, { "type": "STRING", "value": "&" }, { "type": "STRING", "value": "=" }, { "type": "STRING", "value": "^^^" }, { "type": "STRING", "value": "//" }, { "type": "STRING", "value": ".." }, { "type": "STRING", "value": "**" }, { "type": "STRING", "value": "." }, { "type": "STRING", "value": "@" }, { "type": "STRING", "value": "<-" }, { "type": "STRING", "value": "\\\\" }, { "type": "STRING", "value": "||" }, { "type": "STRING", "value": "|||" }, { "type": "STRING", "value": "&&" }, { "type": "STRING", "value": "&&&" }, { "type": "STRING", "value": "==" }, { "type": "STRING", "value": "!=" }, { "type": "STRING", "value": "=~" }, { "type": "STRING", "value": "===" }, { "type": "STRING", "value": "!==" }, { "type": "STRING", "value": "<" }, { "type": "STRING", "value": ">" }, { "type": "STRING", "value": "<=" }, { "type": "STRING", "value": ">=" }, { "type": "STRING", "value": "|>" }, { "type": "STRING", "value": "<<<" }, { "type": "STRING", "value": ">>>" }, { "type": "STRING", "value": "<<~" }, { "type": "STRING", "value": "~>>" }, { "type": "STRING", "value": "<~" }, { "type": "STRING", "value": "~>" }, { "type": "STRING", "value": "<~>" }, { "type": "STRING", "value": "<|>" }, { "type": "STRING", "value": "++" }, { "type": "STRING", "value": "--" }, { "type": "STRING", "value": "+++" }, { "type": "STRING", "value": "---" }, { "type": "STRING", "value": "<>" }, { "type": "STRING", "value": "+" }, { "type": "STRING", "value": "-" }, { "type": "STRING", "value": "*" }, { "type": "STRING", "value": "/" }, { "type": "STRING", "value": "+" }, { "type": "STRING", "value": "-" }, { "type": "STRING", "value": "!" }, { "type": "STRING", "value": "^" }, { "type": "STRING", "value": "~~~" }, { "type": "STRING", "value": "..." }, { "type": "STRING", "value": "%{}" }, { "type": "STRING", "value": "{}" }, { "type": "STRING", "value": "%" }, { "type": "STRING", "value": "<<>>" }, { "type": "STRING", "value": "..//" } ] } ] } }, "quoted_atom": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_atom_start" }, "named": false, "value": ":" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_quoted_i_double" }, { "type": "SYMBOL", "name": "_quoted_i_single" } ] } ] }, "_quoted_i_double": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "quoted_start", "content": { "type": "STRING", "value": "\"" } }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_i_double" }, "named": true, "value": "quoted_content" }, { "type": "BLANK" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "interpolation" }, { "type": "SYMBOL", "name": "escape_sequence" } ] }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_i_double" }, "named": true, "value": "quoted_content" }, { "type": "BLANK" } ] } ] } }, { "type": "FIELD", "name": "quoted_end", "content": { "type": "STRING", "value": "\"" } } ] }, "_quoted_double": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "quoted_start", "content": { "type": "STRING", "value": "\"" } }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_double" }, "named": true, "value": "quoted_content" }, { "type": "BLANK" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "escape_sequence" }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_double" }, "named": true, "value": "quoted_content" }, { "type": "BLANK" } ] } ] } }, { "type": "FIELD", "name": "quoted_end", "content": { "type": "STRING", "value": "\"" } } ] }, "_quoted_i_single": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "quoted_start", "content": { "type": "STRING", "value": "'" } }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_i_single" }, "named": true, "value": "quoted_content" }, { "type": "BLANK" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "interpolation" }, { "type": "SYMBOL", "name": "escape_sequence" } ] }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_i_single" }, "named": true, "value": "quoted_content" }, { "type": "BLANK" } ] } ] } }, { "type": "FIELD", "name": "quoted_end", "content": { "type": "STRING", "value": "'" } } ] }, "_quoted_single": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "quoted_start", "content": { "type": "STRING", "value": "'" } }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_single" }, "named": true, "value": "quoted_content" }, { "type": "BLANK" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "escape_sequence" }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_single" }, "named": true, "value": "quoted_content" }, { "type": "BLANK" } ] } ] } }, { "type": "FIELD", "name": "quoted_end", "content": { "type": "STRING", "value": "'" } } ] }, "_quoted_i_heredoc_single": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "quoted_start", "content": { "type": "STRING", "value": "'''" } }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_i_heredoc_single" }, "named": true, "value": "quoted_content" }, { "type": "BLANK" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "interpolation" }, { "type": "SYMBOL", "name": "escape_sequence" } ] }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_i_heredoc_single" }, "named": true, "value": "quoted_content" }, { "type": "BLANK" } ] } ] } }, { "type": "FIELD", "name": "quoted_end", "content": { "type": "STRING", "value": "'''" } } ] }, "_quoted_heredoc_single": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "quoted_start", "content": { "type": "STRING", "value": "'''" } }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_heredoc_single" }, "named": true, "value": "quoted_content" }, { "type": "BLANK" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "escape_sequence" }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_heredoc_single" }, "named": true, "value": "quoted_content" }, { "type": "BLANK" } ] } ] } }, { "type": "FIELD", "name": "quoted_end", "content": { "type": "STRING", "value": "'''" } } ] }, "_quoted_i_heredoc_double": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "quoted_start", "content": { "type": "STRING", "value": "\"\"\"" } }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_i_heredoc_double" }, "named": true, "value": "quoted_content" }, { "type": "BLANK" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "interpolation" }, { "type": "SYMBOL", "name": "escape_sequence" } ] }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_i_heredoc_double" }, "named": true, "value": "quoted_content" }, { "type": "BLANK" } ] } ] } }, { "type": "FIELD", "name": "quoted_end", "content": { "type": "STRING", "value": "\"\"\"" } } ] }, "_quoted_heredoc_double": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "quoted_start", "content": { "type": "STRING", "value": "\"\"\"" } }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_heredoc_double" }, "named": true, "value": "quoted_content" }, { "type": "BLANK" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "escape_sequence" }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_heredoc_double" }, "named": true, "value": "quoted_content" }, { "type": "BLANK" } ] } ] } }, { "type": "FIELD", "name": "quoted_end", "content": { "type": "STRING", "value": "\"\"\"" } } ] }, "_quoted_i_parenthesis": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "quoted_start", "content": { "type": "STRING", "value": "(" } }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_i_parenthesis" }, "named": true, "value": "quoted_content" }, { "type": "BLANK" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "interpolation" }, { "type": "SYMBOL", "name": "escape_sequence" } ] }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_i_parenthesis" }, "named": true, "value": "quoted_content" }, { "type": "BLANK" } ] } ] } }, { "type": "FIELD", "name": "quoted_end", "content": { "type": "STRING", "value": ")" } } ] }, "_quoted_parenthesis": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "quoted_start", "content": { "type": "STRING", "value": "(" } }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_parenthesis" }, "named": true, "value": "quoted_content" }, { "type": "BLANK" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "escape_sequence" }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_parenthesis" }, "named": true, "value": "quoted_content" }, { "type": "BLANK" } ] } ] } }, { "type": "FIELD", "name": "quoted_end", "content": { "type": "STRING", "value": ")" } } ] }, "_quoted_i_curly": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "quoted_start", "content": { "type": "STRING", "value": "{" } }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_i_curly" }, "named": true, "value": "quoted_content" }, { "type": "BLANK" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "interpolation" }, { "type": "SYMBOL", "name": "escape_sequence" } ] }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_i_curly" }, "named": true, "value": "quoted_content" }, { "type": "BLANK" } ] } ] } }, { "type": "FIELD", "name": "quoted_end", "content": { "type": "STRING", "value": "}" } } ] }, "_quoted_curly": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "quoted_start", "content": { "type": "STRING", "value": "{" } }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_curly" }, "named": true, "value": "quoted_content" }, { "type": "BLANK" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "escape_sequence" }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_curly" }, "named": true, "value": "quoted_content" }, { "type": "BLANK" } ] } ] } }, { "type": "FIELD", "name": "quoted_end", "content": { "type": "STRING", "value": "}" } } ] }, "_quoted_i_square": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "quoted_start", "content": { "type": "STRING", "value": "[" } }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_i_square" }, "named": true, "value": "quoted_content" }, { "type": "BLANK" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "interpolation" }, { "type": "SYMBOL", "name": "escape_sequence" } ] }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_i_square" }, "named": true, "value": "quoted_content" }, { "type": "BLANK" } ] } ] } }, { "type": "FIELD", "name": "quoted_end", "content": { "type": "STRING", "value": "]" } } ] }, "_quoted_square": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "quoted_start", "content": { "type": "STRING", "value": "[" } }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_square" }, "named": true, "value": "quoted_content" }, { "type": "BLANK" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "escape_sequence" }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_square" }, "named": true, "value": "quoted_content" }, { "type": "BLANK" } ] } ] } }, { "type": "FIELD", "name": "quoted_end", "content": { "type": "STRING", "value": "]" } } ] }, "_quoted_i_angle": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "quoted_start", "content": { "type": "STRING", "value": "<" } }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_i_angle" }, "named": true, "value": "quoted_content" }, { "type": "BLANK" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "interpolation" }, { "type": "SYMBOL", "name": "escape_sequence" } ] }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_i_angle" }, "named": true, "value": "quoted_content" }, { "type": "BLANK" } ] } ] } }, { "type": "FIELD", "name": "quoted_end", "content": { "type": "STRING", "value": ">" } } ] }, "_quoted_angle": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "quoted_start", "content": { "type": "STRING", "value": "<" } }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_angle" }, "named": true, "value": "quoted_content" }, { "type": "BLANK" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "escape_sequence" }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_angle" }, "named": true, "value": "quoted_content" }, { "type": "BLANK" } ] } ] } }, { "type": "FIELD", "name": "quoted_end", "content": { "type": "STRING", "value": ">" } } ] }, "_quoted_i_bar": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "quoted_start", "content": { "type": "STRING", "value": "|" } }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_i_bar" }, "named": true, "value": "quoted_content" }, { "type": "BLANK" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "interpolation" }, { "type": "SYMBOL", "name": "escape_sequence" } ] }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_i_bar" }, "named": true, "value": "quoted_content" }, { "type": "BLANK" } ] } ] } }, { "type": "FIELD", "name": "quoted_end", "content": { "type": "STRING", "value": "|" } } ] }, "_quoted_bar": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "quoted_start", "content": { "type": "STRING", "value": "|" } }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_bar" }, "named": true, "value": "quoted_content" }, { "type": "BLANK" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "escape_sequence" }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_bar" }, "named": true, "value": "quoted_content" }, { "type": "BLANK" } ] } ] } }, { "type": "FIELD", "name": "quoted_end", "content": { "type": "STRING", "value": "|" } } ] }, "_quoted_i_slash": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "quoted_start", "content": { "type": "STRING", "value": "/" } }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_i_slash" }, "named": true, "value": "quoted_content" }, { "type": "BLANK" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "interpolation" }, { "type": "SYMBOL", "name": "escape_sequence" } ] }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_i_slash" }, "named": true, "value": "quoted_content" }, { "type": "BLANK" } ] } ] } }, { "type": "FIELD", "name": "quoted_end", "content": { "type": "STRING", "value": "/" } } ] }, "_quoted_slash": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "quoted_start", "content": { "type": "STRING", "value": "/" } }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_slash" }, "named": true, "value": "quoted_content" }, { "type": "BLANK" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "escape_sequence" }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_slash" }, "named": true, "value": "quoted_content" }, { "type": "BLANK" } ] } ] } }, { "type": "FIELD", "name": "quoted_end", "content": { "type": "STRING", "value": "/" } } ] }, "string": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_quoted_i_double" }, { "type": "SYMBOL", "name": "_quoted_i_heredoc_double" } ] }, "charlist": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_quoted_i_single" }, { "type": "SYMBOL", "name": "_quoted_i_heredoc_single" } ] }, "interpolation": { "type": "SEQ", "members": [ { "type": "STRING", "value": "#{" }, { "type": "SYMBOL", "name": "_expression" }, { "type": "STRING", "value": "}" } ] }, "escape_sequence": { "type": "TOKEN", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "\\" }, { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[^ux]" }, { "type": "PATTERN", "value": "x[0-9a-fA-F]{1,2}" }, { "type": "PATTERN", "value": "x{[0-9a-fA-F]+}" }, { "type": "PATTERN", "value": "u{[0-9a-fA-F]+}" }, { "type": "PATTERN", "value": "u[0-9a-fA-F]{4}" } ] } ] } }, "sigil": { "type": "SEQ", "members": [ { "type": "STRING", "value": "~" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "IMMEDIATE_TOKEN", "content": { "type": "PATTERN", "value": "[a-z]" } }, "named": true, "value": "sigil_name" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_quoted_i_double" }, { "type": "SYMBOL", "name": "_quoted_i_single" }, { "type": "SYMBOL", "name": "_quoted_i_heredoc_single" }, { "type": "SYMBOL", "name": "_quoted_i_heredoc_double" }, { "type": "SYMBOL", "name": "_quoted_i_parenthesis" }, { "type": "SYMBOL", "name": "_quoted_i_curly" }, { "type": "SYMBOL", "name": "_quoted_i_square" }, { "type": "SYMBOL", "name": "_quoted_i_angle" }, { "type": "SYMBOL", "name": "_quoted_i_bar" }, { "type": "SYMBOL", "name": "_quoted_i_slash" } ] } ] }, { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "IMMEDIATE_TOKEN", "content": { "type": "PATTERN", "value": "[A-Z]" } }, "named": true, "value": "sigil_name" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_quoted_double" }, { "type": "SYMBOL", "name": "_quoted_single" }, { "type": "SYMBOL", "name": "_quoted_heredoc_single" }, { "type": "SYMBOL", "name": "_quoted_heredoc_double" }, { "type": "SYMBOL", "name": "_quoted_parenthesis" }, { "type": "SYMBOL", "name": "_quoted_curly" }, { "type": "SYMBOL", "name": "_quoted_square" }, { "type": "SYMBOL", "name": "_quoted_angle" }, { "type": "SYMBOL", "name": "_quoted_bar" }, { "type": "SYMBOL", "name": "_quoted_slash" } ] } ] } ] }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "IMMEDIATE_TOKEN", "content": { "type": "PATTERN", "value": "[a-zA-Z0-9]+" } }, "named": true, "value": "sigil_modifiers" }, { "type": "BLANK" } ] } ] }, "keywords": { "type": "PREC_RIGHT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "pair" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "pair" } ] } } ] } }, "_keywords_with_trailing_separator": { "type": "SEQ", "members": [ { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "pair" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "pair" } ] } } ] }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "," }, { "type": "BLANK" } ] } ] }, "pair": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "key", "content": { "type": "SYMBOL", "name": "_keyword" } }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "_expression" } } ] }, "_keyword": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "keyword" }, { "type": "SYMBOL", "name": "quoted_keyword" } ] }, "keyword": { "type": "TOKEN", "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[\\p{ID_Start}_][\\p{ID_Continue}@]*[?!]?" }, { "type": "STRING", "value": "->" }, { "type": "STRING", "value": "|" }, { "type": "STRING", "value": "&" }, { "type": "STRING", "value": "=" }, { "type": "STRING", "value": "^^^" }, { "type": "STRING", "value": "//" }, { "type": "STRING", "value": ".." }, { "type": "STRING", "value": "**" }, { "type": "STRING", "value": "." }, { "type": "STRING", "value": "@" }, { "type": "STRING", "value": "<-" }, { "type": "STRING", "value": "\\\\" }, { "type": "STRING", "value": "||" }, { "type": "STRING", "value": "|||" }, { "type": "STRING", "value": "&&" }, { "type": "STRING", "value": "&&&" }, { "type": "STRING", "value": "==" }, { "type": "STRING", "value": "!=" }, { "type": "STRING", "value": "=~" }, { "type": "STRING", "value": "===" }, { "type": "STRING", "value": "!==" }, { "type": "STRING", "value": "<" }, { "type": "STRING", "value": ">" }, { "type": "STRING", "value": "<=" }, { "type": "STRING", "value": ">=" }, { "type": "STRING", "value": "|>" }, { "type": "STRING", "value": "<<<" }, { "type": "STRING", "value": ">>>" }, { "type": "STRING", "value": "<<~" }, { "type": "STRING", "value": "~>>" }, { "type": "STRING", "value": "<~" }, { "type": "STRING", "value": "~>" }, { "type": "STRING", "value": "<~>" }, { "type": "STRING", "value": "<|>" }, { "type": "STRING", "value": "++" }, { "type": "STRING", "value": "--" }, { "type": "STRING", "value": "+++" }, { "type": "STRING", "value": "---" }, { "type": "STRING", "value": "<>" }, { "type": "STRING", "value": "+" }, { "type": "STRING", "value": "-" }, { "type": "STRING", "value": "*" }, { "type": "STRING", "value": "/" }, { "type": "STRING", "value": "+" }, { "type": "STRING", "value": "-" }, { "type": "STRING", "value": "!" }, { "type": "STRING", "value": "^" }, { "type": "STRING", "value": "~~~" }, { "type": "STRING", "value": "..." }, { "type": "STRING", "value": "%{}" }, { "type": "STRING", "value": "{}" }, { "type": "STRING", "value": "%" }, { "type": "STRING", "value": "<<>>" }, { "type": "STRING", "value": "..//" } ] }, { "type": "PATTERN", "value": ":\\s" } ] } }, "quoted_keyword": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_quoted_i_double" }, { "type": "SYMBOL", "name": "_quoted_i_single" } ] }, { "type": "IMMEDIATE_TOKEN", "content": { "type": "PATTERN", "value": ":\\s" } } ] }, "list": { "type": "SEQ", "members": [ { "type": "STRING", "value": "[" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_items_with_trailing_separator" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "]" } ] }, "tuple": { "type": "SEQ", "members": [ { "type": "STRING", "value": "{" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_items_with_trailing_separator" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "}" } ] }, "bitstring": { "type": "SEQ", "members": [ { "type": "STRING", "value": "<<" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_items_with_trailing_separator" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ">>" } ] }, "map": { "type": "PREC", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "%" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "struct" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "{" }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_items_with_trailing_separator" }, "named": true, "value": "map_content" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "}" } ] } }, "struct": { "type": "PREC_LEFT", "value": 0, "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "alias" }, { "type": "SYMBOL", "name": "_atom" }, { "type": "SYMBOL", "name": "identifier" }, { "type": "SYMBOL", "name": "unary_operator" }, { "type": "SYMBOL", "name": "dot" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_call_with_parentheses" }, "named": true, "value": "call" } ] } }, "_items_with_trailing_separator": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_expression" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "_expression" } ] } } ] }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "," }, { "type": "BLANK" } ] } ] }, { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_expression" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "_expression" } ] } } ] }, { "type": "STRING", "value": "," } ] }, { "type": "BLANK" } ] }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_keywords_with_trailing_separator" }, "named": true, "value": "keywords" } ] } ] } ] }, "_nullary_operator": { "type": "ALIAS", "content": { "type": "PREC", "value": 160, "content": { "type": "STRING", "value": ".." } }, "named": true, "value": "operator_identifier" }, "unary_operator": { "type": "CHOICE", "members": [ { "type": "PREC_DYNAMIC", "value": -1, "content": { "type": "PREC", "value": 60, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_before_unary_op" }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "&" } }, { "type": "FIELD", "name": "operand", "content": { "type": "SYMBOL", "name": "_capture_expression" } } ] } } }, { "type": "PREC_DYNAMIC", "value": -1, "content": { "type": "PREC", "value": 200, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_before_unary_op" }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "operator", "content": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "+" }, { "type": "STRING", "value": "-" }, { "type": "STRING", "value": "!" }, { "type": "STRING", "value": "^" }, { "type": "STRING", "value": "~~~" }, { "type": "STRING", "value": "not" } ] } }, { "type": "FIELD", "name": "operand", "content": { "type": "SYMBOL", "name": "_expression" } } ] } } }, { "type": "PREC_DYNAMIC", "value": -1, "content": { "type": "PREC", "value": 220, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_before_unary_op" }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "@" } }, { "type": "FIELD", "name": "operand", "content": { "type": "SYMBOL", "name": "_expression" } } ] } } }, { "type": "PREC_DYNAMIC", "value": -1, "content": { "type": "PREC", "value": 235, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_before_unary_op" }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "&" } }, { "type": "FIELD", "name": "operand", "content": { "type": "SYMBOL", "name": "integer" } } ] } } } ] }, "_capture_expression": { "type": "CHOICE", "members": [ { "type": "PREC", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "SYMBOL", "name": "_expression" }, { "type": "STRING", "value": ")" } ] } }, { "type": "SYMBOL", "name": "_expression" } ] }, "binary_operator": { "type": "CHOICE", "members": [ { "type": "PREC_LEFT", "value": 10, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "<-" }, { "type": "STRING", "value": "\\\\" } ] } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_expression" } } ] } }, { "type": "PREC_RIGHT", "value": 20, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "when" } }, { "type": "FIELD", "name": "right", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_expression" }, { "type": "SYMBOL", "name": "keywords" } ] } } ] } }, { "type": "PREC_RIGHT", "value": 30, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "::" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_expression" } } ] } }, { "type": "PREC_RIGHT", "value": 40, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "|" } }, { "type": "FIELD", "name": "right", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_expression" }, { "type": "SYMBOL", "name": "keywords" } ] } } ] } }, { "type": "PREC_RIGHT", "value": 50, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "=>" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_expression" } } ] } }, { "type": "PREC_RIGHT", "value": 70, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "=" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_expression" } } ] } }, { "type": "PREC_LEFT", "value": 80, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "||" }, { "type": "STRING", "value": "|||" }, { "type": "STRING", "value": "or" } ] } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_expression" } } ] } }, { "type": "PREC_LEFT", "value": 90, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "&&" }, { "type": "STRING", "value": "&&&" }, { "type": "STRING", "value": "and" } ] } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_expression" } } ] } }, { "type": "PREC_LEFT", "value": 100, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "==" }, { "type": "STRING", "value": "!=" }, { "type": "STRING", "value": "=~" }, { "type": "STRING", "value": "===" }, { "type": "STRING", "value": "!==" } ] } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_expression" } } ] } }, { "type": "PREC_LEFT", "value": 110, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "<" }, { "type": "STRING", "value": ">" }, { "type": "STRING", "value": "<=" }, { "type": "STRING", "value": ">=" } ] } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_expression" } } ] } }, { "type": "PREC_LEFT", "value": 120, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "|>" }, { "type": "STRING", "value": "<<<" }, { "type": "STRING", "value": ">>>" }, { "type": "STRING", "value": "<<~" }, { "type": "STRING", "value": "~>>" }, { "type": "STRING", "value": "<~" }, { "type": "STRING", "value": "~>" }, { "type": "STRING", "value": "<~>" }, { "type": "STRING", "value": "<|>" } ] } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_expression" } } ] } }, { "type": "PREC_LEFT", "value": 130, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "in" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_not_in" }, "named": false, "value": "not in" } ] } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_expression" } } ] } }, { "type": "PREC_LEFT", "value": 140, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "^^^" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_expression" } } ] } }, { "type": "PREC_RIGHT", "value": 150, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "//" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_expression" } } ] } }, { "type": "PREC_RIGHT", "value": 160, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "++" }, { "type": "STRING", "value": "--" }, { "type": "STRING", "value": "+++" }, { "type": "STRING", "value": "---" }, { "type": "STRING", "value": "<>" } ] } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_expression" } } ] } }, { "type": "PREC_RIGHT", "value": 160, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": ".." } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_expression" } } ] } }, { "type": "PREC_LEFT", "value": 170, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "+" }, { "type": "STRING", "value": "-" } ] } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_expression" } } ] } }, { "type": "PREC_LEFT", "value": 180, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "*" }, { "type": "STRING", "value": "/" } ] } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_expression" } } ] } }, { "type": "PREC_LEFT", "value": 190, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "**" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_expression" } } ] } }, { "type": "PREC_LEFT", "value": 180, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "operator_identifier" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "/" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "integer" } } ] } } ] }, "operator_identifier": { "type": "CHOICE", "members": [ { "type": "PREC", "value": 60, "content": { "type": "STRING", "value": "&" } }, { "type": "PREC", "value": 200, "content": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "+" }, { "type": "STRING", "value": "-" }, { "type": "STRING", "value": "!" }, { "type": "STRING", "value": "^" }, { "type": "STRING", "value": "~~~" }, { "type": "STRING", "value": "not" } ] } }, { "type": "PREC", "value": 220, "content": { "type": "STRING", "value": "@" } }, { "type": "STRING", "value": "<-" }, { "type": "STRING", "value": "\\\\" }, { "type": "STRING", "value": "when" }, { "type": "STRING", "value": "::" }, { "type": "STRING", "value": "|" }, { "type": "STRING", "value": "=" }, { "type": "STRING", "value": "||" }, { "type": "STRING", "value": "|||" }, { "type": "STRING", "value": "or" }, { "type": "STRING", "value": "&&" }, { "type": "STRING", "value": "&&&" }, { "type": "STRING", "value": "and" }, { "type": "STRING", "value": "==" }, { "type": "STRING", "value": "!=" }, { "type": "STRING", "value": "=~" }, { "type": "STRING", "value": "===" }, { "type": "STRING", "value": "!==" }, { "type": "STRING", "value": "<" }, { "type": "STRING", "value": ">" }, { "type": "STRING", "value": "<=" }, { "type": "STRING", "value": ">=" }, { "type": "STRING", "value": "|>" }, { "type": "STRING", "value": "<<<" }, { "type": "STRING", "value": ">>>" }, { "type": "STRING", "value": "<<~" }, { "type": "STRING", "value": "~>>" }, { "type": "STRING", "value": "<~" }, { "type": "STRING", "value": "~>" }, { "type": "STRING", "value": "<~>" }, { "type": "STRING", "value": "<|>" }, { "type": "STRING", "value": "in" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_not_in" }, "named": false, "value": "not in" }, { "type": "STRING", "value": "^^" }, { "type": "STRING", "value": "++" }, { "type": "STRING", "value": "--" }, { "type": "STRING", "value": "+++" }, { "type": "STRING", "value": "---" }, { "type": "STRING", "value": "<>" }, { "type": "STRING", "value": "*" }, { "type": "STRING", "value": "/" }, { "type": "STRING", "value": "**" }, { "type": "STRING", "value": "->" }, { "type": "STRING", "value": "." } ] }, "dot": { "type": "PREC", "value": 210, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "." } }, { "type": "FIELD", "name": "right", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "alias" }, { "type": "SYMBOL", "name": "tuple" } ] } } ] } }, "call": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_call_without_parentheses" }, { "type": "SYMBOL", "name": "_call_with_parentheses" } ] }, "_call_without_parentheses": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_local_call_without_parentheses" }, { "type": "SYMBOL", "name": "_local_call_just_do_block" }, { "type": "SYMBOL", "name": "_remote_call_without_parentheses" } ] }, "_call_with_parentheses": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_local_call_with_parentheses" }, { "type": "SYMBOL", "name": "_remote_call_with_parentheses" }, { "type": "SYMBOL", "name": "_anonymous_call" }, { "type": "SYMBOL", "name": "_double_call" } ] }, "_local_call_without_parentheses": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "target", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_call_arguments_without_parentheses" }, "named": true, "value": "arguments" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_newline_before_do" }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "do_block" } ] }, { "type": "BLANK" } ] } ] } }, "_local_call_with_parentheses": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "target", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_call_arguments_with_parentheses_immediate" }, "named": true, "value": "arguments" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_newline_before_do" }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "do_block" } ] }, { "type": "BLANK" } ] } ] } }, "_local_call_just_do_block": { "type": "PREC", "value": -1, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "target", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "SYMBOL", "name": "do_block" } ] } }, "_remote_call_without_parentheses": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "target", "content": { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_remote_dot" }, "named": true, "value": "dot" } }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_call_arguments_without_parentheses" }, "named": true, "value": "arguments" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_newline_before_do" }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "do_block" } ] }, { "type": "BLANK" } ] } ] } }, "_remote_call_with_parentheses": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "target", "content": { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_remote_dot" }, "named": true, "value": "dot" } }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_call_arguments_with_parentheses_immediate" }, "named": true, "value": "arguments" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_newline_before_do" }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "do_block" } ] }, { "type": "BLANK" } ] } ] } }, "_remote_dot": { "type": "PREC", "value": 210, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "." } }, { "type": "FIELD", "name": "right", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "identifier" }, { "type": "ALIAS", "content": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "and" }, { "type": "STRING", "value": "in" }, { "type": "STRING", "value": "not" }, { "type": "STRING", "value": "or" }, { "type": "STRING", "value": "when" }, { "type": "STRING", "value": "true" }, { "type": "STRING", "value": "false" }, { "type": "STRING", "value": "nil" }, { "type": "STRING", "value": "after" }, { "type": "STRING", "value": "catch" }, { "type": "STRING", "value": "do" }, { "type": "STRING", "value": "else" }, { "type": "STRING", "value": "end" }, { "type": "STRING", "value": "fn" }, { "type": "STRING", "value": "rescue" } ] }, "named": true, "value": "identifier" }, { "type": "SYMBOL", "name": "operator_identifier" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_i_double" }, "named": true, "value": "string" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_i_single" }, "named": true, "value": "charlist" } ] } } ] } }, "_anonymous_call": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "target", "content": { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_anonymous_dot" }, "named": true, "value": "dot" } }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_call_arguments_with_parentheses" }, "named": true, "value": "arguments" } ] }, "_anonymous_dot": { "type": "PREC", "value": 210, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "." } } ] } }, "_double_call": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "target", "content": { "type": "ALIAS", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_local_call_with_parentheses" }, { "type": "SYMBOL", "name": "_remote_call_with_parentheses" }, { "type": "SYMBOL", "name": "_anonymous_call" } ] }, "named": true, "value": "call" } }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_call_arguments_with_parentheses" }, "named": true, "value": "arguments" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_newline_before_do" }, { "type": "BLANK" } ] }, { "type": "SYMBOL", "name": "do_block" } ] }, { "type": "BLANK" } ] } ] } }, "_call_arguments_with_parentheses": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_call_arguments_with_trailing_separator" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" } ] }, "_call_arguments_with_parentheses_immediate": { "type": "SEQ", "members": [ { "type": "IMMEDIATE_TOKEN", "content": { "type": "STRING", "value": "(" } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_call_arguments_with_trailing_separator" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" } ] }, "_call_arguments_with_trailing_separator": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_expression" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "_expression" } ] } } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_keywords_with_trailing_separator" }, "named": true, "value": "keywords" } ] }, { "type": "BLANK" } ] } ] }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_keywords_with_trailing_separator" }, "named": true, "value": "keywords" } ] }, "_call_arguments_without_parentheses": { "type": "PREC_DYNAMIC", "value": -1, "content": { "type": "PREC_RIGHT", "value": 0, "content": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_expression" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "_expression" } ] } } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "keywords" } ] }, { "type": "BLANK" } ] } ] }, { "type": "SYMBOL", "name": "keywords" } ] } } }, "do_block": { "type": "SEQ", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "do" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_terminator" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "stab_clause" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_terminator" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "stab_clause" } ] } ] } } ] }, { "type": "SEQ", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_expression" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_terminator" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_expression" } ] } ] } } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_terminator" }, { "type": "BLANK" } ] } ] } ] }, { "type": "BLANK" } ] } ] }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "after_block" }, { "type": "SYMBOL", "name": "rescue_block" }, { "type": "SYMBOL", "name": "catch_block" }, { "type": "SYMBOL", "name": "else_block" } ] } }, { "type": "STRING", "value": "end" } ] }, "after_block": { "type": "SEQ", "members": [ { "type": "STRING", "value": "after" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_terminator" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "stab_clause" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_terminator" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "stab_clause" } ] } ] } } ] }, { "type": "SEQ", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_expression" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_terminator" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_expression" } ] } ] } } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_terminator" }, { "type": "BLANK" } ] } ] } ] }, { "type": "BLANK" } ] } ] }, "rescue_block": { "type": "SEQ", "members": [ { "type": "STRING", "value": "rescue" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_terminator" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "stab_clause" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_terminator" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "stab_clause" } ] } ] } } ] }, { "type": "SEQ", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_expression" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_terminator" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_expression" } ] } ] } } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_terminator" }, { "type": "BLANK" } ] } ] } ] }, { "type": "BLANK" } ] } ] }, "catch_block": { "type": "SEQ", "members": [ { "type": "STRING", "value": "catch" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_terminator" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "stab_clause" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_terminator" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "stab_clause" } ] } ] } } ] }, { "type": "SEQ", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_expression" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_terminator" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_expression" } ] } ] } } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_terminator" }, { "type": "BLANK" } ] } ] } ] }, { "type": "BLANK" } ] } ] }, "else_block": { "type": "SEQ", "members": [ { "type": "STRING", "value": "else" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_terminator" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "stab_clause" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_terminator" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "stab_clause" } ] } ] } } ] }, { "type": "SEQ", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_expression" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_terminator" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_expression" } ] } ] } } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_terminator" }, { "type": "BLANK" } ] } ] } ] }, { "type": "BLANK" } ] } ] }, "access_call": { "type": "PREC", "value": 205, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "target", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "IMMEDIATE_TOKEN", "content": { "type": "STRING", "value": "[" } }, { "type": "FIELD", "name": "key", "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "STRING", "value": "]" } ] } }, "stab_clause": { "type": "PREC_RIGHT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_stab_clause_left" } }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "->" } }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "body" } }, { "type": "BLANK" } ] } ] } }, "_stab_clause_left": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_stab_clause_arguments_with_parentheses" }, "named": true, "value": "arguments" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_stab_clause_arguments_with_parentheses_with_guard" }, "named": true, "value": "binary_operator" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_stab_clause_arguments_without_parentheses" }, "named": true, "value": "arguments" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_stab_clause_arguments_without_parentheses_with_guard" }, "named": true, "value": "binary_operator" } ] }, "_stab_clause_arguments_with_parentheses": { "type": "PREC", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SEQ", "members": [ { "type": "PREC_RIGHT", "value": 20, "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "PREC_RIGHT", "value": 20, "content": { "type": "SYMBOL", "name": "_expression" } } ] } } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "keywords" } ] }, { "type": "BLANK" } ] } ] }, { "type": "SYMBOL", "name": "keywords" } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" } ] } }, "_stab_clause_arguments_without_parentheses": { "type": "PREC", "value": 20, "content": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SEQ", "members": [ { "type": "PREC", "value": 20, "content": { "type": "SYMBOL", "name": "_expression" } }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "PREC", "value": 20, "content": { "type": "SYMBOL", "name": "_expression" } } ] } } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "keywords" } ] }, { "type": "BLANK" } ] } ] }, { "type": "SYMBOL", "name": "keywords" } ] } }, "_stab_clause_arguments_with_parentheses_with_guard": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_stab_clause_arguments_with_parentheses" }, "named": true, "value": "arguments" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "when" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_expression" } } ] }, "_stab_clause_arguments_without_parentheses_with_guard": { "type": "PREC_DYNAMIC", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_stab_clause_arguments_without_parentheses" }, "named": true, "value": "arguments" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "when" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_expression" } } ] } }, "body": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_terminator" }, { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_terminator" }, { "type": "BLANK" } ] }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_expression" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_terminator" }, { "type": "SYMBOL", "name": "_expression" } ] } } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_terminator" }, { "type": "BLANK" } ] } ] } ] }, "anonymous_function": { "type": "SEQ", "members": [ { "type": "STRING", "value": "fn" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_terminator" }, { "type": "BLANK" } ] }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "stab_clause" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_terminator" }, { "type": "SYMBOL", "name": "stab_clause" } ] } } ] }, { "type": "STRING", "value": "end" } ] }, "comment": { "type": "TOKEN", "content": { "type": "PREC", "value": -1, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "#" }, { "type": "PATTERN", "value": ".*" } ] } } } }, "extras": [ { "type": "PATTERN", "value": "\\r?\\n" }, { "type": "PATTERN", "value": "[ \\t]|\\r?\\n|\\\\\\r?\\n" }, { "type": "SYMBOL", "name": "comment" }, { "type": "SYMBOL", "name": "_newline_before_comment" }, { "type": "SYMBOL", "name": "_newline_before_binary_operator" } ], "conflicts": [ [ "_expression", "_local_call_without_parentheses" ], [ "binary_operator", "_stab_clause_arguments_without_parentheses" ], [ "_stab_clause_arguments_without_parentheses", "_stab_clause_arguments_with_parentheses" ], [ "operator_identifier", "stab_clause" ], [ "unary_operator", "operator_identifier" ], [ "body" ] ], "precedences": [], "externals": [ { "type": "SYMBOL", "name": "_quoted_content_i_single" }, { "type": "SYMBOL", "name": "_quoted_content_i_double" }, { "type": "SYMBOL", "name": "_quoted_content_i_heredoc_single" }, { "type": "SYMBOL", "name": "_quoted_content_i_heredoc_double" }, { "type": "SYMBOL", "name": "_quoted_content_i_parenthesis" }, { "type": "SYMBOL", "name": "_quoted_content_i_curly" }, { "type": "SYMBOL", "name": "_quoted_content_i_square" }, { "type": "SYMBOL", "name": "_quoted_content_i_angle" }, { "type": "SYMBOL", "name": "_quoted_content_i_bar" }, { "type": "SYMBOL", "name": "_quoted_content_i_slash" }, { "type": "SYMBOL", "name": "_quoted_content_single" }, { "type": "SYMBOL", "name": "_quoted_content_double" }, { "type": "SYMBOL", "name": "_quoted_content_heredoc_single" }, { "type": "SYMBOL", "name": "_quoted_content_heredoc_double" }, { "type": "SYMBOL", "name": "_quoted_content_parenthesis" }, { "type": "SYMBOL", "name": "_quoted_content_curly" }, { "type": "SYMBOL", "name": "_quoted_content_square" }, { "type": "SYMBOL", "name": "_quoted_content_angle" }, { "type": "SYMBOL", "name": "_quoted_content_bar" }, { "type": "SYMBOL", "name": "_quoted_content_slash" }, { "type": "SYMBOL", "name": "_newline_before_do" }, { "type": "SYMBOL", "name": "_newline_before_binary_operator" }, { "type": "SYMBOL", "name": "_newline_before_comment" }, { "type": "SYMBOL", "name": "_before_unary_op" }, { "type": "SYMBOL", "name": "_not_in" }, { "type": "SYMBOL", "name": "_quoted_atom_start" } ], "inline": [], "supertypes": [] }