{
  "name": "rzcmd",
  "rules": {
    "commands": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SEQ",
          "members": []
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "REPEAT",
              "content": {
                "type": "SYMBOL",
                "name": "cmd_delimiter"
              }
            }
          ]
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "REPEAT",
              "content": {
                "type": "SYMBOL",
                "name": "cmd_delimiter"
              }
            },
            {
              "type": "SYMBOL",
              "name": "_command"
            },
            {
              "type": "REPEAT",
              "content": {
                "type": "SEQ",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "cmd_delimiter"
                  },
                  {
                    "type": "CHOICE",
                    "members": [
                      {
                        "type": "SYMBOL",
                        "name": "_command"
                      },
                      {
                        "type": "BLANK"
                      }
                    ]
                  }
                ]
              }
            }
          ]
        }
      ]
    },
    "_commands_singleline": {
      "type": "PREC",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "REPEAT",
            "content": {
              "type": "SYMBOL",
              "name": "cmd_delimiter_singleline"
            }
          },
          {
            "type": "SYMBOL",
            "name": "_command"
          },
          {
            "type": "REPEAT",
            "content": {
              "type": "SEQ",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "cmd_delimiter_singleline"
                },
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "_command"
                    },
                    {
                      "type": "BLANK"
                    }
                  ]
                }
              ]
            }
          }
        ]
      }
    },
    "_command": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "redirect_command"
        },
        {
          "type": "SYMBOL",
          "name": "_simple_command"
        }
      ]
    },
    "legacy_quoted_command": {
      "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_command": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "help_command"
        },
        {
          "type": "SYMBOL",
          "name": "repeat_command"
        },
        {
          "type": "SYMBOL",
          "name": "arged_command"
        },
        {
          "type": "SYMBOL",
          "name": "number_command"
        },
        {
          "type": "SYMBOL",
          "name": "_tmp_command"
        },
        {
          "type": "SYMBOL",
          "name": "_iter_command"
        },
        {
          "type": "SYMBOL",
          "name": "_pipe_command"
        },
        {
          "type": "SYMBOL",
          "name": "grep_command"
        },
        {
          "type": "SYMBOL",
          "name": "legacy_quoted_command"
        },
        {
          "type": "SYMBOL",
          "name": "_pf_commands"
        }
      ]
    },
    "_tmp_command": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "tmp_seek_command"
        },
        {
          "type": "SYMBOL",
          "name": "tmp_blksz_command"
        },
        {
          "type": "SYMBOL",
          "name": "tmp_fromto_command"
        },
        {
          "type": "SYMBOL",
          "name": "tmp_arch_command"
        },
        {
          "type": "SYMBOL",
          "name": "tmp_bits_command"
        },
        {
          "type": "SYMBOL",
          "name": "tmp_nthi_command"
        },
        {
          "type": "SYMBOL",
          "name": "tmp_eval_command"
        },
        {
          "type": "SYMBOL",
          "name": "tmp_fs_command"
        },
        {
          "type": "SYMBOL",
          "name": "tmp_reli_command"
        },
        {
          "type": "SYMBOL",
          "name": "tmp_kuery_command"
        },
        {
          "type": "SYMBOL",
          "name": "tmp_fd_command"
        },
        {
          "type": "SYMBOL",
          "name": "tmp_reg_command"
        },
        {
          "type": "SYMBOL",
          "name": "tmp_file_command"
        },
        {
          "type": "SYMBOL",
          "name": "tmp_string_command"
        },
        {
          "type": "SYMBOL",
          "name": "tmp_value_command"
        },
        {
          "type": "SYMBOL",
          "name": "tmp_hex_command"
        }
      ]
    },
    "_iter_command": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "iter_file_lines_command"
        },
        {
          "type": "SYMBOL",
          "name": "iter_offsets_command"
        },
        {
          "type": "SYMBOL",
          "name": "iter_offsetssizes_command"
        },
        {
          "type": "SYMBOL",
          "name": "iter_hit_command"
        },
        {
          "type": "SYMBOL",
          "name": "iter_interpret_command"
        },
        {
          "type": "SYMBOL",
          "name": "iter_interpret_offsetssizes_command"
        },
        {
          "type": "SYMBOL",
          "name": "iter_comment_command"
        },
        {
          "type": "SYMBOL",
          "name": "iter_dbta_command"
        },
        {
          "type": "SYMBOL",
          "name": "iter_dbtb_command"
        },
        {
          "type": "SYMBOL",
          "name": "iter_dbts_command"
        },
        {
          "type": "SYMBOL",
          "name": "iter_threads_command"
        },
        {
          "type": "SYMBOL",
          "name": "iter_bbs_command"
        },
        {
          "type": "SYMBOL",
          "name": "iter_instrs_command"
        },
        {
          "type": "SYMBOL",
          "name": "iter_import_command"
        },
        {
          "type": "SYMBOL",
          "name": "iter_sections_command"
        },
        {
          "type": "SYMBOL",
          "name": "iter_segments_command"
        },
        {
          "type": "SYMBOL",
          "name": "iter_symbol_command"
        },
        {
          "type": "SYMBOL",
          "name": "iter_string_command"
        },
        {
          "type": "SYMBOL",
          "name": "iter_flags_command"
        },
        {
          "type": "SYMBOL",
          "name": "iter_function_command"
        },
        {
          "type": "SYMBOL",
          "name": "iter_iomap_command"
        },
        {
          "type": "SYMBOL",
          "name": "iter_dbgmap_command"
        },
        {
          "type": "SYMBOL",
          "name": "iter_register_command"
        },
        {
          "type": "SYMBOL",
          "name": "iter_step_command"
        }
      ]
    },
    "_pipe_command": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "html_disable_command"
        },
        {
          "type": "SYMBOL",
          "name": "html_enable_command"
        },
        {
          "type": "SYMBOL",
          "name": "pipe_command"
        }
      ]
    },
    "grep_command": {
      "type": "SEQ",
      "members": [
        {
          "type": "FIELD",
          "name": "command",
          "content": {
            "type": "SYMBOL",
            "name": "_simple_command"
          }
        },
        {
          "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_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "command",
            "content": {
              "type": "SYMBOL",
              "name": "_simple_command"
            }
          },
          {
            "type": "STRING",
            "value": "|"
          }
        ]
      }
    },
    "html_enable_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "command",
            "content": {
              "type": "SYMBOL",
              "name": "_simple_command"
            }
          },
          {
            "type": "STRING",
            "value": "|H"
          }
        ]
      }
    },
    "pipe_command": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_simple_command"
        },
        {
          "type": "STRING",
          "value": "|"
        },
        {
          "type": "SYMBOL",
          "name": "pipe_second_command"
        }
      ]
    },
    "pipe_second_command": {
      "type": "PATTERN",
      "value": "[^|\\r\\n;]+"
    },
    "_offsetsizes_args": {
      "type": "REPEAT1",
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "arg"
          },
          {
            "type": "SYMBOL",
            "name": "arg"
          }
        ]
      }
    },
    "iter_file_lines_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          },
          {
            "type": "STRING",
            "value": "@@."
          },
          {
            "type": "SYMBOL",
            "name": "arg"
          }
        ]
      }
    },
    "iter_offsets_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          },
          {
            "type": "STRING",
            "value": "@@="
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "args"
              },
              {
                "type": "BLANK"
              }
            ]
          }
        ]
      }
    },
    "iter_offsetssizes_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          },
          {
            "type": "STRING",
            "value": "@@@="
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "ALIAS",
                "content": {
                  "type": "SYMBOL",
                  "name": "_offsetsizes_args"
                },
                "named": true,
                "value": "args"
              },
              {
                "type": "BLANK"
              }
            ]
          }
        ]
      }
    },
    "iter_hit_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          },
          {
            "type": "STRING",
            "value": "@@"
          },
          {
            "type": "SYMBOL",
            "name": "_concat"
          },
          {
            "type": "ALIAS",
            "content": {
              "type": "SYMBOL",
              "name": "_search_command"
            },
            "named": true,
            "value": "arged_command"
          }
        ]
      }
    },
    "iter_interpret_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          },
          {
            "type": "STRING",
            "value": "@@c:"
          },
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          }
        ]
      }
    },
    "iter_interpret_offsetssizes_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          },
          {
            "type": "STRING",
            "value": "@@@c:"
          },
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          }
        ]
      }
    },
    "iter_comment_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          },
          {
            "type": "STRING",
            "value": "@@C"
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": ":"
                  },
                  {
                    "type": "SYMBOL",
                    "name": "arg"
                  }
                ]
              },
              {
                "type": "BLANK"
              }
            ]
          }
        ]
      }
    },
    "iter_dbta_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "STRING",
                "value": "@@dbt"
              },
              {
                "type": "STRING",
                "value": "@@dbta"
              }
            ]
          }
        ]
      }
    },
    "iter_dbtb_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          },
          {
            "type": "STRING",
            "value": "@@dbtb"
          }
        ]
      }
    },
    "iter_dbts_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          },
          {
            "type": "STRING",
            "value": "@@dbts"
          }
        ]
      }
    },
    "iter_threads_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          },
          {
            "type": "STRING",
            "value": "@@t"
          }
        ]
      }
    },
    "iter_bbs_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          },
          {
            "type": "STRING",
            "value": "@@b"
          }
        ]
      }
    },
    "iter_instrs_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          },
          {
            "type": "STRING",
            "value": "@@i"
          }
        ]
      }
    },
    "iter_import_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          },
          {
            "type": "STRING",
            "value": "@@ii"
          }
        ]
      }
    },
    "iter_sections_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          },
          {
            "type": "STRING",
            "value": "@@iS"
          }
        ]
      }
    },
    "iter_segments_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          },
          {
            "type": "STRING",
            "value": "@@iSS"
          }
        ]
      }
    },
    "iter_symbol_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          },
          {
            "type": "STRING",
            "value": "@@is"
          }
        ]
      }
    },
    "iter_string_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          },
          {
            "type": "STRING",
            "value": "@@iz"
          }
        ]
      }
    },
    "iter_flags_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          },
          {
            "type": "STRING",
            "value": "@@f"
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": ":"
                  },
                  {
                    "type": "SYMBOL",
                    "name": "arg"
                  }
                ]
              },
              {
                "type": "BLANK"
              }
            ]
          }
        ]
      }
    },
    "iter_function_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          },
          {
            "type": "STRING",
            "value": "@@F"
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": ":"
                  },
                  {
                    "type": "SYMBOL",
                    "name": "arg"
                  }
                ]
              },
              {
                "type": "BLANK"
              }
            ]
          }
        ]
      }
    },
    "iter_iomap_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          },
          {
            "type": "STRING",
            "value": "@@om"
          }
        ]
      }
    },
    "iter_dbgmap_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          },
          {
            "type": "STRING",
            "value": "@@dm"
          }
        ]
      }
    },
    "iter_register_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          },
          {
            "type": "STRING",
            "value": "@@r"
          }
        ]
      }
    },
    "iter_step_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          },
          {
            "type": "STRING",
            "value": "@@s:"
          },
          {
            "type": "SYMBOL",
            "name": "arg"
          },
          {
            "type": "SYMBOL",
            "name": "arg"
          },
          {
            "type": "SYMBOL",
            "name": "arg"
          }
        ]
      }
    },
    "tmp_seek_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          },
          {
            "type": "STRING",
            "value": "@"
          },
          {
            "type": "SYMBOL",
            "name": "args"
          }
        ]
      }
    },
    "tmp_blksz_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          },
          {
            "type": "STRING",
            "value": "@!"
          },
          {
            "type": "SYMBOL",
            "name": "args"
          }
        ]
      }
    },
    "tmp_fromto_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          },
          {
            "type": "STRING",
            "value": "@{"
          },
          {
            "type": "ALIAS",
            "content": {
              "type": "SYMBOL",
              "name": "arg_brace"
            },
            "named": true,
            "value": "arg"
          },
          {
            "type": "ALIAS",
            "content": {
              "type": "SYMBOL",
              "name": "arg_brace"
            },
            "named": true,
            "value": "arg"
          },
          {
            "type": "STRING",
            "value": "}"
          }
        ]
      }
    },
    "tmp_arch_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          },
          {
            "type": "STRING",
            "value": "@a:"
          },
          {
            "type": "SYMBOL",
            "name": "arg"
          }
        ]
      }
    },
    "tmp_bits_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          },
          {
            "type": "STRING",
            "value": "@b:"
          },
          {
            "type": "SYMBOL",
            "name": "args"
          }
        ]
      }
    },
    "tmp_nthi_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          },
          {
            "type": "STRING",
            "value": "@B:"
          },
          {
            "type": "SYMBOL",
            "name": "arg"
          }
        ]
      }
    },
    "tmp_eval_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          },
          {
            "type": "STRING",
            "value": "@e:"
          },
          {
            "type": "SYMBOL",
            "name": "tmp_eval_args"
          }
        ]
      }
    },
    "tmp_fs_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          },
          {
            "type": "STRING",
            "value": "@F:"
          },
          {
            "type": "SYMBOL",
            "name": "arg"
          }
        ]
      }
    },
    "tmp_reli_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          },
          {
            "type": "STRING",
            "value": "@i:"
          },
          {
            "type": "SYMBOL",
            "name": "args"
          }
        ]
      }
    },
    "tmp_kuery_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          },
          {
            "type": "STRING",
            "value": "@k:"
          },
          {
            "type": "SYMBOL",
            "name": "arg"
          }
        ]
      }
    },
    "tmp_fd_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          },
          {
            "type": "STRING",
            "value": "@o:"
          },
          {
            "type": "SYMBOL",
            "name": "args"
          }
        ]
      }
    },
    "tmp_reg_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          },
          {
            "type": "STRING",
            "value": "@r:"
          },
          {
            "type": "SYMBOL",
            "name": "arg"
          }
        ]
      }
    },
    "tmp_file_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          },
          {
            "type": "STRING",
            "value": "@f:"
          },
          {
            "type": "SYMBOL",
            "name": "arg"
          }
        ]
      }
    },
    "tmp_string_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          },
          {
            "type": "STRING",
            "value": "@s:"
          },
          {
            "type": "SYMBOL",
            "name": "arg"
          }
        ]
      }
    },
    "tmp_value_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          },
          {
            "type": "STRING",
            "value": "@v:"
          },
          {
            "type": "SYMBOL",
            "name": "arg"
          }
        ]
      }
    },
    "tmp_hex_command": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_simple_command"
          },
          {
            "type": "STRING",
            "value": "@x:"
          },
          {
            "type": "SYMBOL",
            "name": "arg"
          }
        ]
      }
    },
    "number_command": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_dec_number"
        },
        {
          "type": "STRING",
          "value": "0"
        },
        {
          "type": "PATTERN",
          "value": "(0x[0-9A-Fa-f]+|0b[0-1]+)"
        }
      ]
    },
    "help_command": {
      "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_command"
              },
              "named": true,
              "value": "cmd_identifier"
            }
          }
        ]
      }
    },
    "arged_command": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_simple_arged_command"
        },
        {
          "type": "SYMBOL",
          "name": "_math_arged_command"
        },
        {
          "type": "SYMBOL",
          "name": "_pointer_arged_command"
        },
        {
          "type": "SYMBOL",
          "name": "_macro_arged_command"
        },
        {
          "type": "SYMBOL",
          "name": "_system_command"
        },
        {
          "type": "SYMBOL",
          "name": "_interpret_command"
        },
        {
          "type": "SYMBOL",
          "name": "_env_command"
        },
        {
          "type": "SYMBOL",
          "name": "_pf_arged_command"
        },
        {
          "type": "SYMBOL",
          "name": "_last_command"
        },
        {
          "type": "SYMBOL",
          "name": "_simple_arged_command_question"
        }
      ]
    },
    "_simple_arged_command_question": {
      "type": "PREC_LEFT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "command",
            "content": {
              "type": "ALIAS",
              "content": {
                "type": "SYMBOL",
                "name": "_help_command"
              },
              "named": true,
              "value": "cmd_identifier"
            }
          },
          {
            "type": "FIELD",
            "name": "args",
            "content": {
              "type": "SYMBOL",
              "name": "args"
            }
          }
        ]
      }
    },
    "_simple_arged_command": {
      "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_command": {
      "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_command": {
      "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_command": {
      "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_command": {
      "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_command": {
      "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_command": {
      "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_command"
                }
              }
            ]
          },
          {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "command",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "PATTERN",
                    "value": "\\.[\\.:\\-*]+"
                  },
                  "named": true,
                  "value": "cmd_identifier"
                }
              },
              {
                "type": "PATTERN",
                "value": "[ ]+"
              },
              {
                "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": "CHOICE",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "args"
                    },
                    {
                      "type": "BLANK"
                    }
                  ]
                }
              }
            ]
          },
          {
            "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": "interpret_arg"
                }
              }
            ]
          },
          {
            "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": "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_command"
                  }
                },
                {
                  "type": "FIELD",
                  "name": "command",
                  "content": {
                    "type": "STRING",
                    "value": "|."
                  }
                }
              ]
            }
          }
        ]
      }
    },
    "_interpret_search_identifier": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "./"
        }
      ]
    },
    "_pf_arged_command": {
      "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_commands": {
      "type": "PREC_LEFT",
      "value": 1,
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "ALIAS",
            "content": {
              "type": "SYMBOL",
              "name": "pf_cmd"
            },
            "named": true,
            "value": "arged_command"
          },
          {
            "type": "ALIAS",
            "content": {
              "type": "SYMBOL",
              "name": "pf_dot_cmd"
            },
            "named": true,
            "value": "arged_command"
          },
          {
            "type": "ALIAS",
            "content": {
              "type": "SYMBOL",
              "name": "pf_new_cmd"
            },
            "named": true,
            "value": "arged_command"
          },
          {
            "type": "ALIAS",
            "content": {
              "type": "SYMBOL",
              "name": "Cf_cmd"
            },
            "named": true,
            "value": "arged_command"
          }
        ]
      }
    },
    "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_command": {
      "type": "PREC_LEFT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "command",
            "content": {
              "type": "ALIAS",
              "content": {
                "type": "SYMBOL",
                "name": "_env_command_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_command_identifier": {
      "type": "CHOICE",
      "members": [
        {
          "type": "STRING",
          "value": "%"
        },
        {
          "type": "STRING",
          "value": "env"
        }
      ]
    },
    "_last_command": {
      "type": "SEQ",
      "members": [
        {
          "type": "FIELD",
          "name": "command",
          "content": {
            "type": "ALIAS",
            "content": {
              "type": "SYMBOL",
              "name": "last_command_identifier"
            },
            "named": true,
            "value": "cmd_identifier"
          }
        }
      ]
    },
    "last_command_identifier": {
      "type": "CHOICE",
      "members": [
        {
          "type": "STRING",
          "value": "."
        },
        {
          "type": "STRING",
          "value": "..."
        }
      ]
    },
    "interpret_arg": {
      "type": "SYMBOL",
      "name": "_any_command"
    },
    "system_identifier": {
      "type": "PATTERN",
      "value": "![\\*!-=]*"
    },
    "question_mark_identifier": {
      "type": "STRING",
      "value": "?"
    },
    "repeat_command": {
      "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_command"
            }
          }
        ]
      }
    },
    "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": "_command"
                  },
                  {
                    "type": "REPEAT",
                    "content": {
                      "type": "SEQ",
                      "members": [
                        {
                          "type": "STRING",
                          "value": ";"
                        },
                        {
                          "type": "SYMBOL",
                          "name": "_command"
                        }
                      ]
                    }
                  }
                ]
              },
              {
                "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_command": {
      "type": "PREC_RIGHT",
      "value": 2,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "command",
            "content": {
              "type": "SYMBOL",
              "name": "_simple_command"
            }
          },
          {
            "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": {
      "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": "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"
            }
          ]
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "STRING",
            "value": ","
          },
          "named": true,
          "value": "arg_identifier"
        }
      ]
    },
    "_arg_brace": {
      "type": "CHOICE",
      "members": [
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "arg_identifier_brace"
          },
          "named": true,
          "value": "arg_identifier"
        },
        {
          "type": "SYMBOL",
          "name": "double_quoted_arg"
        },
        {
          "type": "SYMBOL",
          "name": "single_quoted_arg"
        },
        {
          "type": "SYMBOL",
          "name": "cmd_substitution_arg"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "ALIAS",
              "content": {
                "type": "STRING",
                "value": "("
              },
              "named": true,
              "value": "arg_identifier"
            },
            {
              "type": "SYMBOL",
              "name": "_arg_brace"
            },
            {
              "type": "ALIAS",
              "content": {
                "type": "STRING",
                "value": ")"
              },
              "named": true,
              "value": "arg_identifier"
            }
          ]
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "STRING",
            "value": ","
          },
          "named": true,
          "value": "arg_identifier"
        }
      ]
    },
    "arg": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_arg"
        },
        {
          "type": "SYMBOL",
          "name": "concatenation"
        }
      ]
    },
    "arg_brace": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_arg_brace"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "concatenation_brace"
          },
          "named": true,
          "value": "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": "SYMBOL",
            "name": "tmp_eval_arg"
          },
          {
            "type": "REPEAT",
            "content": {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": ","
                },
                {
                  "type": "SYMBOL",
                  "name": "tmp_eval_arg"
                }
              ]
            }
          }
        ]
      }
    },
    "tmp_eval_arg": {
      "type": "REPEAT1",
      "content": {
        "type": "PATTERN",
        "value": "[^\\s@|#\"'>;$`~\\\\,(),]"
      }
    },
    "_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_command": {
      "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": "$"
        }
      ]
    },
    "arg_identifier_brace": {
      "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": "_commands_singleline"
            },
            {
              "type": "STRING",
              "value": ")"
            }
          ]
        },
        {
          "type": "PREC",
          "value": 1,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": "`"
              },
              {
                "type": "SYMBOL",
                "name": "_commands_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"
                  }
                ]
              }
            }
          }
        ]
      }
    },
    "concatenation_brace": {
      "type": "PREC",
      "value": -1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_arg_brace"
          },
          {
            "type": "REPEAT1",
            "content": {
              "type": "PREC",
              "value": -1,
              "content": {
                "type": "SEQ",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "_concat_brace"
                  },
                  {
                    "type": "SYMBOL",
                    "name": "_arg_brace"
                  }
                ]
              }
            }
          }
        ]
      }
    },
    "_dec_number": {
      "type": "CHOICE",
      "members": [
        {
          "type": "PATTERN",
          "value": "[1-9][0-9]*"
        },
        {
          "type": "PATTERN",
          "value": "[0-9][0-9]+"
        }
      ]
    },
    "_comment": {
      "type": "TOKEN",
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "PATTERN",
            "value": "#[^\\r\\n]*"
          }
        ]
      }
    },
    "cmd_delimiter": {
      "type": "CHOICE",
      "members": [
        {
          "type": "STRING",
          "value": "\n"
        },
        {
          "type": "STRING",
          "value": "\r"
        },
        {
          "type": "SYMBOL",
          "name": "cmd_delimiter_singleline"
        }
      ]
    },
    "cmd_delimiter_singleline": {
      "type": "CHOICE",
      "members": [
        {
          "type": "STRING",
          "value": ";"
        }
      ]
    }
  },
  "extras": [
    {
      "type": "SYMBOL",
      "name": "_comment"
    },
    {
      "type": "PATTERN",
      "value": "[ \\t]*"
    }
  ],
  "conflicts": [],
  "externals": [
    {
      "type": "SYMBOL",
      "name": "cmd_identifier"
    },
    {
      "type": "SYMBOL",
      "name": "_help_command"
    },
    {
      "type": "SYMBOL",
      "name": "file_descriptor"
    },
    {
      "type": "SYMBOL",
      "name": "_eq_sep_concat"
    },
    {
      "type": "SYMBOL",
      "name": "_concat"
    },
    {
      "type": "SYMBOL",
      "name": "_concat_brace"
    },
    {
      "type": "SYMBOL",
      "name": "_concat_pf_dot"
    }
  ],
  "inline": [
    "cmd_delimiter",
    "cmd_delimiter_singleline",
    "_comment"
  ],
  "supertypes": []
}

