tree-sitter-elixir/src/grammar.json

5677 lines
137 KiB
JSON

{
"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": []
}