{ "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": "STRING", "value": "\n" } }, { "type": "STRING", "value": ";" } ] }, { "type": "REPEAT1", "content": { "type": "STRING", "value": "\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": "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": "char" }, { "type": "SYMBOL", "name": "boolean" }, { "type": "SYMBOL", "name": "nil" }, { "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": "PREC", "value": 20, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_terminator" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_expression" }, { "type": "SYMBOL", "name": "stab_clause" } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_terminator" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_expression" }, { "type": "SYMBOL", "name": "stab_clause" } ] } ] } } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_terminator" }, { "type": "BLANK" } ] } ] }, { "type": "BLANK" } ] } ] }, { "type": "STRING", "value": ")" } ] } }, "_identifier": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "identifier" }, { "type": "SYMBOL", "name": "unused_identifier" }, { "type": "SYMBOL", "name": "special_identifier" } ] }, "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": "..." } ] }, "unused_identifier": { "type": "PATTERN", "value": "_[\\p{ID_Continue}]*[?!]?" }, "special_identifier": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "__MODULE__" }, { "type": "STRING", "value": "__DIR__" }, { "type": "STRING", "value": "__ENV__" }, { "type": "STRING", "value": "__CALLER__" }, { "type": "STRING", "value": "__STACKTRACE__" } ] }, "alias": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_alias_single" }, { "type": "SYMBOL", "name": "_alias_multi" } ] }, "_alias_single": { "type": "PATTERN", "value": "[A-Z][_a-zA-Z0-9]*" }, "_alias_multi": { "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" } ] } ] } }, "atom": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_atom_start" }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_atom_word_literal" }, "named": true, "value": "atom_literal" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_atom_operator_literal" }, "named": true, "value": "atom_literal" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_atom_special_literal" }, "named": true, "value": "atom_literal" }, { "type": "SYMBOL", "name": "_quoted_i_double" }, { "type": "SYMBOL", "name": "_quoted_i_single" } ] } ] }, "_atom_word_literal": { "type": "PATTERN", "value": "[\\p{ID_Start}_][\\p{ID_Continue}@]*[?!]?" }, "_atom_operator_literal": { "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": "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": "~~~" } ] }, "_atom_special_literal": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "..." }, { "type": "STRING", "value": "%{}" }, { "type": "STRING", "value": "{}" }, { "type": "STRING", "value": "%" }, { "type": "STRING", "value": "<<>>" }, { "type": "STRING", "value": "..//" } ] }, "_quoted_i_double": { "type": "SEQ", "members": [ { "type": "STRING", "value": "\"" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_i_double" }, "named": true, "value": "string_content" }, { "type": "SYMBOL", "name": "interpolation" }, { "type": "SYMBOL", "name": "escape_sequence" } ] } }, { "type": "STRING", "value": "\"" } ] }, "_quoted_double": { "type": "SEQ", "members": [ { "type": "STRING", "value": "\"" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_double" }, "named": true, "value": "string_content" }, { "type": "SYMBOL", "name": "escape_sequence" } ] } }, { "type": "STRING", "value": "\"" } ] }, "_quoted_i_single": { "type": "SEQ", "members": [ { "type": "STRING", "value": "'" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_i_single" }, "named": true, "value": "string_content" }, { "type": "SYMBOL", "name": "interpolation" }, { "type": "SYMBOL", "name": "escape_sequence" } ] } }, { "type": "STRING", "value": "'" } ] }, "_quoted_single": { "type": "SEQ", "members": [ { "type": "STRING", "value": "'" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_single" }, "named": true, "value": "string_content" }, { "type": "SYMBOL", "name": "escape_sequence" } ] } }, { "type": "STRING", "value": "'" } ] }, "_quoted_i_heredoc_single": { "type": "SEQ", "members": [ { "type": "STRING", "value": "'''" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_i_heredoc_single" }, "named": true, "value": "string_content" }, { "type": "SYMBOL", "name": "interpolation" }, { "type": "SYMBOL", "name": "escape_sequence" } ] } }, { "type": "STRING", "value": "'''" } ] }, "_quoted_heredoc_single": { "type": "SEQ", "members": [ { "type": "STRING", "value": "'''" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_heredoc_single" }, "named": true, "value": "string_content" }, { "type": "SYMBOL", "name": "escape_sequence" } ] } }, { "type": "STRING", "value": "'''" } ] }, "_quoted_i_heredoc_double": { "type": "SEQ", "members": [ { "type": "STRING", "value": "\"\"\"" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_i_heredoc_double" }, "named": true, "value": "string_content" }, { "type": "SYMBOL", "name": "interpolation" }, { "type": "SYMBOL", "name": "escape_sequence" } ] } }, { "type": "STRING", "value": "\"\"\"" } ] }, "_quoted_heredoc_double": { "type": "SEQ", "members": [ { "type": "STRING", "value": "\"\"\"" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_heredoc_double" }, "named": true, "value": "string_content" }, { "type": "SYMBOL", "name": "escape_sequence" } ] } }, { "type": "STRING", "value": "\"\"\"" } ] }, "_quoted_i_parenthesis": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_i_parenthesis" }, "named": true, "value": "string_content" }, { "type": "SYMBOL", "name": "interpolation" }, { "type": "SYMBOL", "name": "escape_sequence" } ] } }, { "type": "STRING", "value": ")" } ] }, "_quoted_parenthesis": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_parenthesis" }, "named": true, "value": "string_content" }, { "type": "SYMBOL", "name": "escape_sequence" } ] } }, { "type": "STRING", "value": ")" } ] }, "_quoted_i_curly": { "type": "SEQ", "members": [ { "type": "STRING", "value": "{" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_i_curly" }, "named": true, "value": "string_content" }, { "type": "SYMBOL", "name": "interpolation" }, { "type": "SYMBOL", "name": "escape_sequence" } ] } }, { "type": "STRING", "value": "}" } ] }, "_quoted_curly": { "type": "SEQ", "members": [ { "type": "STRING", "value": "{" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_curly" }, "named": true, "value": "string_content" }, { "type": "SYMBOL", "name": "escape_sequence" } ] } }, { "type": "STRING", "value": "}" } ] }, "_quoted_i_square": { "type": "SEQ", "members": [ { "type": "STRING", "value": "[" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_i_square" }, "named": true, "value": "string_content" }, { "type": "SYMBOL", "name": "interpolation" }, { "type": "SYMBOL", "name": "escape_sequence" } ] } }, { "type": "STRING", "value": "]" } ] }, "_quoted_square": { "type": "SEQ", "members": [ { "type": "STRING", "value": "[" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_square" }, "named": true, "value": "string_content" }, { "type": "SYMBOL", "name": "escape_sequence" } ] } }, { "type": "STRING", "value": "]" } ] }, "_quoted_i_angle": { "type": "SEQ", "members": [ { "type": "STRING", "value": "<" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_i_angle" }, "named": true, "value": "string_content" }, { "type": "SYMBOL", "name": "interpolation" }, { "type": "SYMBOL", "name": "escape_sequence" } ] } }, { "type": "STRING", "value": ">" } ] }, "_quoted_angle": { "type": "SEQ", "members": [ { "type": "STRING", "value": "<" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_angle" }, "named": true, "value": "string_content" }, { "type": "SYMBOL", "name": "escape_sequence" } ] } }, { "type": "STRING", "value": ">" } ] }, "_quoted_i_bar": { "type": "SEQ", "members": [ { "type": "STRING", "value": "|" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_i_bar" }, "named": true, "value": "string_content" }, { "type": "SYMBOL", "name": "interpolation" }, { "type": "SYMBOL", "name": "escape_sequence" } ] } }, { "type": "STRING", "value": "|" } ] }, "_quoted_bar": { "type": "SEQ", "members": [ { "type": "STRING", "value": "|" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_bar" }, "named": true, "value": "string_content" }, { "type": "SYMBOL", "name": "escape_sequence" } ] } }, { "type": "STRING", "value": "|" } ] }, "_quoted_i_slash": { "type": "SEQ", "members": [ { "type": "STRING", "value": "/" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_i_slash" }, "named": true, "value": "string_content" }, { "type": "SYMBOL", "name": "interpolation" }, { "type": "SYMBOL", "name": "escape_sequence" } ] } }, { "type": "STRING", "value": "/" } ] }, "_quoted_slash": { "type": "SEQ", "members": [ { "type": "STRING", "value": "/" }, { "type": "REPEAT", "content": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_quoted_content_slash" }, "named": true, "value": "string_content" }, { "type": "SYMBOL", "name": "escape_sequence" } ] } }, { "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-Z]+" } }, "named": true, "value": "sigil_modifiers" }, { "type": "BLANK" } ] } ] }, "unary_operator": { "type": "CHOICE", "members": [ { "type": "PREC", "value": 60, "content": { "type": "PREC_DYNAMIC", "value": -1, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_before_unary_op" }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "&" } }, { "type": "SYMBOL", "name": "_capture_expression" } ] } } }, { "type": "PREC", "value": 200, "content": { "type": "PREC_DYNAMIC", "value": -1, "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": "SYMBOL", "name": "_expression" } ] } } }, { "type": "PREC", "value": 220, "content": { "type": "PREC_DYNAMIC", "value": -1, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_before_unary_op" }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "@" } }, { "type": "SYMBOL", "name": "_expression" } ] } } }, { "type": "PREC", "value": 235, "content": { "type": "PREC_DYNAMIC", "value": -1, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_before_unary_op" }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "&" } }, { "type": "SYMBOL", "name": "integer" } ] } } } ] }, "_capture_expression": { "type": "CHOICE", "members": [ { "type": "PREC", "value": 21, "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": "SYMBOL", "name": "_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": "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": "SYMBOL", "name": "_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": "->" }, { "type": "STRING", "value": "." } ] }, "dot": { "type": "PREC", "value": 210, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_expression" } ] }, { "type": "STRING", "value": "." }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "alias" }, { "type": "SYMBOL", "name": "tuple" } ] } ] } }, "keywords": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "pair" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "pair" } ] } } ] }, "pair": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "keyword" }, { "type": "SYMBOL", "name": "_expression" } ] }, "keyword": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_atom_word_literal" }, "named": true, "value": "atom_literal" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_atom_operator_literal" }, "named": true, "value": "atom_literal" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_keyword_special_literal" }, "named": true, "value": "atom_literal" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "identifier" }, "named": true, "value": "atom_literal" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "unused_identifier" }, "named": true, "value": "atom_literal" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "special_identifier" }, "named": true, "value": "atom_literal" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_alias_single" }, "named": true, "value": "atom_literal" }, { "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": "atom_literal" }, { "type": "SYMBOL", "name": "_quoted_i_double" }, { "type": "SYMBOL", "name": "_quoted_i_single" } ] }, { "type": "SYMBOL", "name": "_keyword_end" } ] }, "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": "SEQ", "members": [ { "type": "STRING", "value": "%" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "struct" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "{" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "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": "_parenthesised_call" }, "named": true, "value": "call" } ] } }, "map_content": { "type": "SYMBOL", "name": "_items_with_trailing_separator" }, "_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": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "keywords" } ] }, { "type": "BLANK" } ] } ] }, { "type": "SYMBOL", "name": "keywords" } ] }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "," }, { "type": "BLANK" } ] } ] }, "char": { "type": "PATTERN", "value": "\\?(.|\\\\.)" }, "boolean": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "true" }, { "type": "STRING", "value": "false" } ] }, "nil": { "type": "STRING", "value": "nil" }, "call": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_local_call_with_arguments" }, { "type": "SYMBOL", "name": "_parenthesised_local_call_with_arguments" }, { "type": "SYMBOL", "name": "_local_call_without_arguments" }, { "type": "SYMBOL", "name": "_remote_call" }, { "type": "SYMBOL", "name": "_parenthesised_remote_call" }, { "type": "SYMBOL", "name": "_anonymous_call" }, { "type": "SYMBOL", "name": "_call_on_call" } ] }, "_parenthesised_call": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_parenthesised_local_call_with_arguments" }, { "type": "SYMBOL", "name": "_parenthesised_remote_call" }, { "type": "SYMBOL", "name": "_anonymous_call" }, { "type": "SYMBOL", "name": "_call_on_call" } ] }, "_call_on_call": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_parenthesised_local_call_with_arguments" }, { "type": "SYMBOL", "name": "_parenthesised_remote_call" }, { "type": "SYMBOL", "name": "_anonymous_call" } ] }, "named": true, "value": "call" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_anonymous_arguments" }, "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_arguments": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_identifier" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_call_arguments" }, "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" } ] } ] } }, "_parenthesised_local_call_with_arguments": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_identifier" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_parenthesised_call_arguments" }, "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_without_arguments": { "type": "PREC_DYNAMIC", "value": -1, "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_identifier" }, { "type": "SYMBOL", "name": "do_block" } ] } }, "_remote_call": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_remote_dot" }, "named": true, "value": "dot" }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_call_arguments" }, "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" } ] } ] } }, "_parenthesised_remote_call": { "type": "PREC_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_remote_dot" }, "named": true, "value": "dot" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_parenthesised_call_arguments" }, "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": "SYMBOL", "name": "_expression" }, { "type": "STRING", "value": "." }, { "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" } ] } ] } }, "_parenthesised_call_arguments": { "type": "SEQ", "members": [ { "type": "IMMEDIATE_TOKEN", "content": { "type": "STRING", "value": "(" } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_call_arguments" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" } ] }, "_anonymous_call": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_anonymous_dot" }, "named": true, "value": "dot" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_anonymous_arguments" }, "named": true, "value": "arguments" } ] }, "_anonymous_dot": { "type": "PREC", "value": 210, "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_expression" }, { "type": "STRING", "value": "." } ] } }, "_anonymous_arguments": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_call_arguments" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" } ] }, "_call_arguments": { "type": "PREC_RIGHT", "value": 0, "content": { "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": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "keywords" }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "," }, { "type": "BLANK" } ] } ] }, { "type": "BLANK" } ] } ] }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "keywords" }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "," }, { "type": "BLANK" } ] } ] } ] } ] } }, "access_call": { "type": "PREC", "value": 205, "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_expression" }, { "type": "IMMEDIATE_TOKEN", "content": { "type": "STRING", "value": "[" } }, { "type": "SYMBOL", "name": "_expression" }, { "type": "STRING", "value": "]" } ] } }, "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" } ] } ] }, "stab_clause": { "type": "PREC_RIGHT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_stab_clause_left" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "->" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "body" }, { "type": "BLANK" } ] } ] } }, "_stab_clause_left": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_stab_clause_parentheses_arguments" }, "named": true, "value": "arguments" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_stab_clause_parentheses_arguments_with_guard" }, "named": true, "value": "binary_operator" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_stab_clause_arguments" }, "named": true, "value": "arguments" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_stab_clause_arguments_with_guard" }, "named": true, "value": "binary_operator" } ] }, "_stab_clause_parentheses_arguments": { "type": "PREC", "value": 20, "content": { "type": "PREC_DYNAMIC", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_stab_clause_arguments" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" } ] } } }, "_stab_clause_parentheses_arguments_with_guard": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_stab_clause_parentheses_arguments" }, "named": true, "value": "arguments" }, { "type": "STRING", "value": "when" }, { "type": "SYMBOL", "name": "_expression" } ] }, "_stab_clause_arguments_with_guard": { "type": "PREC_DYNAMIC", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_stab_clause_arguments" }, "named": true, "value": "arguments" }, { "type": "STRING", "value": "when" }, { "type": "SYMBOL", "name": "_expression" } ] } }, "_stab_clause_arguments": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_stab_clause_arguments_expression" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "_stab_clause_arguments_expression" } ] } } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "keywords" } ] }, { "type": "BLANK" } ] } ] }, { "type": "SYMBOL", "name": "keywords" } ] }, "_stab_clause_arguments_expression": { "type": "PREC", "value": 20, "content": { "type": "SYMBOL", "name": "_expression" } }, "body": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_terminator" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_expression" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_terminator" }, { "type": "SYMBOL", "name": "_expression" } ] } } ] }, { "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": "SYMBOL", "name": "comment" }, { "type": "PATTERN", "value": "\\s|\\\\\\n" }, { "type": "SYMBOL", "name": "_newline_before_binary_op" }, { "type": "SYMBOL", "name": "_newline_before_comment" }, { "type": "STRING", "value": "\n" } ], "conflicts": [ [ "binary_operator" ], [ "keywords" ], [ "_expression", "_local_call_with_arguments" ], [ "_expression", "_local_call_with_arguments", "_local_call_without_arguments" ], [ "_remote_call", "_parenthesised_remote_call" ], [ "block", "_stab_clause_parentheses_arguments" ], [ "block", "_stab_clause_arguments" ], [ "block", "_stab_clause_arguments_expression" ], [ "binary_operator", "_stab_clause_arguments_expression" ], [ "tuple", "map" ], [ "tuple", "map_content" ], [ "operator_identifier", "stab_clause" ], [ "unary_operator", "operator_identifier" ], [ "body" ], [ "after_block" ], [ "rescue_block" ], [ "catch_block" ], [ "else_block" ] ], "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": "_keyword_special_literal" }, { "type": "SYMBOL", "name": "_atom_start" }, { "type": "SYMBOL", "name": "_keyword_end" }, { "type": "SYMBOL", "name": "_newline_before_do" }, { "type": "SYMBOL", "name": "_newline_before_binary_op" }, { "type": "SYMBOL", "name": "_newline_before_comment" }, { "type": "SYMBOL", "name": "_before_unary_op" }, { "type": "SYMBOL", "name": "_not_in" } ], "inline": [], "supertypes": [] }