{
"$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json",
"name": "perl",
"word": "_identifier",
"rules": {
"source_file": {
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_fullstmt"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "__DATA__"
},
{
"type": "BLANK"
}
]
}
]
},
"_PERLY_BRACE_OPEN": {
"type": "STRING",
"value": "{"
},
"block": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_PERLY_BRACE_OPEN"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_fullstmt"
}
},
{
"type": "STRING",
"value": "}"
}
]
},
"_fullstmt": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_barestmt"
},
{
"type": "SYMBOL",
"name": "statement_label"
}
]
},
"statement_label": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "label",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "statement",
"content": {
"type": "SYMBOL",
"name": "_fullstmt"
}
}
]
},
"_semicolon": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "SYMBOL",
"name": "_PERLY_SEMICOLON"
}
]
},
"_barestmt": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "package_statement"
},
{
"type": "SYMBOL",
"name": "class_statement"
},
{
"type": "SYMBOL",
"name": "role_statement"
},
{
"type": "SYMBOL",
"name": "class_phaser_statement"
},
{
"type": "SYMBOL",
"name": "use_version_statement"
},
{
"type": "SYMBOL",
"name": "use_statement"
},
{
"type": "SYMBOL",
"name": "subroutine_declaration_statement"
},
{
"type": "SYMBOL",
"name": "method_declaration_statement"
},
{
"type": "SYMBOL",
"name": "phaser_statement"
},
{
"type": "SYMBOL",
"name": "conditional_statement"
},
{
"type": "SYMBOL",
"name": "loop_statement"
},
{
"type": "SYMBOL",
"name": "cstyle_for_statement"
},
{
"type": "SYMBOL",
"name": "for_statement"
},
{
"type": "SYMBOL",
"name": "try_statement"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "block"
},
"named": true,
"value": "block_statement"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "expression_statement"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_semicolon"
},
{
"type": "SYMBOL",
"name": "__DATA__"
}
]
}
]
},
{
"type": "SYMBOL",
"name": "defer_statement"
},
{
"type": "STRING",
"value": ";"
}
]
},
"package_statement": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "package"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "package"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "version",
"content": {
"type": "SYMBOL",
"name": "_version"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_semicolon"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "package"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "package"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "version",
"content": {
"type": "SYMBOL",
"name": "_version"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "block"
}
]
}
]
},
"class_statement": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "class"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "package"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "version",
"content": {
"type": "SYMBOL",
"name": "_version"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "attributes",
"content": {
"type": "SYMBOL",
"name": "attrlist"
}
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_semicolon"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "class"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "package"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "version",
"content": {
"type": "SYMBOL",
"name": "_version"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "attributes",
"content": {
"type": "SYMBOL",
"name": "attrlist"
}
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "block"
}
]
}
]
},
"role_statement": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "role"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "package"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "version",
"content": {
"type": "SYMBOL",
"name": "_version"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "attributes",
"content": {
"type": "SYMBOL",
"name": "attrlist"
}
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_semicolon"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "role"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "package"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "version",
"content": {
"type": "SYMBOL",
"name": "_version"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "attributes",
"content": {
"type": "SYMBOL",
"name": "attrlist"
}
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "block"
}
]
}
]
},
"class_phaser_statement": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "phase",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "BUILD"
},
{
"type": "STRING",
"value": "ADJUST"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "attributes",
"content": {
"type": "SYMBOL",
"name": "attrlist"
}
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "signature"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "block"
}
]
},
"use_version_statement": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_KW_USE"
},
{
"type": "FIELD",
"name": "version",
"content": {
"type": "SYMBOL",
"name": "_version"
}
},
{
"type": "SYMBOL",
"name": "_semicolon"
}
]
},
"use_statement": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_KW_USE"
},
{
"type": "FIELD",
"name": "module",
"content": {
"type": "SYMBOL",
"name": "package"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "version",
"content": {
"type": "SYMBOL",
"name": "_version"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_listexpr"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_semicolon"
}
]
},
"mandatory_parameter": {
"type": "ALIAS",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "$"
},
{
"type": "SYMBOL",
"name": "_signature_scalar"
}
]
},
"named": true,
"value": "scalar"
},
"optional_parameter": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_signature_scalar"
},
"named": true,
"value": "scalar"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "STRING",
"value": "||="
},
{
"type": "STRING",
"value": "//="
}
]
},
{
"type": "FIELD",
"name": "default",
"content": {
"type": "SYMBOL",
"name": "_term"
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "$"
},
"named": true,
"value": "scalar"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "STRING",
"value": "||="
},
{
"type": "STRING",
"value": "//="
}
]
},
{
"type": "FIELD",
"name": "default",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_term"
},
{
"type": "BLANK"
}
]
}
}
]
}
]
},
"named_parameter": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_signature_scalar"
},
"named": true,
"value": "scalar"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "STRING",
"value": "||="
},
{
"type": "STRING",
"value": "//="
}
]
},
{
"type": "FIELD",
"name": "default",
"content": {
"type": "SYMBOL",
"name": "_term"
}
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"slurpy_parameter": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "@"
},
{
"type": "SYMBOL",
"name": "_signature_array"
}
]
},
"named": true,
"value": "array"
},
{
"type": "ALIAS",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_HASH_PERCENT"
},
{
"type": "SYMBOL",
"name": "_signature_hash"
}
]
},
"named": true,
"value": "hash"
}
]
},
"_signature_vars": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "mandatory_parameter"
},
{
"type": "SYMBOL",
"name": "optional_parameter"
},
{
"type": "SYMBOL",
"name": "slurpy_parameter"
},
{
"type": "SYMBOL",
"name": "named_parameter"
}
]
},
"signature": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_signature_start"
},
"named": false,
"value": "("
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_signature_vars"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_signature_vars"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
{
"type": "STRING",
"value": ")"
}
]
},
"subroutine_declaration_statement": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "lexical",
"content": {
"type": "STRING",
"value": "my"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "extended"
},
{
"type": "STRING",
"value": "async"
}
]
}
},
{
"type": "STRING",
"value": "sub"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "bareword"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "attributes",
"content": {
"type": "SYMBOL",
"name": "attrlist"
}
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "prototype"
},
{
"type": "SYMBOL",
"name": "signature"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "block"
}
}
]
},
"method_declaration_statement": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "lexical",
"content": {
"type": "STRING",
"value": "my"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "extended"
},
{
"type": "STRING",
"value": "async"
}
]
}
},
{
"type": "STRING",
"value": "method"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "bareword"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "attributes",
"content": {
"type": "SYMBOL",
"name": "attrlist"
}
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "prototype"
},
{
"type": "SYMBOL",
"name": "signature"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "block"
}
}
]
},
"phaser_statement": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "phase",
"content": {
"type": "SYMBOL",
"name": "_PHASE_NAME"
}
},
{
"type": "SYMBOL",
"name": "block"
}
]
},
"conditional_statement": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_conditionals"
},
{
"type": "STRING",
"value": "("
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "STRING",
"value": ")"
},
{
"type": "FIELD",
"name": "block",
"content": {
"type": "SYMBOL",
"name": "block"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_else"
},
{
"type": "BLANK"
}
]
}
]
},
"_loop_body": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "block",
"content": {
"type": "SYMBOL",
"name": "block"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "continue"
},
{
"type": "FIELD",
"name": "continue",
"content": {
"type": "SYMBOL",
"name": "block"
}
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"loop_statement": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_loops"
},
{
"type": "STRING",
"value": "("
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "STRING",
"value": ")"
},
{
"type": "SYMBOL",
"name": "_loop_body"
}
]
},
"cstyle_for_statement": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_KW_FOR"
},
{
"type": "STRING",
"value": "("
},
{
"type": "FIELD",
"name": "initialiser",
"content": {
"type": "SYMBOL",
"name": "_barestmt"
}
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "_barestmt"
}
},
{
"type": "FIELD",
"name": "iterator",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "STRING",
"value": ")"
},
{
"type": "SYMBOL",
"name": "_loop_body"
}
]
},
"_for_initializer": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "my"
},
{
"type": "STRING",
"value": "state"
},
{
"type": "STRING",
"value": "our"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "variable",
"content": {
"type": "SYMBOL",
"name": "scalar"
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "my"
},
{
"type": "FIELD",
"name": "variables",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "scalar"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ","
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "scalar"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
}
}
]
}
]
},
"for_statement": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_KW_FOR"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_for_initializer"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "("
},
{
"type": "FIELD",
"name": "list",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "STRING",
"value": ")"
},
{
"type": "SYMBOL",
"name": "_loop_body"
}
]
},
"try_statement": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "try"
},
{
"type": "FIELD",
"name": "try_block",
"content": {
"type": "SYMBOL",
"name": "block"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "catch"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "FIELD",
"name": "catch_expr",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "catch_block",
"content": {
"type": "SYMBOL",
"name": "block"
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "finally"
},
{
"type": "FIELD",
"name": "finally_block",
"content": {
"type": "SYMBOL",
"name": "block"
}
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"defer_statement": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "defer"
},
{
"type": "FIELD",
"name": "block",
"content": {
"type": "SYMBOL",
"name": "block"
}
}
]
},
"expression_statement": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "SYMBOL",
"name": "_postfix_expressions"
},
{
"type": "SYMBOL",
"name": "yadayada"
}
]
},
"_postfix_expressions": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "postfix_conditional_expression"
},
{
"type": "SYMBOL",
"name": "postfix_loop_expression"
},
{
"type": "SYMBOL",
"name": "postfix_for_expression"
}
]
},
"postfix_conditional_expression": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "SYMBOL",
"name": "_conditionals"
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
},
"postfix_loop_expression": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "SYMBOL",
"name": "_loops"
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
},
"postfix_for_expression": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "SYMBOL",
"name": "_KW_FOR"
},
{
"type": "FIELD",
"name": "list",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
},
"yadayada": {
"type": "STRING",
"value": "..."
},
"_else": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "else"
},
{
"type": "SYMBOL",
"name": "elsif"
}
]
},
"else": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "else"
},
{
"type": "FIELD",
"name": "block",
"content": {
"type": "SYMBOL",
"name": "block"
}
}
]
},
"elsif": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "elsif"
},
{
"type": "STRING",
"value": "("
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "STRING",
"value": ")"
},
{
"type": "FIELD",
"name": "block",
"content": {
"type": "SYMBOL",
"name": "block"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_else"
},
{
"type": "BLANK"
}
]
}
]
},
"_expr": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "lowprec_logical_expression"
},
{
"type": "SYMBOL",
"name": "_listexpr"
}
]
},
"lowprec_logical_expression": {
"type": "CHOICE",
"members": [
{
"type": "PREC_LEFT",
"value": 3,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "and"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "or"
},
{
"type": "STRING",
"value": "xor"
}
]
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
}
}
]
},
"_listexpr": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_term_rightward"
},
"named": true,
"value": "list_expression"
},
{
"type": "SYMBOL",
"name": "_term"
}
]
},
"_term_rightward": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_term"
},
{
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_PERLY_COMMA"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_term"
},
{
"type": "BLANK"
}
]
}
]
}
}
]
}
},
"subscripted": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "glob_slot_expression"
},
{
"type": "SYMBOL",
"name": "array_element_expression"
},
{
"type": "SYMBOL",
"name": "hash_element_expression"
},
{
"type": "SYMBOL",
"name": "coderef_call_expression"
},
{
"type": "SYMBOL",
"name": "anonymous_slice_expression"
}
]
},
"container_variable": {
"type": "PREC",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "$"
},
{
"type": "SYMBOL",
"name": "_var_indirob"
}
]
}
},
"glob_slot_expression": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "glob"
},
{
"type": "STRING",
"value": "{"
},
{
"type": "SYMBOL",
"name": "_hash_key"
},
{
"type": "STRING",
"value": "}"
}
]
},
{
"type": "PREC_LEFT",
"value": 24,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_term"
},
{
"type": "STRING",
"value": "->"
},
{
"type": "STRING",
"value": "*"
},
{
"type": "STRING",
"value": "{"
},
{
"type": "SYMBOL",
"name": "_hash_key"
},
{
"type": "STRING",
"value": "}"
}
]
}
}
]
},
"array_element_expression": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "array",
"content": {
"type": "SYMBOL",
"name": "container_variable"
}
},
{
"type": "STRING",
"value": "["
},
{
"type": "FIELD",
"name": "index",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "STRING",
"value": "]"
}
]
},
{
"type": "PREC_LEFT",
"value": 24,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_term"
},
{
"type": "STRING",
"value": "->"
},
{
"type": "STRING",
"value": "["
},
{
"type": "FIELD",
"name": "index",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "STRING",
"value": "]"
}
]
}
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "subscripted"
},
{
"type": "STRING",
"value": "["
},
{
"type": "FIELD",
"name": "index",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "STRING",
"value": "]"
}
]
}
]
},
"_hash_key": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_brace_autoquoted"
},
{
"type": "SYMBOL",
"name": "_expr"
}
]
},
"hash_element_expression": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "hash",
"content": {
"type": "SYMBOL",
"name": "container_variable"
}
},
{
"type": "STRING",
"value": "{"
},
{
"type": "FIELD",
"name": "key",
"content": {
"type": "SYMBOL",
"name": "_hash_key"
}
},
{
"type": "STRING",
"value": "}"
}
]
},
{
"type": "PREC_LEFT",
"value": 24,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_term"
},
{
"type": "STRING",
"value": "->"
},
{
"type": "STRING",
"value": "{"
},
{
"type": "FIELD",
"name": "key",
"content": {
"type": "SYMBOL",
"name": "_hash_key"
}
},
{
"type": "STRING",
"value": "}"
}
]
}
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "subscripted"
},
{
"type": "STRING",
"value": "{"
},
{
"type": "FIELD",
"name": "key",
"content": {
"type": "SYMBOL",
"name": "_hash_key"
}
},
{
"type": "STRING",
"value": "}"
}
]
}
]
},
"coderef_call_expression": {
"type": "CHOICE",
"members": [
{
"type": "PREC_LEFT",
"value": 24,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_term"
},
{
"type": "STRING",
"value": "->"
},
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "arguments",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
}
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "subscripted"
},
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "arguments",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
}
]
},
"anonymous_slice_expression": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "list",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
},
{
"type": "STRING",
"value": "["
},
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "STRING",
"value": "]"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "list",
"content": {
"type": "SYMBOL",
"name": "quoted_word_list"
}
},
{
"type": "STRING",
"value": "["
},
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "STRING",
"value": "]"
}
]
}
]
},
"slices": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "slice_expression"
},
{
"type": "SYMBOL",
"name": "keyval_expression"
}
]
},
"slice_container_variable": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "@"
},
{
"type": "SYMBOL",
"name": "_var_indirob"
}
]
},
"slice_expression": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "array",
"content": {
"type": "SYMBOL",
"name": "slice_container_variable"
}
},
{
"type": "STRING",
"value": "["
},
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "STRING",
"value": "]"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "hash",
"content": {
"type": "SYMBOL",
"name": "slice_container_variable"
}
},
{
"type": "STRING",
"value": "{"
},
{
"type": "SYMBOL",
"name": "_hash_key"
},
{
"type": "STRING",
"value": "}"
}
]
},
{
"type": "PREC_LEFT",
"value": 24,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "arrayref",
"content": {
"type": "SYMBOL",
"name": "_term"
}
},
{
"type": "STRING",
"value": "->"
},
{
"type": "STRING",
"value": "@"
},
{
"type": "STRING",
"value": "["
},
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "STRING",
"value": "]"
}
]
}
},
{
"type": "PREC_LEFT",
"value": 24,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "hashref",
"content": {
"type": "SYMBOL",
"name": "_term"
}
},
{
"type": "STRING",
"value": "->"
},
{
"type": "STRING",
"value": "@"
},
{
"type": "STRING",
"value": "{"
},
{
"type": "SYMBOL",
"name": "_hash_key"
},
{
"type": "STRING",
"value": "}"
}
]
}
}
]
},
"keyval_container_variable": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_HASH_PERCENT"
},
{
"type": "SYMBOL",
"name": "_var_indirob"
}
]
},
"keyval_expression": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "array",
"content": {
"type": "SYMBOL",
"name": "keyval_container_variable"
}
},
{
"type": "STRING",
"value": "["
},
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "STRING",
"value": "]"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "hash",
"content": {
"type": "SYMBOL",
"name": "keyval_container_variable"
}
},
{
"type": "STRING",
"value": "{"
},
{
"type": "SYMBOL",
"name": "_hash_key"
},
{
"type": "STRING",
"value": "}"
}
]
},
{
"type": "PREC_LEFT",
"value": 24,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "arrayref",
"content": {
"type": "SYMBOL",
"name": "_term"
}
},
{
"type": "STRING",
"value": "->"
},
{
"type": "STRING",
"value": "%"
},
{
"type": "STRING",
"value": "["
},
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "STRING",
"value": "]"
}
]
}
},
{
"type": "PREC_LEFT",
"value": 24,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "hashref",
"content": {
"type": "SYMBOL",
"name": "_term"
}
},
{
"type": "STRING",
"value": "->"
},
{
"type": "STRING",
"value": "%"
},
{
"type": "STRING",
"value": "{"
},
{
"type": "SYMBOL",
"name": "_hash_key"
},
{
"type": "STRING",
"value": "}"
}
]
}
}
]
},
"_term": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "readline_expression"
},
{
"type": "SYMBOL",
"name": "fileglob_expression"
},
{
"type": "SYMBOL",
"name": "assignment_expression"
},
{
"type": "SYMBOL",
"name": "binary_expression"
},
{
"type": "SYMBOL",
"name": "equality_expression"
},
{
"type": "SYMBOL",
"name": "relational_expression"
},
{
"type": "SYMBOL",
"name": "unary_expression"
},
{
"type": "SYMBOL",
"name": "preinc_expression"
},
{
"type": "SYMBOL",
"name": "postinc_expression"
},
{
"type": "SYMBOL",
"name": "anonymous_array_expression"
},
{
"type": "SYMBOL",
"name": "anonymous_hash_expression"
},
{
"type": "SYMBOL",
"name": "anonymous_subroutine_expression"
},
{
"type": "SYMBOL",
"name": "anonymous_method_expression"
},
{
"type": "SYMBOL",
"name": "do_expression"
},
{
"type": "SYMBOL",
"name": "eval_expression"
},
{
"type": "SYMBOL",
"name": "await_expression"
},
{
"type": "SYMBOL",
"name": "conditional_expression"
},
{
"type": "SYMBOL",
"name": "refgen_expression"
},
{
"type": "SYMBOL",
"name": "localization_expression"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "SYMBOL",
"name": "quoted_word_list"
},
{
"type": "SYMBOL",
"name": "heredoc_token"
},
{
"type": "SYMBOL",
"name": "command_heredoc_token"
},
{
"type": "SYMBOL",
"name": "stub_expression"
},
{
"type": "SYMBOL",
"name": "_variables"
},
{
"type": "SYMBOL",
"name": "subscripted"
},
{
"type": "SYMBOL",
"name": "slices"
},
{
"type": "SYMBOL",
"name": "postfix_deref"
},
{
"type": "SYMBOL",
"name": "loopex_expression"
},
{
"type": "SYMBOL",
"name": "goto_expression"
},
{
"type": "SYMBOL",
"name": "return_expression"
},
{
"type": "SYMBOL",
"name": "undef_expression"
},
{
"type": "SYMBOL",
"name": "require_expression"
},
{
"type": "SYMBOL",
"name": "require_version_expression"
},
{
"type": "SYMBOL",
"name": "func0op_call_expression"
},
{
"type": "SYMBOL",
"name": "func1op_call_expression"
},
{
"type": "SYMBOL",
"name": "map_grep_expression"
},
{
"type": "SYMBOL",
"name": "sort_expression"
},
{
"type": "SYMBOL",
"name": "bareword"
},
{
"type": "SYMBOL",
"name": "autoquoted_bareword"
},
{
"type": "SYMBOL",
"name": "_listop"
},
{
"type": "SYMBOL",
"name": "variable_declaration"
},
{
"type": "SYMBOL",
"name": "primitive"
},
{
"type": "SYMBOL",
"name": "_literal"
}
]
},
"readline_expression": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_open_readline_bracket"
},
"named": false,
"value": "<"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "scalar"
},
{
"type": "SYMBOL",
"name": "bareword"
}
]
},
"named": true,
"value": "filehandle"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": ">"
}
}
]
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "<<"
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": ">>"
}
}
]
}
}
]
},
"fileglob_expression": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_open_fileglob_bracket"
},
"named": false,
"value": "<"
}
},
{
"type": "FIELD",
"name": "content",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_interpolated_string_content"
},
"named": true,
"value": "string_content"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_quotelike_end"
},
"named": false,
"value": ">"
}
}
]
},
"assignment_expression": {
"type": "PREC_RIGHT",
"value": 6,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_term"
}
},
{
"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": "x="
},
{
"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": "_term"
}
}
]
}
},
"binary_expression": {
"type": "CHOICE",
"members": [
{
"type": "PREC_RIGHT",
"value": 8,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_term"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ".."
},
{
"type": "STRING",
"value": "..."
}
]
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_term"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ".."
},
{
"type": "STRING",
"value": "..."
}
]
}
},
{
"type": "SYMBOL",
"name": "_NONASSOC"
},
{
"type": "SYMBOL",
"name": "_ERROR"
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
{
"type": "PREC_RIGHT",
"value": 22,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_term"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "**"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_term"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 9,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_term"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "||"
},
{
"type": "STRING",
"value": "//"
},
{
"type": "STRING",
"value": "^^"
}
]
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_term"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 10,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_term"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "&&"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_term"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 11,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_term"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "|"
},
{
"type": "STRING",
"value": "^"
}
]
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_term"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 12,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_term"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "&"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_term"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 17,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_term"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "<<"
},
{
"type": "STRING",
"value": ">>"
}
]
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_term"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 18,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_term"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "+"
},
{
"type": "STRING",
"value": "-"
},
{
"type": "STRING",
"value": "."
}
]
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_term"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 19,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_term"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "*"
},
{
"type": "STRING",
"value": "/"
},
{
"type": "STRING",
"value": "%"
},
{
"type": "STRING",
"value": "x"
}
]
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_term"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 20,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_term"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "=~"
},
{
"type": "STRING",
"value": "!~"
}
]
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_term"
}
}
]
}
}
]
},
"equality_expression": {
"type": "CHOICE",
"members": [
{
"type": "PREC_LEFT",
"value": 13,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_term"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "=="
},
{
"type": "STRING",
"value": "!="
},
{
"type": "STRING",
"value": "eq"
},
{
"type": "STRING",
"value": "==="
},
{
"type": "STRING",
"value": "equ"
},
{
"type": "STRING",
"value": "eqr"
},
{
"type": "STRING",
"value": "ne"
}
]
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_term"
}
}
]
}
},
{
"type": "PREC_RIGHT",
"value": 13,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_term"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "<=>"
},
{
"type": "STRING",
"value": "cmp"
},
{
"type": "STRING",
"value": "~~"
}
]
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_term"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "<=>"
},
{
"type": "STRING",
"value": "cmp"
},
{
"type": "STRING",
"value": "~~"
}
]
}
},
{
"type": "SYMBOL",
"name": "_NONASSOC"
},
{
"type": "SYMBOL",
"name": "_ERROR"
}
]
},
{
"type": "BLANK"
}
]
}
]
}
}
]
},
"relational_expression": {
"type": "CHOICE",
"members": [
{
"type": "PREC_LEFT",
"value": 14,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_term"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "<"
},
{
"type": "STRING",
"value": "<="
},
{
"type": "STRING",
"value": ">="
},
{
"type": "STRING",
"value": ">"
},
{
"type": "STRING",
"value": "lt"
},
{
"type": "STRING",
"value": "le"
},
{
"type": "STRING",
"value": "ge"
},
{
"type": "STRING",
"value": "gt"
}
]
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_term"
}
}
]
}
},
{
"type": "PREC_RIGHT",
"value": 14,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_term"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "isa"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_term"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "isa"
}
},
{
"type": "SYMBOL",
"name": "_NONASSOC"
},
{
"type": "SYMBOL",
"name": "_ERROR"
}
]
},
{
"type": "BLANK"
}
]
}
]
}
}
]
},
"unary_expression": {
"type": "CHOICE",
"members": [
{
"type": "PREC",
"value": 21,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "-"
}
},
{
"type": "FIELD",
"name": "operand",
"content": {
"type": "SYMBOL",
"name": "_term"
}
}
]
}
},
{
"type": "PREC",
"value": 21,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "+"
}
},
{
"type": "FIELD",
"name": "operand",
"content": {
"type": "SYMBOL",
"name": "_term"
}
}
]
}
},
{
"type": "PREC",
"value": 21,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "~"
}
},
{
"type": "FIELD",
"name": "operand",
"content": {
"type": "SYMBOL",
"name": "_term"
}
}
]
}
},
{
"type": "PREC",
"value": 21,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "!"
}
},
{
"type": "FIELD",
"name": "operand",
"content": {
"type": "SYMBOL",
"name": "_term"
}
}
]
}
}
]
},
"preinc_expression": {
"type": "PREC",
"value": 23,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "++"
},
{
"type": "STRING",
"value": "--"
}
]
}
},
{
"type": "FIELD",
"name": "operand",
"content": {
"type": "SYMBOL",
"name": "_term"
}
}
]
}
},
"postinc_expression": {
"type": "PREC",
"value": 23,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operand",
"content": {
"type": "SYMBOL",
"name": "_term"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "++"
},
{
"type": "STRING",
"value": "--"
}
]
}
}
]
}
},
"conditional_expression": {
"type": "PREC_RIGHT",
"value": 7,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "_term"
}
},
{
"type": "STRING",
"value": "?"
},
{
"type": "FIELD",
"name": "consequent",
"content": {
"type": "SYMBOL",
"name": "_term"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "alternative",
"content": {
"type": "SYMBOL",
"name": "_term"
}
}
]
}
},
"refgen_expression": {
"type": "PREC_LEFT",
"value": 21,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\\"
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "amper_sub"
},
"named": true,
"value": "function"
},
{
"type": "SYMBOL",
"name": "_term"
}
]
}
]
}
},
"anonymous_array_expression": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "]"
}
]
},
"_tricky_list": {
"type": "PREC",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "string_literal"
},
{
"type": "SYMBOL",
"name": "interpolated_string_literal"
},
{
"type": "SYMBOL",
"name": "command_string"
},
{
"type": "SYMBOL",
"name": "autoquoted_bareword"
},
{
"type": "SYMBOL",
"name": "number"
}
]
},
{
"type": "SYMBOL",
"name": "_PERLY_COMMA"
},
{
"type": "SYMBOL",
"name": "_listexpr"
}
]
}
},
"anonymous_hash_expression": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_PERLY_BRACE_OPEN"
},
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "STRING",
"value": "}"
}
]
},
{
"type": "PREC",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_PERLY_BRACE_OPEN"
},
{
"type": "STRING",
"value": "}"
}
]
}
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_PERLY_BRACE_OPEN"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_tricky_list"
},
"named": true,
"value": "list_expression"
},
{
"type": "STRING",
"value": "}"
}
]
}
]
},
"anonymous_subroutine_expression": {
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "extended"
},
{
"type": "STRING",
"value": "async"
}
]
}
},
{
"type": "STRING",
"value": "sub"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "attributes",
"content": {
"type": "SYMBOL",
"name": "attrlist"
}
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "prototype"
},
{
"type": "SYMBOL",
"name": "signature"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "block"
}
}
]
},
"anonymous_method_expression": {
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "extended"
},
{
"type": "STRING",
"value": "async"
}
]
}
},
{
"type": "STRING",
"value": "method"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "attributes",
"content": {
"type": "SYMBOL",
"name": "attrlist"
}
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "prototype"
},
{
"type": "SYMBOL",
"name": "signature"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "block"
}
}
]
},
"do_expression": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "do"
},
{
"type": "SYMBOL",
"name": "block"
}
]
}
]
},
"eval_expression": {
"type": "PREC",
"value": 15,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "eval"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "block"
},
{
"type": "SYMBOL",
"name": "_term"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "do"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_term"
},
"named": true,
"value": "filename"
}
]
}
]
}
},
"await_expression": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "await"
},
{
"type": "SYMBOL",
"name": "_term"
}
]
},
"_declared_vars": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_declare_scalar"
},
"named": true,
"value": "scalar"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_declare_array"
},
"named": true,
"value": "array"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_declare_hash"
},
"named": true,
"value": "hash"
}
]
},
"variable_declaration": {
"type": "PREC_LEFT",
"value": 8,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "my"
},
{
"type": "STRING",
"value": "state"
},
{
"type": "STRING",
"value": "our"
},
{
"type": "STRING",
"value": "field"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "variable",
"content": {
"type": "SYMBOL",
"name": "_declared_vars"
}
},
{
"type": "FIELD",
"name": "variables",
"content": {
"type": "SYMBOL",
"name": "_decl_variable_list"
}
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "attributes",
"content": {
"type": "SYMBOL",
"name": "attrlist"
}
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
"_decl_variable_list": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "undef_expression"
},
{
"type": "SYMBOL",
"name": "_declared_vars"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ","
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "undef_expression"
},
{
"type": "SYMBOL",
"name": "_declared_vars"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"localization_expression": {
"type": "PREC",
"value": 15,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "local"
},
{
"type": "STRING",
"value": "dynamically"
}
]
},
{
"type": "SYMBOL",
"name": "_term"
}
]
}
},
"stub_expression": {
"type": "PREC",
"value": -1,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "STRING",
"value": ")"
}
]
}
},
"postfix_deref": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "scalar_deref_expression"
},
{
"type": "SYMBOL",
"name": "array_deref_expression"
},
{
"type": "SYMBOL",
"name": "arraylen_deref_expression"
},
{
"type": "SYMBOL",
"name": "hash_deref_expression"
},
{
"type": "SYMBOL",
"name": "amper_deref_expression"
},
{
"type": "SYMBOL",
"name": "glob_deref_expression"
}
]
},
"scalar_deref_expression": {
"type": "PREC_LEFT",
"value": 24,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_term"
},
{
"type": "STRING",
"value": "->"
},
{
"type": "STRING",
"value": "$"
},
{
"type": "STRING",
"value": "*"
}
]
}
},
"array_deref_expression": {
"type": "PREC_LEFT",
"value": 24,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_term"
},
{
"type": "STRING",
"value": "->"
},
{
"type": "STRING",
"value": "@"
},
{
"type": "STRING",
"value": "*"
}
]
}
},
"arraylen_deref_expression": {
"type": "PREC_LEFT",
"value": 24,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_term"
},
{
"type": "STRING",
"value": "->"
},
{
"type": "STRING",
"value": "$#"
},
{
"type": "STRING",
"value": "*"
}
]
}
},
"hash_deref_expression": {
"type": "PREC_LEFT",
"value": 24,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_term"
},
{
"type": "STRING",
"value": "->"
},
{
"type": "STRING",
"value": "%"
},
{
"type": "STRING",
"value": "*"
}
]
}
},
"amper_deref_expression": {
"type": "PREC_LEFT",
"value": 24,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_term"
},
{
"type": "STRING",
"value": "->"
},
{
"type": "STRING",
"value": "&"
},
{
"type": "STRING",
"value": "*"
}
]
}
},
"glob_deref_expression": {
"type": "PREC_LEFT",
"value": 24,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_term"
},
{
"type": "STRING",
"value": "->"
},
{
"type": "STRING",
"value": "*"
},
{
"type": "STRING",
"value": "*"
}
]
}
},
"require_expression": {
"type": "PREC_LEFT",
"value": 16,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "require"
},
{
"type": "SYMBOL",
"name": "_term"
}
]
}
},
"require_version_expression": {
"type": "PREC_LEFT",
"value": 16,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "require"
},
{
"type": "FIELD",
"name": "version",
"content": {
"type": "SYMBOL",
"name": "_version"
}
}
]
}
},
"func0op_call_expression": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "function",
"content": {
"type": "SYMBOL",
"name": "_func0op"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"func1op_call_expression": {
"type": "PREC_LEFT",
"value": 15,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "function",
"content": {
"type": "SYMBOL",
"name": "_func1op"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_term"
}
]
}
]
}
},
"_map_grep": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "map"
},
{
"type": "STRING",
"value": "grep"
}
]
},
"map_grep_expression": {
"type": "PREC_LEFT",
"value": 4,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_map_grep"
},
{
"type": "FIELD",
"name": "callback",
"content": {
"type": "SYMBOL",
"name": "block"
}
},
{
"type": "FIELD",
"name": "list",
"content": {
"type": "SYMBOL",
"name": "_listexpr"
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_map_grep"
},
{
"type": "FIELD",
"name": "callback",
"content": {
"type": "SYMBOL",
"name": "_term"
}
},
{
"type": "SYMBOL",
"name": "_PERLY_COMMA"
},
{
"type": "FIELD",
"name": "list",
"content": {
"type": "SYMBOL",
"name": "_listexpr"
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_map_grep"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_NONASSOC"
},
{
"type": "FIELD",
"name": "callback",
"content": {
"type": "SYMBOL",
"name": "_term"
}
},
{
"type": "SYMBOL",
"name": "_PERLY_COMMA"
},
{
"type": "FIELD",
"name": "list",
"content": {
"type": "SYMBOL",
"name": "_listexpr"
}
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_map_grep"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_NONASSOC"
},
{
"type": "FIELD",
"name": "callback",
"content": {
"type": "SYMBOL",
"name": "block"
}
},
{
"type": "FIELD",
"name": "list",
"content": {
"type": "SYMBOL",
"name": "_listexpr"
}
},
{
"type": "STRING",
"value": ")"
}
]
}
]
}
},
"_sort_routine": {
"type": "CHOICE",
"members": [
{
"type": "PREC",
"value": 1,
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_bareword"
},
"named": true,
"value": "function"
}
},
{
"type": "SYMBOL",
"name": "block"
},
{
"type": "PREC",
"value": 1,
"content": {
"type": "SYMBOL",
"name": "scalar"
}
}
]
},
"sort_expression": {
"type": "PREC_LEFT",
"value": 4,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "sort"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "callback",
"content": {
"type": "SYMBOL",
"name": "_sort_routine"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "list",
"content": {
"type": "SYMBOL",
"name": "_listexpr"
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "sort"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_NONASSOC"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "callback",
"content": {
"type": "SYMBOL",
"name": "_sort_routine"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "list",
"content": {
"type": "SYMBOL",
"name": "_listexpr"
}
},
{
"type": "STRING",
"value": ")"
}
]
}
]
}
},
"_label_arg": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "identifier"
},
"named": true,
"value": "label"
},
{
"type": "SYMBOL",
"name": "_term"
}
]
},
"loopex_expression": {
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "loopex",
"content": {
"type": "SYMBOL",
"name": "_LOOPEX"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_label_arg"
},
{
"type": "BLANK"
}
]
}
]
}
},
"goto_expression": {
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "goto"
},
{
"type": "SYMBOL",
"name": "_label_arg"
}
]
}
},
"return_expression": {
"type": "PREC",
"value": 4,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "return"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_listexpr"
},
{
"type": "BLANK"
}
]
}
]
}
},
"undef_expression": {
"type": "PREC_LEFT",
"value": 15,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "undef"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_term"
},
{
"type": "BLANK"
}
]
}
]
}
},
"_listop": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "method_call_expression"
},
{
"type": "SYMBOL",
"name": "function_call_expression"
},
{
"type": "SYMBOL",
"name": "ambiguous_function_call_expression"
}
]
},
"indirect_object": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "block"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "scalar"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_no_search_slash_plz"
},
{
"type": "BLANK"
}
]
}
]
}
]
},
"_unambiguous_function": {
"type": "ALIAS",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_bareword"
},
{
"type": "SYMBOL",
"name": "amper_sub"
}
]
},
"named": true,
"value": "function"
},
"function_call_expression": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "function",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "amper_sub"
},
"named": true,
"value": "function"
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "function",
"content": {
"type": "SYMBOL",
"name": "_unambiguous_function"
}
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_NONASSOC"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "arguments",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ")"
},
{
"type": "SYMBOL",
"name": "_RECOVER_PAREN_CLOSE"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "function",
"content": {
"type": "SYMBOL",
"name": "_unambiguous_function"
}
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_NONASSOC"
},
{
"type": "SYMBOL",
"name": "indirect_object"
},
{
"type": "FIELD",
"name": "arguments",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ")"
},
{
"type": "SYMBOL",
"name": "_RECOVER_PAREN_CLOSE"
}
]
}
]
}
]
},
"_tricky_indirob_hashref": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_PERLY_BRACE_OPEN"
},
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "SYMBOL",
"name": "_PERLY_SEMICOLON"
},
{
"type": "STRING",
"value": "}"
}
]
},
"ambiguous_function_call_expression": {
"type": "PREC_RIGHT",
"value": 4,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "function",
"content": {
"type": "SYMBOL",
"name": "function"
}
},
{
"type": "FIELD",
"name": "arguments",
"content": {
"type": "SYMBOL",
"name": "_listexpr"
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "function",
"content": {
"type": "SYMBOL",
"name": "function"
}
},
{
"type": "SYMBOL",
"name": "indirect_object"
},
{
"type": "FIELD",
"name": "arguments",
"content": {
"type": "SYMBOL",
"name": "_listexpr"
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "function",
"content": {
"type": "SYMBOL",
"name": "function"
}
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "block"
},
"named": true,
"value": "indirect_object"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "function",
"content": {
"type": "SYMBOL",
"name": "function"
}
},
{
"type": "FIELD",
"name": "arguments",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_tricky_indirob_hashref"
},
"named": true,
"value": "anonymous_hash_expression"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_PERLY_COMMA"
},
{
"type": "FIELD",
"name": "arguments",
"content": {
"type": "SYMBOL",
"name": "_listexpr"
}
}
]
},
{
"type": "BLANK"
}
]
}
]
}
]
}
},
"function": {
"type": "SYMBOL",
"name": "_bareword"
},
"method_call_expression": {
"type": "PREC_LEFT",
"value": 24,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "invocant",
"content": {
"type": "SYMBOL",
"name": "_term"
}
},
{
"type": "STRING",
"value": "->"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "&"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "method",
"content": {
"type": "SYMBOL",
"name": "method"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "arguments",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ")"
},
{
"type": "SYMBOL",
"name": "_RECOVER_PAREN_CLOSE"
}
]
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
"method": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_bareword"
},
{
"type": "SYMBOL",
"name": "scalar"
}
]
},
"_variables": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "scalar"
},
{
"type": "SYMBOL",
"name": "array"
},
{
"type": "SYMBOL",
"name": "hash"
},
{
"type": "SYMBOL",
"name": "arraylen"
},
{
"type": "SYMBOL",
"name": "glob"
}
]
},
"_signature_varname": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_identifier"
},
"named": true,
"value": "varname"
},
"scalar": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "$"
},
{
"type": "SYMBOL",
"name": "_var_indirob"
}
]
},
"_declare_scalar": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "$"
},
{
"type": "SYMBOL",
"name": "varname"
}
]
},
"_signature_scalar": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "$"
},
{
"type": "SYMBOL",
"name": "_signature_varname"
}
]
},
"array": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "@"
},
{
"type": "SYMBOL",
"name": "_var_indirob"
}
]
},
"_declare_array": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "@"
},
{
"type": "SYMBOL",
"name": "varname"
}
]
},
"_signature_array": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "@"
},
{
"type": "SYMBOL",
"name": "_signature_varname"
}
]
},
"_HASH_PERCENT": {
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 2,
"content": {
"type": "STRING",
"value": "%"
}
}
},
"named": false,
"value": "%"
},
"_SUB_AMPER": {
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 2,
"content": {
"type": "STRING",
"value": "&"
}
}
},
"named": false,
"value": "&"
},
"_GLOB_STAR": {
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 2,
"content": {
"type": "STRING",
"value": "*"
}
}
},
"named": false,
"value": "*"
},
"hash": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_HASH_PERCENT"
},
{
"type": "SYMBOL",
"name": "_var_indirob"
}
]
},
"_declare_hash": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_HASH_PERCENT"
},
{
"type": "SYMBOL",
"name": "varname"
}
]
},
"_signature_hash": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_HASH_PERCENT"
},
{
"type": "SYMBOL",
"name": "_signature_varname"
}
]
},
"arraylen": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "$#"
},
{
"type": "SYMBOL",
"name": "_var_indirob"
}
]
},
"glob": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_GLOB_STAR"
},
{
"type": "SYMBOL",
"name": "_var_indirob"
}
]
},
"amper_sub": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_SUB_AMPER"
},
{
"type": "SYMBOL",
"name": "_var_indirob"
}
]
},
"_indirob": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_bareword"
},
{
"type": "SYMBOL",
"name": "_ident_special"
},
{
"type": "SYMBOL",
"name": "scalar"
},
{
"type": "SYMBOL",
"name": "block"
}
]
},
"varname": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_identifier"
},
{
"type": "SYMBOL",
"name": "_ident_special"
}
]
},
"_var_indirob_autoquote": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_PERLY_BRACE_OPEN"
},
{
"type": "ALIAS",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_brace_autoquoted_token"
},
{
"type": "SYMBOL",
"name": "_bareword"
},
{
"type": "SYMBOL",
"name": "_ident_special"
},
{
"type": "PATTERN",
"value": "\\^\\w+"
}
]
},
"named": true,
"value": "varname"
},
{
"type": "SYMBOL",
"name": "_brace_end_zw"
},
{
"type": "STRING",
"value": "}"
}
]
},
"_var_indirob": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_indirob"
},
"named": true,
"value": "varname"
},
{
"type": "SYMBOL",
"name": "_var_indirob_autoquote"
}
]
},
"attrlist": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "attribute"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "attribute"
}
]
}
}
]
}
},
"attribute": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "attribute_name"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_attribute_value_begin"
},
{
"type": "STRING",
"value": "("
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "attribute_value"
}
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"attribute_name": {
"type": "SYMBOL",
"name": "_bareword"
},
"_PERLY_COMMA": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "STRING",
"value": "=>"
}
]
},
"_KW_USE": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "use"
},
{
"type": "STRING",
"value": "no"
}
]
},
"_KW_FOR": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "for"
},
{
"type": "STRING",
"value": "foreach"
}
]
},
"_LOOPEX": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "last"
},
{
"type": "STRING",
"value": "next"
},
{
"type": "STRING",
"value": "redo"
}
]
},
"_PHASE_NAME": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "BEGIN"
},
{
"type": "STRING",
"value": "INIT"
},
{
"type": "STRING",
"value": "CHECK"
},
{
"type": "STRING",
"value": "UNITCHECK"
},
{
"type": "STRING",
"value": "END"
}
]
},
"_func0op": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "__FILE__"
},
{
"type": "STRING",
"value": "__LINE__"
},
{
"type": "STRING",
"value": "__PACKAGE__"
},
{
"type": "STRING",
"value": "__SUB__"
},
{
"type": "STRING",
"value": "break"
},
{
"type": "STRING",
"value": "fork"
},
{
"type": "STRING",
"value": "getppid"
},
{
"type": "STRING",
"value": "time"
},
{
"type": "STRING",
"value": "times"
},
{
"type": "STRING",
"value": "wait"
},
{
"type": "STRING",
"value": "wantarray"
},
{
"type": "STRING",
"value": "continue"
}
]
},
"_func1op": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "abs"
},
{
"type": "STRING",
"value": "alarm"
},
{
"type": "STRING",
"value": "chop"
},
{
"type": "STRING",
"value": "chdir"
},
{
"type": "STRING",
"value": "close"
},
{
"type": "STRING",
"value": "closedir"
},
{
"type": "STRING",
"value": "caller"
},
{
"type": "STRING",
"value": "chomp"
},
{
"type": "STRING",
"value": "chr"
},
{
"type": "STRING",
"value": "cos"
},
{
"type": "STRING",
"value": "chroot"
},
{
"type": "STRING",
"value": "defined"
},
{
"type": "STRING",
"value": "delete"
},
{
"type": "STRING",
"value": "dbmclose"
},
{
"type": "STRING",
"value": "exists"
},
{
"type": "STRING",
"value": "exit"
},
{
"type": "STRING",
"value": "eof"
},
{
"type": "STRING",
"value": "exp"
},
{
"type": "STRING",
"value": "each"
},
{
"type": "STRING",
"value": "fc"
},
{
"type": "STRING",
"value": "fileno"
},
{
"type": "STRING",
"value": "gmtime"
},
{
"type": "STRING",
"value": "getc"
},
{
"type": "STRING",
"value": "getpgrp"
},
{
"type": "STRING",
"value": "getprotobyname"
},
{
"type": "STRING",
"value": "getpwname"
},
{
"type": "STRING",
"value": "getpwuid"
},
{
"type": "STRING",
"value": "getpeername"
},
{
"type": "STRING",
"value": "getnetbyname"
},
{
"type": "STRING",
"value": "getsockname"
},
{
"type": "STRING",
"value": "getgrnam"
},
{
"type": "STRING",
"value": "getgrgid"
},
{
"type": "STRING",
"value": "hex"
},
{
"type": "STRING",
"value": "int"
},
{
"type": "STRING",
"value": "keys"
},
{
"type": "STRING",
"value": "lc"
},
{
"type": "STRING",
"value": "lcfirst"
},
{
"type": "STRING",
"value": "length"
},
{
"type": "STRING",
"value": "localtime"
},
{
"type": "STRING",
"value": "log"
},
{
"type": "STRING",
"value": "lock"
},
{
"type": "STRING",
"value": "lstat"
},
{
"type": "STRING",
"value": "oct"
},
{
"type": "STRING",
"value": "ord"
},
{
"type": "STRING",
"value": "prototype"
},
{
"type": "STRING",
"value": "pop"
},
{
"type": "STRING",
"value": "pos"
},
{
"type": "STRING",
"value": "quotemeta"
},
{
"type": "STRING",
"value": "reset"
},
{
"type": "STRING",
"value": "rand"
},
{
"type": "STRING",
"value": "rmdir"
},
{
"type": "STRING",
"value": "readdir"
},
{
"type": "STRING",
"value": "readline"
},
{
"type": "STRING",
"value": "readpipe"
},
{
"type": "STRING",
"value": "rewinddir"
},
{
"type": "STRING",
"value": "readlink"
},
{
"type": "STRING",
"value": "ref"
},
{
"type": "STRING",
"value": "scalar"
},
{
"type": "STRING",
"value": "shift"
},
{
"type": "STRING",
"value": "sin"
},
{
"type": "STRING",
"value": "sleep"
},
{
"type": "STRING",
"value": "sqrt"
},
{
"type": "STRING",
"value": "srand"
},
{
"type": "STRING",
"value": "stat"
},
{
"type": "STRING",
"value": "study"
},
{
"type": "STRING",
"value": "tell"
},
{
"type": "STRING",
"value": "telldir"
},
{
"type": "STRING",
"value": "tied"
},
{
"type": "STRING",
"value": "uc"
},
{
"type": "STRING",
"value": "ucfirst"
},
{
"type": "STRING",
"value": "untie"
},
{
"type": "STRING",
"value": "umask"
},
{
"type": "STRING",
"value": "values"
},
{
"type": "STRING",
"value": "write"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_filetest"
},
"named": false,
"value": "-x"
}
]
},
"comment": {
"type": "PATTERN",
"value": "#.*"
},
"__DATA__": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "__DATA__"
},
{
"type": "STRING",
"value": "__END__"
}
]
},
"named": true,
"value": "eof_marker"
},
{
"type": "PATTERN",
"value": ".*"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_gobbled_content"
},
"named": true,
"value": "data_section"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "\u0004"
},
{
"type": "SYMBOL",
"name": "_ctrl_z_hack"
}
]
},
"named": true,
"value": "eof_marker"
},
{
"type": "SYMBOL",
"name": "_gobbled_content"
}
]
}
]
}
]
},
"_literal": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "string_literal"
},
{
"type": "SYMBOL",
"name": "interpolated_string_literal"
},
{
"type": "SYMBOL",
"name": "command_string"
},
{
"type": "SYMBOL",
"name": "quoted_regexp"
},
{
"type": "SYMBOL",
"name": "match_regexp"
},
{
"type": "SYMBOL",
"name": "substitution_regexp"
},
{
"type": "SYMBOL",
"name": "transliteration_expression"
}
]
},
"_apostrophe": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_single_quote"
},
"named": false,
"value": "'"
},
"_quotation_mark": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_double_quote"
},
"named": false,
"value": "'"
},
"_backtick": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_backtick_quote"
},
"named": false,
"value": "'"
},
"_search_slash": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_search_slash_quote"
},
"named": false,
"value": "'"
},
"_quotelike_begin": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_quotelike_begin_quote"
},
"named": false,
"value": "'"
},
"_quotelike_middle_close": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_quotelike_middle_close_quote"
},
"named": false,
"value": "'"
},
"_quotelike_end": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_quotelike_end_quote"
},
"named": false,
"value": "'"
},
"_quotelike_middle": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_quotelike_middle_close"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_quotelike_middle_skip"
},
{
"type": "SYMBOL",
"name": "_quotelike_begin"
}
]
}
]
},
"string_literal": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "q"
},
{
"type": "SYMBOL",
"name": "_quotelike_begin"
}
]
},
{
"type": "SYMBOL",
"name": "_apostrophe"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "content",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_noninterpolated_string_content"
},
"named": true,
"value": "string_content"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_quotelike_end"
}
]
},
"interpolated_string_literal": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "qq"
},
{
"type": "SYMBOL",
"name": "_quotelike_begin"
}
]
},
{
"type": "SYMBOL",
"name": "_quotation_mark"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "content",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_interpolated_string_content"
},
"named": true,
"value": "string_content"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_quotelike_end"
}
]
},
"_subscripted_interpolations": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_array_element_interpolation"
},
"named": true,
"value": "array_element_expression"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_hash_element_interpolation"
},
"named": true,
"value": "hash_element_expression"
}
]
},
"_braced_scalar": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "$"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "block"
},
{
"type": "SYMBOL",
"name": "_var_indirob_autoquote"
}
]
},
{
"type": "SYMBOL",
"name": "_NONASSOC"
}
]
},
"_braced_array": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "@"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "block"
},
{
"type": "SYMBOL",
"name": "_var_indirob_autoquote"
}
]
},
{
"type": "SYMBOL",
"name": "_NONASSOC"
}
]
},
"_interp_arrow": {
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "->"
}
},
"_array_element_interpolation": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "array",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "scalar"
},
"named": true,
"value": "container_variable"
}
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "["
}
},
{
"type": "FIELD",
"name": "index",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "STRING",
"value": "]"
}
]
},
{
"type": "PREC_LEFT",
"value": 24,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "scalar"
},
{
"type": "SYMBOL",
"name": "_interp_arrow"
},
{
"type": "STRING",
"value": "["
},
{
"type": "FIELD",
"name": "index",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "STRING",
"value": "]"
}
]
}
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_subscripted_interpolations"
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "["
}
},
{
"type": "FIELD",
"name": "index",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "STRING",
"value": "]"
}
]
}
]
},
"_hash_element_interpolation": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "hash",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "scalar"
},
"named": true,
"value": "container_variable"
}
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "{"
}
},
{
"type": "FIELD",
"name": "key",
"content": {
"type": "SYMBOL",
"name": "_hash_key"
}
},
{
"type": "STRING",
"value": "}"
}
]
},
{
"type": "PREC_LEFT",
"value": 24,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "scalar"
},
{
"type": "SYMBOL",
"name": "_interp_arrow"
},
{
"type": "STRING",
"value": "{"
},
{
"type": "FIELD",
"name": "key",
"content": {
"type": "SYMBOL",
"name": "_hash_key"
}
},
{
"type": "STRING",
"value": "}"
}
]
}
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_subscripted_interpolations"
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "{"
}
},
{
"type": "FIELD",
"name": "key",
"content": {
"type": "SYMBOL",
"name": "_hash_key"
}
},
{
"type": "STRING",
"value": "}"
}
]
}
]
},
"_slice_expression_interpolation": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "array",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "array"
},
"named": true,
"value": "slice_container_variable"
}
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "["
}
},
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "STRING",
"value": "]"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "hash",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "array"
},
"named": true,
"value": "slice_container_variable"
}
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "{"
}
},
{
"type": "SYMBOL",
"name": "_hash_key"
},
{
"type": "STRING",
"value": "}"
}
]
},
{
"type": "PREC_LEFT",
"value": 24,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "arrayref",
"content": {
"type": "SYMBOL",
"name": "scalar"
}
},
{
"type": "SYMBOL",
"name": "_interp_arrow"
},
{
"type": "STRING",
"value": "@"
},
{
"type": "STRING",
"value": "["
},
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "STRING",
"value": "]"
}
]
}
},
{
"type": "PREC_LEFT",
"value": 24,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "hashref",
"content": {
"type": "SYMBOL",
"name": "scalar"
}
},
{
"type": "SYMBOL",
"name": "_interp_arrow"
},
{
"type": "STRING",
"value": "@"
},
{
"type": "STRING",
"value": "{"
},
{
"type": "SYMBOL",
"name": "_hash_key"
},
{
"type": "STRING",
"value": "}"
}
]
}
}
]
},
"_scalar_deref_interpolation": {
"type": "PREC_LEFT",
"value": 24,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "scalar"
},
{
"type": "SYMBOL",
"name": "_interp_arrow"
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "$*"
}
}
]
}
},
"_array_deref_interpolation": {
"type": "PREC_LEFT",
"value": 24,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "arrayref",
"content": {
"type": "SYMBOL",
"name": "scalar"
}
},
{
"type": "SYMBOL",
"name": "_interp_arrow"
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "@*"
}
}
]
}
},
"_interpolations": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "scalar"
},
{
"type": "SYMBOL",
"name": "array"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_scalar_deref_interpolation"
},
"named": true,
"value": "scalar_deref_expression"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_array_deref_interpolation"
},
"named": true,
"value": "array_deref_expression"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_braced_scalar"
},
"named": true,
"value": "scalar"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_braced_array"
},
"named": true,
"value": "array"
},
{
"type": "SYMBOL",
"name": "_subscripted_interpolations"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_slice_expression_interpolation"
},
"named": true,
"value": "slice_expression"
}
]
},
"_noninterpolated_string_content": {
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_q_string_content"
},
{
"type": "SYMBOL",
"name": "escape_sequence"
},
{
"type": "SYMBOL",
"name": "escaped_delimiter"
}
]
}
},
"_interpolation_fallbacks": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "@"
},
{
"type": "SYMBOL",
"name": "_no_interp_whitespace_zw"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "@"
},
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[^A-Za-z0-9_\\$'+:-]"
},
{
"type": "SYMBOL",
"name": "_quotelike_end_zw"
},
{
"type": "SYMBOL",
"name": "_quotelike_end"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "scalar"
},
{
"type": "ALIAS",
"content": {
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "->"
}
},
"named": false,
"value": "not-interpolated"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "@"
},
{
"type": "STRING",
"value": "$"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_no_interp_whitespace_zw"
}
]
},
{
"type": "SYMBOL",
"name": "scalar"
},
{
"type": "PATTERN",
"value": "[^@${\\[]"
}
]
}
]
},
{
"type": "SYMBOL",
"name": "_nonvar_interpolation_fallbacks"
}
]
},
"_nonvar_interpolation_fallbacks": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "-"
},
"named": false,
"value": "not-interpolated"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "{"
},
"named": false,
"value": "not-interpolated"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "["
},
"named": false,
"value": "not-interpolated"
}
]
},
"_interpolated_string_content": {
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_qq_string_content"
},
{
"type": "SYMBOL",
"name": "_interpolation_fallbacks"
},
{
"type": "SYMBOL",
"name": "escape_sequence"
},
{
"type": "SYMBOL",
"name": "escaped_delimiter"
},
{
"type": "SYMBOL",
"name": "_interpolations"
}
]
}
},
"quoted_word_list": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "qw"
},
{
"type": "SYMBOL",
"name": "_quotelike_begin"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "content",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_noninterpolated_string_content"
},
"named": true,
"value": "string_content"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_quotelike_end"
}
]
},
"command_string": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "qx"
},
{
"type": "SYMBOL",
"name": "_quotelike_begin"
}
]
},
{
"type": "SYMBOL",
"name": "_backtick"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "content",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_interpolated_string_content"
},
"named": true,
"value": "string_content"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_quotelike_end"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "qx"
},
{
"type": "SYMBOL",
"name": "_apostrophe"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "content",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_noninterpolated_string_content"
},
"named": true,
"value": "string_content"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_quotelike_end"
}
]
}
]
},
"quoted_regexp": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "qr"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_quotelike_begin"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "content",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_interpolated_regexp_content"
},
"named": true,
"value": "regexp_content"
}
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_apostrophe"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "content",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_noninterpolated_string_content"
},
"named": true,
"value": "regexp_content"
}
},
{
"type": "BLANK"
}
]
}
]
}
]
},
{
"type": "SYMBOL",
"name": "_quotelike_end"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "modifiers",
"content": {
"type": "SYMBOL",
"name": "quoted_regexp_modifiers"
}
},
{
"type": "BLANK"
}
]
}
]
},
"match_regexp": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_search_slash"
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "m"
}
},
{
"type": "SYMBOL",
"name": "_quotelike_begin"
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "content",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_interpolated_regexp_content"
},
"named": true,
"value": "regexp_content"
}
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "m"
}
},
{
"type": "SYMBOL",
"name": "_apostrophe"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "content",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_noninterpolated_string_content"
},
"named": true,
"value": "regexp_content"
}
},
{
"type": "BLANK"
}
]
}
]
}
]
},
{
"type": "SYMBOL",
"name": "_quotelike_end"
}
]
},
{
"type": "STRING",
"value": "//"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "modifiers",
"content": {
"type": "SYMBOL",
"name": "match_regexp_modifiers"
}
},
{
"type": "BLANK"
}
]
}
]
},
"substitution_regexp": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "s"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_quotelike_begin"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "content",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_interpolated_regexp_content"
},
"named": true,
"value": "regexp_content"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_quotelike_middle"
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_interpolated_string_content"
},
"named": true,
"value": "replacement"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_apostrophe"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "content",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_noninterpolated_string_content"
},
"named": true,
"value": "regexp_content"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_quotelike_middle"
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_noninterpolated_string_content"
},
"named": true,
"value": "replacement"
},
{
"type": "BLANK"
}
]
}
]
}
]
},
{
"type": "SYMBOL",
"name": "_quotelike_end"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "modifiers",
"content": {
"type": "SYMBOL",
"name": "substitution_regexp_modifiers"
}
},
{
"type": "BLANK"
}
]
}
]
},
"_interpolated_regexp_content": {
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_qq_string_content"
},
{
"type": "SYMBOL",
"name": "escape_sequence"
},
{
"type": "SYMBOL",
"name": "escaped_delimiter"
},
{
"type": "SYMBOL",
"name": "_dollar_in_regexp"
},
{
"type": "SYMBOL",
"name": "_interpolation_fallbacks"
},
{
"type": "SYMBOL",
"name": "_interpolations"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "$"
},
{
"type": "SYMBOL",
"name": "_no_interp_whitespace_zw"
}
]
}
]
}
},
"quoted_regexp_modifiers": {
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PREC",
"value": 2,
"content": {
"type": "PATTERN",
"value": "[msixpodualn]+"
}
}
},
"match_regexp_modifiers": {
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PREC",
"value": 2,
"content": {
"type": "PATTERN",
"value": "[msixpogcdualn]+"
}
}
},
"substitution_regexp_modifiers": {
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PREC",
"value": 2,
"content": {
"type": "PATTERN",
"value": "[msixpogcedualr]+"
}
}
},
"transliteration_modifiers": {
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PREC",
"value": 2,
"content": {
"type": "PATTERN",
"value": "[cdsr]+"
}
}
},
"_interpolated_transliteration_content": {
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_qq_string_content"
},
{
"type": "SYMBOL",
"name": "_nonvar_interpolation_fallbacks"
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "$"
},
{
"type": "STRING",
"value": "@"
}
]
},
{
"type": "PATTERN",
"value": "."
}
]
},
{
"type": "SYMBOL",
"name": "escape_sequence"
},
{
"type": "SYMBOL",
"name": "escaped_delimiter"
}
]
}
},
"transliteration_expression": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "tr"
},
{
"type": "STRING",
"value": "y"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_quotelike_begin"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "content",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_interpolated_transliteration_content"
},
"named": true,
"value": "transliteration_content"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_quotelike_middle"
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_interpolated_transliteration_content"
},
"named": true,
"value": "replacement"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_apostrophe"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "content",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_noninterpolated_string_content"
},
"named": true,
"value": "transliteration_content"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_quotelike_middle"
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_noninterpolated_string_content"
},
"named": true,
"value": "replacement"
},
{
"type": "BLANK"
}
]
}
]
}
]
},
{
"type": "SYMBOL",
"name": "_quotelike_end"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "modifiers",
"content": {
"type": "SYMBOL",
"name": "transliteration_modifiers"
}
},
{
"type": "BLANK"
}
]
}
]
},
"heredoc_token": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_PERLY_HEREDOC"
},
{
"type": "SYMBOL",
"name": "_heredoc_delimiter"
}
]
},
"command_heredoc_token": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_PERLY_HEREDOC"
},
{
"type": "SYMBOL",
"name": "_command_heredoc_delimiter"
}
]
},
"heredoc_content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_heredoc_start"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_heredoc_middle"
},
{
"type": "SYMBOL",
"name": "escape_sequence"
},
{
"type": "SYMBOL",
"name": "_interpolations"
},
{
"type": "SYMBOL",
"name": "_interpolation_fallbacks"
}
]
}
},
{
"type": "SYMBOL",
"name": "heredoc_end"
}
]
},
"package": {
"type": "SYMBOL",
"name": "_bareword"
},
"_version": {
"type": "PREC",
"value": 1,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "SYMBOL",
"name": "version"
}
]
}
},
"version": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "v[0-9]+(?:\\.[0-9]+)*"
}
}
},
"_conditionals": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "if"
},
{
"type": "STRING",
"value": "unless"
}
]
},
"_loops": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "while"
},
{
"type": "STRING",
"value": "until"
}
]
},
"autoquoted_bareword": {
"type": "CHOICE",
"members": [
{
"type": "PREC_DYNAMIC",
"value": 20,
"content": {
"type": "PREC",
"value": 25,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "-"
},
{
"type": "SYMBOL",
"name": "_bareword"
}
]
}
}
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "-"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_fat_comma_autoquoted"
}
]
}
]
},
"_brace_autoquoted": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_brace_autoquoted_token"
},
"named": true,
"value": "autoquoted_bareword"
},
"identifier": {
"type": "PREC",
"value": 2,
"content": {
"type": "SYMBOL",
"name": "_identifier"
}
},
"_identifier": {
"type": "PATTERN",
"value": "[_\\p{XID_Start}][\\p{XID_Continue}]*",
"flags": "v"
},
"_ident_special": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[0-9]+|\\^([A-Z[?\\^_]|])|\\S"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "$"
},
{
"type": "SYMBOL",
"name": "_dollar_ident_zw"
}
]
}
]
},
"bareword": {
"type": "PREC_DYNAMIC",
"value": 1,
"content": {
"type": "SYMBOL",
"name": "_bareword"
}
},
"_bareword": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_identifier"
},
{
"type": "PATTERN",
"value": "((::)|([a-zA-Z_]\\w*))+"
}
]
},
"primitive": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "SYMBOL",
"name": "boolean"
}
]
},
"number": {
"type": "TOKEN",
"content": {
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "0"
},
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[1-9]"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "_"
},
{
"type": "BLANK"
}
]
},
{
"type": "PATTERN",
"value": "\\d(_?\\d)*"
}
]
},
{
"type": "BLANK"
}
]
}
]
}
]
},
{
"type": "STRING",
"value": "."
},
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "\\d(_?\\d)*"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "e"
},
{
"type": "STRING",
"value": "E"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "-"
},
{
"type": "STRING",
"value": "+"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "PATTERN",
"value": "\\d(_?\\d)*"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "PATTERN",
"value": "\\d(_?\\d)*"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "e"
},
{
"type": "STRING",
"value": "E"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "-"
},
{
"type": "STRING",
"value": "+"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "PATTERN",
"value": "\\d(_?\\d)*"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "0"
},
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[1-9]"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "_"
},
{
"type": "BLANK"
}
]
},
{
"type": "PATTERN",
"value": "\\d(_?\\d)*"
}
]
},
{
"type": "BLANK"
}
]
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "e"
},
{
"type": "STRING",
"value": "E"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "-"
},
{
"type": "STRING",
"value": "+"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "PATTERN",
"value": "\\d(_?\\d)*"
}
]
}
]
},
{
"type": "PATTERN",
"value": "\\d(_?\\d)*"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "0x"
},
{
"type": "STRING",
"value": "0X"
}
]
},
{
"type": "PATTERN",
"value": "[\\da-fA-F](_?[\\da-fA-F])*"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "0b"
},
{
"type": "STRING",
"value": "0B"
}
]
},
{
"type": "PATTERN",
"value": "[0-1](_?[0-1])*"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "0"
},
{
"type": "PATTERN",
"value": "[0-7](_?[0-7])*"
}
]
}
]
}
},
"boolean": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "true"
},
{
"type": "STRING",
"value": "false"
}
]
}
},
"extras": [
{
"type": "PATTERN",
"value": "\\p{White_Space}|\\\\\\r?\\n"
},
{
"type": "SYMBOL",
"name": "comment"
},
{
"type": "SYMBOL",
"name": "pod"
},
{
"type": "SYMBOL",
"name": "heredoc_content"
}
],
"conflicts": [
[
"preinc_expression",
"postinc_expression"
],
[
"_listexpr",
"_term_rightward"
],
[
"return_expression"
],
[
"function",
"bareword"
],
[
"function",
"function_call_expression"
],
[
"_variables",
"indirect_object"
],
[
"expression_statement",
"_tricky_indirob_hashref"
],
[
"autoquoted_bareword"
],
[
"optional_parameter"
],
[
"_loop_body"
],
[
"_interp_arrow",
"_interpolation_fallbacks"
]
],
"precedences": [],
"externals": [
{
"type": "SYMBOL",
"name": "_single_quote"
},
{
"type": "SYMBOL",
"name": "_double_quote"
},
{
"type": "SYMBOL",
"name": "_backtick_quote"
},
{
"type": "SYMBOL",
"name": "_search_slash_quote"
},
{
"type": "SYMBOL",
"name": "_no_search_slash_plz"
},
{
"type": "SYMBOL",
"name": "_open_readline_bracket"
},
{
"type": "SYMBOL",
"name": "_open_fileglob_bracket"
},
{
"type": "SYMBOL",
"name": "_PERLY_SEMICOLON"
},
{
"type": "SYMBOL",
"name": "_PERLY_HEREDOC"
},
{
"type": "SYMBOL",
"name": "_ctrl_z_hack"
},
{
"type": "SYMBOL",
"name": "_quotelike_begin_quote"
},
{
"type": "SYMBOL",
"name": "_quotelike_middle_close_quote"
},
{
"type": "SYMBOL",
"name": "_quotelike_middle_skip"
},
{
"type": "SYMBOL",
"name": "_quotelike_end_zw"
},
{
"type": "SYMBOL",
"name": "_quotelike_end_quote"
},
{
"type": "SYMBOL",
"name": "_q_string_content"
},
{
"type": "SYMBOL",
"name": "_qq_string_content"
},
{
"type": "SYMBOL",
"name": "escape_sequence"
},
{
"type": "SYMBOL",
"name": "escaped_delimiter"
},
{
"type": "SYMBOL",
"name": "_dollar_in_regexp"
},
{
"type": "SYMBOL",
"name": "pod"
},
{
"type": "SYMBOL",
"name": "_gobbled_content"
},
{
"type": "SYMBOL",
"name": "_attribute_value_begin"
},
{
"type": "SYMBOL",
"name": "attribute_value"
},
{
"type": "SYMBOL",
"name": "prototype"
},
{
"type": "SYMBOL",
"name": "_signature_start"
},
{
"type": "SYMBOL",
"name": "_heredoc_delimiter"
},
{
"type": "SYMBOL",
"name": "_command_heredoc_delimiter"
},
{
"type": "SYMBOL",
"name": "_heredoc_start"
},
{
"type": "SYMBOL",
"name": "_heredoc_middle"
},
{
"type": "SYMBOL",
"name": "heredoc_end"
},
{
"type": "SYMBOL",
"name": "_fat_comma_autoquoted"
},
{
"type": "SYMBOL",
"name": "_filetest"
},
{
"type": "SYMBOL",
"name": "_brace_autoquoted_token"
},
{
"type": "SYMBOL",
"name": "_brace_end_zw"
},
{
"type": "SYMBOL",
"name": "_dollar_ident_zw"
},
{
"type": "SYMBOL",
"name": "_no_interp_whitespace_zw"
},
{
"type": "SYMBOL",
"name": "_NONASSOC"
},
{
"type": "SYMBOL",
"name": "_RECOVER_PAREN_CLOSE"
},
{
"type": "SYMBOL",
"name": "_ERROR"
}
],
"inline": [
"_func0op",
"_func1op",
"_map_grep",
"_PERLY_COMMA",
"_KW_USE",
"_KW_FOR",
"_LOOPEX",
"_PHASE_NAME",
"_HASH_PERCENT",
"_bareword",
"_unambiguous_function"
],
"supertypes": [
"primitive",
"postfix_deref",
"subscripted",
"slices"
],
"reserved": {}
}