rizin/subprojects/rizin-shell-parser/src/grammar.json
2022-03-18 17:29:39 +01:00

3691 lines
79 KiB
JSON
Generated

{
"name": "rzcmd",
"rules": {
"statements": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": []
},
{
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "stmt_delimiter"
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "stmt_delimiter"
}
},
{
"type": "SYMBOL",
"name": "_statement"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "stmt_delimiter"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_statement"
},
{
"type": "BLANK"
}
]
}
]
}
}
]
}
]
},
"_statements_singleline": {
"type": "PREC",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "stmt_delimiter_singleline"
}
},
{
"type": "SYMBOL",
"name": "_statement"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "stmt_delimiter_singleline"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_statement"
},
{
"type": "BLANK"
}
]
}
]
}
}
]
}
},
"_statement": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "redirect_stmt"
},
{
"type": "SYMBOL",
"name": "_simple_stmt"
}
]
},
"legacy_quoted_stmt": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\""
},
{
"type": "FIELD",
"name": "string",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": -1,
"content": {
"type": "PATTERN",
"value": "([^\"\\\\]|\\\\(.|\\n))+"
}
}
}
},
{
"type": "STRING",
"value": "\""
}
]
},
"_simple_stmt": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "help_stmt"
},
{
"type": "SYMBOL",
"name": "repeat_stmt"
},
{
"type": "SYMBOL",
"name": "arged_stmt"
},
{
"type": "SYMBOL",
"name": "_tmp_stmt"
},
{
"type": "SYMBOL",
"name": "_iter_stmt"
},
{
"type": "SYMBOL",
"name": "_pipe_stmt"
},
{
"type": "SYMBOL",
"name": "grep_stmt"
},
{
"type": "SYMBOL",
"name": "legacy_quoted_stmt"
},
{
"type": "SYMBOL",
"name": "_pf_stmts"
}
]
},
"_tmp_stmt": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "tmp_seek_stmt"
},
{
"type": "SYMBOL",
"name": "tmp_blksz_stmt"
},
{
"type": "SYMBOL",
"name": "tmp_fromto_stmt"
},
{
"type": "SYMBOL",
"name": "tmp_arch_stmt"
},
{
"type": "SYMBOL",
"name": "tmp_bits_stmt"
},
{
"type": "SYMBOL",
"name": "tmp_nthi_stmt"
},
{
"type": "SYMBOL",
"name": "tmp_eval_stmt"
},
{
"type": "SYMBOL",
"name": "tmp_fs_stmt"
},
{
"type": "SYMBOL",
"name": "tmp_reli_stmt"
},
{
"type": "SYMBOL",
"name": "tmp_kuery_stmt"
},
{
"type": "SYMBOL",
"name": "tmp_fd_stmt"
},
{
"type": "SYMBOL",
"name": "tmp_reg_stmt"
},
{
"type": "SYMBOL",
"name": "tmp_file_stmt"
},
{
"type": "SYMBOL",
"name": "tmp_string_stmt"
},
{
"type": "SYMBOL",
"name": "tmp_value_stmt"
},
{
"type": "SYMBOL",
"name": "tmp_hex_stmt"
}
]
},
"_iter_stmt": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "iter_file_lines_stmt"
},
{
"type": "SYMBOL",
"name": "iter_offsets_stmt"
},
{
"type": "SYMBOL",
"name": "iter_offsetssizes_stmt"
},
{
"type": "SYMBOL",
"name": "iter_hit_stmt"
},
{
"type": "SYMBOL",
"name": "iter_interpret_stmt"
},
{
"type": "SYMBOL",
"name": "iter_interpret_offsetssizes_stmt"
},
{
"type": "SYMBOL",
"name": "iter_comment_stmt"
},
{
"type": "SYMBOL",
"name": "iter_dbta_stmt"
},
{
"type": "SYMBOL",
"name": "iter_dbtb_stmt"
},
{
"type": "SYMBOL",
"name": "iter_dbts_stmt"
},
{
"type": "SYMBOL",
"name": "iter_threads_stmt"
},
{
"type": "SYMBOL",
"name": "iter_bbs_stmt"
},
{
"type": "SYMBOL",
"name": "iter_instrs_stmt"
},
{
"type": "SYMBOL",
"name": "iter_import_stmt"
},
{
"type": "SYMBOL",
"name": "iter_sections_stmt"
},
{
"type": "SYMBOL",
"name": "iter_segments_stmt"
},
{
"type": "SYMBOL",
"name": "iter_symbol_stmt"
},
{
"type": "SYMBOL",
"name": "iter_string_stmt"
},
{
"type": "SYMBOL",
"name": "iter_flags_stmt"
},
{
"type": "SYMBOL",
"name": "iter_function_stmt"
},
{
"type": "SYMBOL",
"name": "iter_iomap_stmt"
},
{
"type": "SYMBOL",
"name": "iter_dbgmap_stmt"
},
{
"type": "SYMBOL",
"name": "iter_register_stmt"
},
{
"type": "SYMBOL",
"name": "iter_step_stmt"
}
]
},
"_pipe_stmt": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "html_disable_stmt"
},
{
"type": "SYMBOL",
"name": "html_enable_stmt"
},
{
"type": "SYMBOL",
"name": "pipe_stmt"
}
]
},
"grep_stmt": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "command",
"content": {
"type": "SYMBOL",
"name": "_simple_stmt"
}
},
{
"type": "STRING",
"value": "~"
},
{
"type": "FIELD",
"name": "specifier",
"content": {
"type": "SYMBOL",
"name": "grep_specifier"
}
}
]
},
"grep_specifier_identifier": {
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[^\\n\\r;#@>|`$()]+"
},
{
"type": "PATTERN",
"value": "\\\\."
},
{
"type": "PATTERN",
"value": "\\$[^(\\r\\n;#>|`]"
}
]
}
}
]
}
},
"grep_specifier": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "grep_specifier_identifier"
},
{
"type": "SYMBOL",
"name": "cmd_substitution_arg"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[$]+"
},
"named": true,
"value": "grep_specifier_identifier"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[$]+"
},
"named": true,
"value": "grep_specifier_identifier"
}
]
}
},
"html_disable_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "command",
"content": {
"type": "SYMBOL",
"name": "_simple_stmt"
}
},
{
"type": "STRING",
"value": "|"
}
]
}
},
"html_enable_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "command",
"content": {
"type": "SYMBOL",
"name": "_simple_stmt"
}
},
{
"type": "STRING",
"value": "|H"
}
]
}
},
"pipe_stmt": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_stmt"
},
{
"type": "STRING",
"value": "|"
},
{
"type": "SYMBOL",
"name": "args"
}
]
},
"pipe_second_stmt": {
"type": "PATTERN",
"value": "[^|\\r\\n;]+"
},
"iter_file_lines_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_stmt"
},
{
"type": "STRING",
"value": "@@."
},
{
"type": "SYMBOL",
"name": "arg"
}
]
}
},
"iter_offsets_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_stmt"
},
{
"type": "STRING",
"value": "@@="
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "args"
},
{
"type": "BLANK"
}
]
}
]
}
},
"iter_offsetssizes_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_stmt"
},
{
"type": "STRING",
"value": "@@@="
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "args"
},
{
"type": "BLANK"
}
]
}
]
}
},
"iter_hit_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_stmt"
},
{
"type": "STRING",
"value": "@@"
},
{
"type": "SYMBOL",
"name": "_concat"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_search_stmt"
},
"named": true,
"value": "arged_stmt"
}
]
}
},
"iter_interpret_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_stmt"
},
{
"type": "STRING",
"value": "@@c:"
},
{
"type": "SYMBOL",
"name": "_simple_stmt"
}
]
}
},
"iter_interpret_offsetssizes_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_stmt"
},
{
"type": "STRING",
"value": "@@@c:"
},
{
"type": "SYMBOL",
"name": "_simple_stmt"
}
]
}
},
"iter_comment_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_stmt"
},
{
"type": "STRING",
"value": "@@C"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "arg"
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
"iter_dbta_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_stmt"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "@@dbt"
},
{
"type": "STRING",
"value": "@@dbta"
}
]
}
]
}
},
"iter_dbtb_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_stmt"
},
{
"type": "STRING",
"value": "@@dbtb"
}
]
}
},
"iter_dbts_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_stmt"
},
{
"type": "STRING",
"value": "@@dbts"
}
]
}
},
"iter_threads_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_stmt"
},
{
"type": "STRING",
"value": "@@t"
}
]
}
},
"iter_bbs_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_stmt"
},
{
"type": "STRING",
"value": "@@b"
}
]
}
},
"iter_instrs_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_stmt"
},
{
"type": "STRING",
"value": "@@i"
}
]
}
},
"iter_import_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_stmt"
},
{
"type": "STRING",
"value": "@@ii"
}
]
}
},
"iter_sections_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_stmt"
},
{
"type": "STRING",
"value": "@@iS"
}
]
}
},
"iter_segments_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_stmt"
},
{
"type": "STRING",
"value": "@@iSS"
}
]
}
},
"iter_symbol_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_stmt"
},
{
"type": "STRING",
"value": "@@is"
}
]
}
},
"iter_string_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_stmt"
},
{
"type": "STRING",
"value": "@@iz"
}
]
}
},
"iter_flags_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_stmt"
},
{
"type": "STRING",
"value": "@@f"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "arg"
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
"iter_function_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_stmt"
},
{
"type": "STRING",
"value": "@@F"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "arg"
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
"iter_iomap_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_stmt"
},
{
"type": "STRING",
"value": "@@om"
}
]
}
},
"iter_dbgmap_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_stmt"
},
{
"type": "STRING",
"value": "@@dm"
}
]
}
},
"iter_register_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_stmt"
},
{
"type": "STRING",
"value": "@@r"
}
]
}
},
"iter_step_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_stmt"
},
{
"type": "STRING",
"value": "@@s:"
},
{
"type": "SYMBOL",
"name": "args"
}
]
}
},
"tmp_seek_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_stmt"
},
{
"type": "STRING",
"value": "@ "
},
{
"type": "SYMBOL",
"name": "args"
}
]
}
},
"tmp_blksz_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_stmt"
},
{
"type": "STRING",
"value": "@!"
},
{
"type": "SYMBOL",
"name": "args"
}
]
}
},
"tmp_fromto_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_stmt"
},
{
"type": "STRING",
"value": "@("
},
{
"type": "SYMBOL",
"name": "args"
},
{
"type": "STRING",
"value": ")"
}
]
}
},
"tmp_arch_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_stmt"
},
{
"type": "STRING",
"value": "@a:"
},
{
"type": "SYMBOL",
"name": "arg"
}
]
}
},
"tmp_bits_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_stmt"
},
{
"type": "STRING",
"value": "@b:"
},
{
"type": "SYMBOL",
"name": "args"
}
]
}
},
"tmp_nthi_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_stmt"
},
{
"type": "STRING",
"value": "@B:"
},
{
"type": "SYMBOL",
"name": "arg"
}
]
}
},
"tmp_eval_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_stmt"
},
{
"type": "STRING",
"value": "@e:"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "tmp_eval_args"
},
"named": true,
"value": "args"
}
]
}
},
"tmp_fs_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_stmt"
},
{
"type": "STRING",
"value": "@F:"
},
{
"type": "SYMBOL",
"name": "arg"
}
]
}
},
"tmp_reli_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_stmt"
},
{
"type": "STRING",
"value": "@i:"
},
{
"type": "SYMBOL",
"name": "args"
}
]
}
},
"tmp_kuery_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_stmt"
},
{
"type": "STRING",
"value": "@k:"
},
{
"type": "SYMBOL",
"name": "arg"
}
]
}
},
"tmp_fd_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_stmt"
},
{
"type": "STRING",
"value": "@o:"
},
{
"type": "SYMBOL",
"name": "args"
}
]
}
},
"tmp_reg_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_stmt"
},
{
"type": "STRING",
"value": "@r:"
},
{
"type": "SYMBOL",
"name": "arg"
}
]
}
},
"tmp_file_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_stmt"
},
{
"type": "STRING",
"value": "@f:"
},
{
"type": "SYMBOL",
"name": "arg"
}
]
}
},
"tmp_string_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_stmt"
},
{
"type": "STRING",
"value": "@s:"
},
{
"type": "SYMBOL",
"name": "arg"
}
]
}
},
"tmp_value_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_stmt"
},
{
"type": "STRING",
"value": "@v:"
},
{
"type": "SYMBOL",
"name": "arg"
}
]
}
},
"tmp_hex_stmt": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_stmt"
},
{
"type": "STRING",
"value": "@x:"
},
{
"type": "SYMBOL",
"name": "arg"
}
]
}
},
"help_stmt": {
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "command",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "question_mark_identifier"
},
"named": true,
"value": "cmd_identifier"
}
},
{
"type": "FIELD",
"name": "command",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_help_stmt"
},
"named": true,
"value": "cmd_identifier"
}
}
]
}
},
"arged_stmt": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_simple_arged_stmt"
},
{
"type": "SYMBOL",
"name": "_math_arged_stmt"
},
{
"type": "SYMBOL",
"name": "_pointer_arged_stmt"
},
{
"type": "SYMBOL",
"name": "_macro_arged_stmt"
},
{
"type": "SYMBOL",
"name": "_system_stmt"
},
{
"type": "SYMBOL",
"name": "_interpret_stmt"
},
{
"type": "SYMBOL",
"name": "_env_stmt"
},
{
"type": "SYMBOL",
"name": "_pf_arged_stmt"
},
{
"type": "SYMBOL",
"name": "_last_stmt"
},
{
"type": "SYMBOL",
"name": "_simple_arged_stmt_question"
}
]
},
"_simple_arged_stmt_question": {
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "command",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_help_stmt"
},
"named": true,
"value": "cmd_identifier"
}
},
{
"type": "FIELD",
"name": "args",
"content": {
"type": "SYMBOL",
"name": "args"
}
}
]
}
},
"_simple_arged_stmt": {
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "command",
"content": {
"type": "SYMBOL",
"name": "cmd_identifier"
}
},
{
"type": "FIELD",
"name": "args",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "args"
},
{
"type": "BLANK"
}
]
}
}
]
}
},
"_search_stmt": {
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "command",
"content": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "\\/[A-Za-z0-9+!\\/*]*"
},
"named": true,
"value": "cmd_identifier"
}
},
{
"type": "FIELD",
"name": "args",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "args"
},
{
"type": "BLANK"
}
]
}
}
]
}
},
"_math_arged_stmt": {
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "command",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "question_mark_identifier"
},
"named": true,
"value": "cmd_identifier"
}
},
{
"type": "FIELD",
"name": "args",
"content": {
"type": "SYMBOL",
"name": "args"
}
}
]
}
},
"_pointer_arged_stmt": {
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "command",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "pointer_identifier"
},
"named": true,
"value": "cmd_identifier"
}
},
{
"type": "FIELD",
"name": "args",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "eq_sep_args"
},
"named": true,
"value": "args"
}
}
]
}
},
"_macro_arged_stmt": {
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "command",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "macro_identifier"
},
"named": true,
"value": "cmd_identifier"
}
},
{
"type": "FIELD",
"name": "args",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "macro_args"
},
{
"type": "BLANK"
}
]
}
}
]
}
},
"_system_stmt": {
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "command",
"content": {
"type": "SYMBOL",
"name": "system_identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "args",
"content": {
"type": "SYMBOL",
"name": "args"
}
},
{
"type": "BLANK"
}
]
}
]
}
},
"_interpret_stmt": {
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "command",
"content": {
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "."
},
"named": true,
"value": "cmd_identifier"
}
},
{
"type": "FIELD",
"name": "args",
"content": {
"type": "SYMBOL",
"name": "_simple_stmt"
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "command",
"content": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "\\.[\\.:\\-*]+"
},
"named": true,
"value": "cmd_identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[ ]+"
},
{
"type": "FIELD",
"name": "args",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "args"
},
{
"type": "BLANK"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "command",
"content": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "\\.[ ]+"
},
"named": true,
"value": "cmd_identifier"
}
},
{
"type": "FIELD",
"name": "args",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "args"
},
{
"type": "BLANK"
}
]
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "command",
"content": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "\\.\\.?\\("
},
"named": true,
"value": "cmd_identifier"
}
},
{
"type": "FIELD",
"name": "args",
"content": {
"type": "SYMBOL",
"name": "macro_call_content"
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "command",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_interpret_search_identifier"
},
"named": true,
"value": "cmd_identifier"
}
},
{
"type": "FIELD",
"name": "args",
"content": {
"type": "SYMBOL",
"name": "args"
}
}
]
},
{
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "args",
"content": {
"type": "SYMBOL",
"name": "_simple_stmt"
}
},
{
"type": "FIELD",
"name": "command",
"content": {
"type": "STRING",
"value": "|."
}
}
]
}
}
]
}
},
"_interpret_search_identifier": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "./"
}
]
},
"_pf_arged_stmt": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "command",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "pf_dot_cmd_identifier"
},
"named": true,
"value": "cmd_identifier"
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "command",
"content": {
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "pfo"
},
"named": true,
"value": "cmd_identifier"
}
},
{
"type": "FIELD",
"name": "args",
"content": {
"type": "SYMBOL",
"name": "args"
}
}
]
}
]
},
"_pf_stmts": {
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "pf_cmd"
},
"named": true,
"value": "arged_stmt"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "pf_dot_cmd"
},
"named": true,
"value": "arged_stmt"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "pf_new_cmd"
},
"named": true,
"value": "arged_stmt"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "Cf_cmd"
},
"named": true,
"value": "arged_stmt"
}
]
}
},
"Cf_cmd": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "command",
"content": {
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "Cf"
},
"named": true,
"value": "cmd_identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "args",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_Cf_args"
},
"named": true,
"value": "args"
}
},
{
"type": "BLANK"
}
]
}
]
}
},
"_Cf_args": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "arg"
},
{
"type": "SYMBOL",
"name": "pf_args"
}
]
},
"pf_dot_cmd_identifier": {
"type": "STRING",
"value": "pf."
},
"pf_dot_full_cmd_identifier": {
"type": "PATTERN",
"value": "pf[*cjqsv]\\."
},
"pf_new_cmd": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "command",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "pf_dot_cmd_identifier"
},
"named": true,
"value": "cmd_identifier"
}
},
{
"type": "SYMBOL",
"name": "_concat_pf_dot"
},
{
"type": "FIELD",
"name": "args",
"content": {
"type": "SYMBOL",
"name": "pf_new_args"
}
}
]
},
"pf_dot_cmd": {
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "command",
"content": {
"type": "ALIAS",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "pf_dot_cmd_identifier"
},
{
"type": "SYMBOL",
"name": "pf_dot_full_cmd_identifier"
}
]
},
"named": true,
"value": "cmd_identifier"
}
},
{
"type": "SYMBOL",
"name": "_concat_pf_dot"
},
{
"type": "FIELD",
"name": "args",
"content": {
"type": "SYMBOL",
"name": "pf_dot_cmd_args"
}
}
]
}
},
"pf_cmd": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "command",
"content": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "pf[*cjqs]?"
},
"named": true,
"value": "cmd_identifier"
}
},
{
"type": "FIELD",
"name": "args",
"content": {
"type": "SYMBOL",
"name": "pf_args"
}
}
]
},
"pf_new_args": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "pf_dot_arg"
},
"named": true,
"value": "pf_arg"
},
{
"type": "SYMBOL",
"name": "pf_args"
}
]
},
"pf_dot_cmd_args": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "pf_dot_args"
},
"named": true,
"value": "pf_args"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "="
},
"named": true,
"value": "pf_arg_identifier"
},
{
"type": "SYMBOL",
"name": "pf_args"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"_pf_dot_arg_identifier": {
"type": "CHOICE",
"members": [
{
"type": "TOKEN",
"content": {
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PATTERN",
"value": "[^\\s@|#\"'>;$`~\\\\().=]"
}
},
{
"type": "STRING",
"value": "$$$"
},
{
"type": "STRING",
"value": "$$"
},
{
"type": "PATTERN",
"value": "\\$[^\\s@|#\"'>;`~\\\\({) ]"
},
{
"type": "PATTERN",
"value": "\\${[^\\r\\n $}]+}"
},
{
"type": "PATTERN",
"value": "\\\\."
}
]
}
}
},
{
"type": "STRING",
"value": "$"
}
]
},
"_pf_arg_parentheses": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "("
},
"named": true,
"value": "pf_arg_identifier"
},
{
"type": "SYMBOL",
"name": "pf_args"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": ")"
},
"named": true,
"value": "pf_arg_identifier"
}
]
},
"pf_arg_identifier": {
"type": "CHOICE",
"members": [
{
"type": "TOKEN",
"content": {
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PATTERN",
"value": "[^\\s@|#\"'>;$`~\\\\()]"
}
},
{
"type": "STRING",
"value": "$$$"
},
{
"type": "STRING",
"value": "$$"
},
{
"type": "PATTERN",
"value": "\\$[^\\s@|#\"'>;`~\\\\({) ]"
},
{
"type": "PATTERN",
"value": "\\${[^\\r\\n $}]+}"
},
{
"type": "PATTERN",
"value": "\\\\."
}
]
}
}
},
{
"type": "STRING",
"value": "$"
}
]
},
"_pf_arg": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "pf_arg_identifier"
},
{
"type": "SYMBOL",
"name": "_pf_arg_parentheses"
},
{
"type": "SYMBOL",
"name": "cmd_substitution_arg"
}
]
},
"_pf_dot_arg": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_pf_dot_arg_identifier"
},
"named": true,
"value": "pf_arg_identifier"
},
{
"type": "SYMBOL",
"name": "cmd_substitution_arg"
}
]
},
"pf_concatenation": {
"type": "PREC",
"value": -1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_pf_arg"
},
{
"type": "REPEAT1",
"content": {
"type": "PREC",
"value": -1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_concat"
},
{
"type": "SYMBOL",
"name": "_pf_arg"
}
]
}
}
}
]
}
},
"pf_dot_concatenation": {
"type": "PREC",
"value": -1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_pf_dot_arg"
},
{
"type": "REPEAT1",
"content": {
"type": "PREC",
"value": -1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_concat_pf_dot"
},
{
"type": "SYMBOL",
"name": "_pf_dot_arg"
}
]
}
}
}
]
}
},
"pf_arg": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_pf_arg"
},
{
"type": "SYMBOL",
"name": "pf_concatenation"
}
]
},
"pf_dot_arg": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_pf_dot_arg"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "pf_dot_concatenation"
},
"named": true,
"value": "pf_concatenation"
}
]
},
"pf_args": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "pf_arg"
}
}
},
"pf_dot_args": {
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "pf_dot_arg"
},
"named": true,
"value": "pf_arg"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_concat_pf_dot"
},
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "_concat_pf_dot"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "pf_dot_arg"
},
"named": true,
"value": "pf_arg"
}
]
}
}
]
}
},
"_env_stmt": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "command",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_env_stmt_identifier"
},
"named": true,
"value": "cmd_identifier"
}
},
{
"type": "FIELD",
"name": "args",
"content": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "eq_sep_args"
},
"named": true,
"value": "args"
},
{
"type": "BLANK"
}
]
}
}
]
}
},
"_env_stmt_identifier": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "%"
},
{
"type": "STRING",
"value": "env"
}
]
},
"_last_stmt": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "command",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "last_stmt_identifier"
},
"named": true,
"value": "cmd_identifier"
}
}
]
},
"last_stmt_identifier": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "STRING",
"value": "..."
}
]
},
"interpret_arg": {
"type": "SYMBOL",
"name": "_any_stmt"
},
"system_identifier": {
"type": "PATTERN",
"value": "![\\*!-=]*"
},
"question_mark_identifier": {
"type": "STRING",
"value": "?"
},
"repeat_stmt": {
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "arg",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_dec_number"
},
"named": true,
"value": "number"
}
},
{
"type": "FIELD",
"name": "command",
"content": {
"type": "SYMBOL",
"name": "_simple_stmt"
}
}
]
}
},
"pointer_identifier": {
"type": "STRING",
"value": "*"
},
"eq_sep_args": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_eq_sep_key"
},
"named": true,
"value": "arg"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_eq_sep_val"
},
"named": true,
"value": "arg"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"macro_identifier": {
"type": "PATTERN",
"value": "\\([-\\*]?"
},
"macro_call_content": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "args"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
}
},
"macro_call_full_content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "macro_call_content"
}
]
},
"macro_content": {
"type": "PREC",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "arg"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "args"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "SYMBOL",
"name": "_statement"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "SYMBOL",
"name": "_statement"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
}
},
"macro_args": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "macro_content"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "macro_call_full_content"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"redirect_stmt": {
"type": "PREC_RIGHT",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "command",
"content": {
"type": "SYMBOL",
"name": "_simple_stmt"
}
},
{
"type": "FIELD",
"name": "redirect_operator",
"content": {
"type": "SYMBOL",
"name": "_redirect_operator"
}
},
{
"type": "FIELD",
"name": "arg",
"content": {
"type": "SYMBOL",
"name": "arg"
}
}
]
}
},
"_redirect_operator": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "fdn_redirect_operator"
},
{
"type": "SYMBOL",
"name": "fdn_append_operator"
},
{
"type": "SYMBOL",
"name": "html_redirect_operator"
},
{
"type": "SYMBOL",
"name": "html_append_operator"
}
]
},
"fdn_redirect_operator": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "file_descriptor"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ">"
}
]
},
"fdn_append_operator": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "file_descriptor"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ">>"
}
]
},
"html_redirect_operator": {
"type": "STRING",
"value": "H>"
},
"html_append_operator": {
"type": "STRING",
"value": "H>>"
},
"_arg_with_paren": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "("
},
"named": true,
"value": "arg_identifier"
},
{
"type": "SYMBOL",
"name": "args"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": ")"
},
"named": true,
"value": "arg_identifier"
}
]
},
"_arg": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "arg_identifier"
},
{
"type": "SYMBOL",
"name": "double_quoted_arg"
},
{
"type": "SYMBOL",
"name": "single_quoted_arg"
},
{
"type": "SYMBOL",
"name": "cmd_substitution_arg"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_arg_with_paren"
},
"named": true,
"value": "args"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": ","
},
"named": true,
"value": "arg_identifier"
}
]
},
"arg": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_arg"
},
{
"type": "SYMBOL",
"name": "concatenation"
}
]
},
"args": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "arg"
}
}
},
"tmp_eval_args": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "tmp_eval_arg"
},
"named": true,
"value": "arg"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "tmp_eval_arg"
},
"named": true,
"value": "arg"
}
]
}
}
]
}
},
"tmp_eval_arg": {
"type": "ALIAS",
"content": {
"type": "REPEAT1",
"content": {
"type": "PATTERN",
"value": "[^\\s@|#\"'>;$`~\\\\,(),]"
}
},
"named": true,
"value": "arg_identifier"
},
"_eq_sep_key_single": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_eq_sep_key_identifier"
},
"named": true,
"value": "arg_identifier"
},
{
"type": "SYMBOL",
"name": "double_quoted_arg"
},
{
"type": "SYMBOL",
"name": "single_quoted_arg"
},
{
"type": "SYMBOL",
"name": "cmd_substitution_arg"
}
]
},
"_eq_sep_key_concatenation": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_eq_sep_key_single"
},
{
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_eq_sep_concat"
},
{
"type": "SYMBOL",
"name": "_eq_sep_key_single"
}
]
}
}
]
}
},
"_eq_sep_key": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_eq_sep_key_single"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_eq_sep_key_concatenation"
},
"named": true,
"value": "concatenation"
}
]
},
"_eq_sep_key_identifier": {
"type": "TOKEN",
"content": {
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PATTERN",
"value": "[^\\s@|#\"'>;$`~\\\\,()=]"
}
},
{
"type": "PATTERN",
"value": "\\$[^({]"
},
{
"type": "PATTERN",
"value": "\\${[^\\r\\n $}]+}"
},
{
"type": "STRING",
"value": "%5Cs"
}
]
}
}
},
"_eq_sep_val_concatenation": {
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "arg"
},
{
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_eq_sep_concat"
},
{
"type": "SYMBOL",
"name": "arg"
}
]
}
}
]
}
},
"_eq_sep_val": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_arg"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_eq_sep_val_concatenation"
},
"named": true,
"value": "concatenation"
}
]
},
"_any_stmt": {
"type": "PATTERN",
"value": "[^\\r\\n;~|]+"
},
"arg_identifier": {
"type": "CHOICE",
"members": [
{
"type": "TOKEN",
"content": {
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PATTERN",
"value": "[^\\s@|#\"'>;$`~\\\\,()]"
}
},
{
"type": "STRING",
"value": "$$$"
},
{
"type": "STRING",
"value": "$$"
},
{
"type": "PATTERN",
"value": "\\$[^\\s@|#\"'>;`~\\\\({) ]"
},
{
"type": "PATTERN",
"value": "\\${[^\\r\\n $}]+}"
},
{
"type": "PATTERN",
"value": "\\\\."
}
]
}
}
},
{
"type": "STRING",
"value": "$"
}
]
},
"spec_arg_identifier": {
"type": "CHOICE",
"members": [
{
"type": "TOKEN",
"content": {
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PATTERN",
"value": "[^\\s@|#\"'>;$`~\\\\,():]"
}
},
{
"type": "STRING",
"value": "$$$"
},
{
"type": "STRING",
"value": "$$"
},
{
"type": "PATTERN",
"value": "\\$[^\\s@|#\"'>;`~\\\\({) ]"
},
{
"type": "PATTERN",
"value": "\\${[^\\r\\n $}]+}"
},
{
"type": "PATTERN",
"value": "\\\\."
}
]
}
}
},
{
"type": "STRING",
"value": "$"
}
]
},
"double_quoted_arg": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\""
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[^\\\\\"\\n$`]+"
}
}
},
{
"type": "PATTERN",
"value": "\\$[^(\"]?"
},
{
"type": "PATTERN",
"value": "\\\\[\\\\\"\\n$`]?"
},
{
"type": "SYMBOL",
"name": "cmd_substitution_arg"
}
]
}
},
{
"type": "STRING",
"value": "\""
}
]
},
"single_quoted_arg": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "'"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[^\\\\'\\n]+"
}
}
},
{
"type": "PATTERN",
"value": "\\\\[\\\\'\\n]?"
}
]
}
},
{
"type": "STRING",
"value": "'"
}
]
},
"cmd_substitution_arg": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "$("
},
{
"type": "SYMBOL",
"name": "_statements_singleline"
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "PREC",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "`"
},
{
"type": "SYMBOL",
"name": "_statements_singleline"
},
{
"type": "STRING",
"value": "`"
}
]
}
}
]
},
"concatenation": {
"type": "PREC",
"value": -1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_arg"
},
{
"type": "REPEAT1",
"content": {
"type": "PREC",
"value": -1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_concat"
},
{
"type": "SYMBOL",
"name": "_arg"
}
]
}
}
}
]
}
},
"_dec_number": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[1-9][0-9]*"
},
{
"type": "PATTERN",
"value": "[0-9][0-9]+"
}
]
},
"_comment": {
"type": "PATTERN",
"value": "#[^\\r\\n]*"
},
"stmt_delimiter": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "\n"
},
{
"type": "STRING",
"value": "\r"
},
{
"type": "SYMBOL",
"name": "stmt_delimiter_singleline"
}
]
},
"stmt_delimiter_singleline": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
}
]
},
"specifiers": {
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_spec_sep"
},
{
"type": "SYMBOL",
"name": "_concat"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "spec_arg_identifier"
},
"named": true,
"value": "arg_identifier"
}
]
}
},
"cmd_identifier": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "id",
"content": {
"type": "SYMBOL",
"name": "_cmd_identifier"
}
},
{
"type": "FIELD",
"name": "extra",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "specifiers"
},
{
"type": "BLANK"
}
]
}
}
]
}
},
"extras": [
{
"type": "SYMBOL",
"name": "_comment"
},
{
"type": "PATTERN",
"value": "[ \\t]*"
}
],
"conflicts": [],
"precedences": [],
"externals": [
{
"type": "SYMBOL",
"name": "_cmd_identifier"
},
{
"type": "SYMBOL",
"name": "_help_stmt"
},
{
"type": "SYMBOL",
"name": "file_descriptor"
},
{
"type": "SYMBOL",
"name": "_eq_sep_concat"
},
{
"type": "SYMBOL",
"name": "_concat"
},
{
"type": "SYMBOL",
"name": "_concat_pf_dot"
},
{
"type": "SYMBOL",
"name": "_spec_sep"
}
],
"inline": [
"stmt_delimiter",
"stmt_delimiter_singleline"
],
"supertypes": []
}