[
  {
    "type": "begin_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "begin_statement",
          "named": true
        },
        {
          "type": "break",
          "named": true
        },
        {
          "type": "command",
          "named": true
        },
        {
          "type": "conditional_execution",
          "named": true
        },
        {
          "type": "continue",
          "named": true
        },
        {
          "type": "for_statement",
          "named": true
        },
        {
          "type": "function_definition",
          "named": true
        },
        {
          "type": "if_statement",
          "named": true
        },
        {
          "type": "negated_statement",
          "named": true
        },
        {
          "type": "pipe",
          "named": true
        },
        {
          "type": "redirect_statement",
          "named": true
        },
        {
          "type": "return",
          "named": true
        },
        {
          "type": "switch_statement",
          "named": true
        },
        {
          "type": "while_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "brace_expansion",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "brace_expansion",
          "named": true
        },
        {
          "type": "command_substitution",
          "named": true
        },
        {
          "type": "concatenation",
          "named": true
        },
        {
          "type": "double_quote_string",
          "named": true
        },
        {
          "type": "escape_sequence",
          "named": true
        },
        {
          "type": "float",
          "named": true
        },
        {
          "type": "glob",
          "named": true
        },
        {
          "type": "integer",
          "named": true
        },
        {
          "type": "single_quote_string",
          "named": true
        },
        {
          "type": "variable_expansion",
          "named": true
        },
        {
          "type": "word",
          "named": true
        }
      ]
    }
  },
  {
    "type": "case_clause",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "begin_statement",
          "named": true
        },
        {
          "type": "brace_expansion",
          "named": true
        },
        {
          "type": "break",
          "named": true
        },
        {
          "type": "command",
          "named": true
        },
        {
          "type": "command_substitution",
          "named": true
        },
        {
          "type": "concatenation",
          "named": true
        },
        {
          "type": "conditional_execution",
          "named": true
        },
        {
          "type": "continue",
          "named": true
        },
        {
          "type": "double_quote_string",
          "named": true
        },
        {
          "type": "escape_sequence",
          "named": true
        },
        {
          "type": "float",
          "named": true
        },
        {
          "type": "for_statement",
          "named": true
        },
        {
          "type": "function_definition",
          "named": true
        },
        {
          "type": "glob",
          "named": true
        },
        {
          "type": "home_dir_expansion",
          "named": true
        },
        {
          "type": "if_statement",
          "named": true
        },
        {
          "type": "integer",
          "named": true
        },
        {
          "type": "negated_statement",
          "named": true
        },
        {
          "type": "pipe",
          "named": true
        },
        {
          "type": "redirect_statement",
          "named": true
        },
        {
          "type": "return",
          "named": true
        },
        {
          "type": "single_quote_string",
          "named": true
        },
        {
          "type": "switch_statement",
          "named": true
        },
        {
          "type": "variable_expansion",
          "named": true
        },
        {
          "type": "while_statement",
          "named": true
        },
        {
          "type": "word",
          "named": true
        }
      ]
    }
  },
  {
    "type": "command",
    "named": true,
    "fields": {
      "argument": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "brace_expansion",
            "named": true
          },
          {
            "type": "command_substitution",
            "named": true
          },
          {
            "type": "concatenation",
            "named": true
          },
          {
            "type": "double_quote_string",
            "named": true
          },
          {
            "type": "escape_sequence",
            "named": true
          },
          {
            "type": "float",
            "named": true
          },
          {
            "type": "glob",
            "named": true
          },
          {
            "type": "home_dir_expansion",
            "named": true
          },
          {
            "type": "integer",
            "named": true
          },
          {
            "type": "single_quote_string",
            "named": true
          },
          {
            "type": "variable_expansion",
            "named": true
          },
          {
            "type": "word",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "brace_expansion",
            "named": true
          },
          {
            "type": "command_substitution",
            "named": true
          },
          {
            "type": "concatenation",
            "named": true
          },
          {
            "type": "double_quote_string",
            "named": true
          },
          {
            "type": "escape_sequence",
            "named": true
          },
          {
            "type": "float",
            "named": true
          },
          {
            "type": "glob",
            "named": true
          },
          {
            "type": "home_dir_expansion",
            "named": true
          },
          {
            "type": "integer",
            "named": true
          },
          {
            "type": "single_quote_string",
            "named": true
          },
          {
            "type": "variable_expansion",
            "named": true
          },
          {
            "type": "word",
            "named": true
          }
        ]
      },
      "redirect": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "file_redirect",
            "named": true
          },
          {
            "type": "stream_redirect",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "command_substitution",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "begin_statement",
          "named": true
        },
        {
          "type": "break",
          "named": true
        },
        {
          "type": "command",
          "named": true
        },
        {
          "type": "conditional_execution",
          "named": true
        },
        {
          "type": "continue",
          "named": true
        },
        {
          "type": "for_statement",
          "named": true
        },
        {
          "type": "function_definition",
          "named": true
        },
        {
          "type": "if_statement",
          "named": true
        },
        {
          "type": "negated_statement",
          "named": true
        },
        {
          "type": "pipe",
          "named": true
        },
        {
          "type": "redirect_statement",
          "named": true
        },
        {
          "type": "return",
          "named": true
        },
        {
          "type": "switch_statement",
          "named": true
        },
        {
          "type": "while_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "concatenation",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "brace_expansion",
          "named": true
        },
        {
          "type": "command_substitution",
          "named": true
        },
        {
          "type": "double_quote_string",
          "named": true
        },
        {
          "type": "escape_sequence",
          "named": true
        },
        {
          "type": "float",
          "named": true
        },
        {
          "type": "glob",
          "named": true
        },
        {
          "type": "home_dir_expansion",
          "named": true
        },
        {
          "type": "integer",
          "named": true
        },
        {
          "type": "single_quote_string",
          "named": true
        },
        {
          "type": "variable_expansion",
          "named": true
        },
        {
          "type": "word",
          "named": true
        }
      ]
    }
  },
  {
    "type": "conditional_execution",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "begin_statement",
          "named": true
        },
        {
          "type": "break",
          "named": true
        },
        {
          "type": "command",
          "named": true
        },
        {
          "type": "conditional_execution",
          "named": true
        },
        {
          "type": "continue",
          "named": true
        },
        {
          "type": "for_statement",
          "named": true
        },
        {
          "type": "function_definition",
          "named": true
        },
        {
          "type": "if_statement",
          "named": true
        },
        {
          "type": "negated_statement",
          "named": true
        },
        {
          "type": "pipe",
          "named": true
        },
        {
          "type": "redirect_statement",
          "named": true
        },
        {
          "type": "return",
          "named": true
        },
        {
          "type": "switch_statement",
          "named": true
        },
        {
          "type": "while_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "double_quote_string",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "command_substitution",
          "named": true
        },
        {
          "type": "escape_sequence",
          "named": true
        },
        {
          "type": "variable_expansion",
          "named": true
        }
      ]
    }
  },
  {
    "type": "else_clause",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "begin_statement",
          "named": true
        },
        {
          "type": "break",
          "named": true
        },
        {
          "type": "command",
          "named": true
        },
        {
          "type": "conditional_execution",
          "named": true
        },
        {
          "type": "continue",
          "named": true
        },
        {
          "type": "for_statement",
          "named": true
        },
        {
          "type": "function_definition",
          "named": true
        },
        {
          "type": "if_statement",
          "named": true
        },
        {
          "type": "negated_statement",
          "named": true
        },
        {
          "type": "pipe",
          "named": true
        },
        {
          "type": "redirect_statement",
          "named": true
        },
        {
          "type": "return",
          "named": true
        },
        {
          "type": "switch_statement",
          "named": true
        },
        {
          "type": "while_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "else_if_clause",
    "named": true,
    "fields": {
      "condition": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "\n",
            "named": false
          },
          {
            "type": "\r",
            "named": false
          },
          {
            "type": "\r\n",
            "named": false
          },
          {
            "type": "&",
            "named": false
          },
          {
            "type": ";",
            "named": false
          },
          {
            "type": "begin_statement",
            "named": true
          },
          {
            "type": "break",
            "named": true
          },
          {
            "type": "command",
            "named": true
          },
          {
            "type": "conditional_execution",
            "named": true
          },
          {
            "type": "continue",
            "named": true
          },
          {
            "type": "for_statement",
            "named": true
          },
          {
            "type": "function_definition",
            "named": true
          },
          {
            "type": "if_statement",
            "named": true
          },
          {
            "type": "negated_statement",
            "named": true
          },
          {
            "type": "pipe",
            "named": true
          },
          {
            "type": "redirect_statement",
            "named": true
          },
          {
            "type": "return",
            "named": true
          },
          {
            "type": "switch_statement",
            "named": true
          },
          {
            "type": "while_statement",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "begin_statement",
          "named": true
        },
        {
          "type": "break",
          "named": true
        },
        {
          "type": "command",
          "named": true
        },
        {
          "type": "conditional_execution",
          "named": true
        },
        {
          "type": "continue",
          "named": true
        },
        {
          "type": "for_statement",
          "named": true
        },
        {
          "type": "function_definition",
          "named": true
        },
        {
          "type": "if_statement",
          "named": true
        },
        {
          "type": "negated_statement",
          "named": true
        },
        {
          "type": "pipe",
          "named": true
        },
        {
          "type": "redirect_statement",
          "named": true
        },
        {
          "type": "return",
          "named": true
        },
        {
          "type": "switch_statement",
          "named": true
        },
        {
          "type": "while_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "file_redirect",
    "named": true,
    "fields": {
      "destination": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "brace_expansion",
            "named": true
          },
          {
            "type": "command_substitution",
            "named": true
          },
          {
            "type": "concatenation",
            "named": true
          },
          {
            "type": "double_quote_string",
            "named": true
          },
          {
            "type": "escape_sequence",
            "named": true
          },
          {
            "type": "float",
            "named": true
          },
          {
            "type": "glob",
            "named": true
          },
          {
            "type": "home_dir_expansion",
            "named": true
          },
          {
            "type": "integer",
            "named": true
          },
          {
            "type": "single_quote_string",
            "named": true
          },
          {
            "type": "variable_expansion",
            "named": true
          },
          {
            "type": "word",
            "named": true
          }
        ]
      },
      "operator": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "direction",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "for_statement",
    "named": true,
    "fields": {
      "value": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "brace_expansion",
            "named": true
          },
          {
            "type": "command_substitution",
            "named": true
          },
          {
            "type": "concatenation",
            "named": true
          },
          {
            "type": "double_quote_string",
            "named": true
          },
          {
            "type": "escape_sequence",
            "named": true
          },
          {
            "type": "float",
            "named": true
          },
          {
            "type": "glob",
            "named": true
          },
          {
            "type": "home_dir_expansion",
            "named": true
          },
          {
            "type": "integer",
            "named": true
          },
          {
            "type": "single_quote_string",
            "named": true
          },
          {
            "type": "variable_expansion",
            "named": true
          },
          {
            "type": "word",
            "named": true
          }
        ]
      },
      "variable": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "variable_name",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "begin_statement",
          "named": true
        },
        {
          "type": "break",
          "named": true
        },
        {
          "type": "command",
          "named": true
        },
        {
          "type": "conditional_execution",
          "named": true
        },
        {
          "type": "continue",
          "named": true
        },
        {
          "type": "for_statement",
          "named": true
        },
        {
          "type": "function_definition",
          "named": true
        },
        {
          "type": "if_statement",
          "named": true
        },
        {
          "type": "negated_statement",
          "named": true
        },
        {
          "type": "pipe",
          "named": true
        },
        {
          "type": "redirect_statement",
          "named": true
        },
        {
          "type": "return",
          "named": true
        },
        {
          "type": "switch_statement",
          "named": true
        },
        {
          "type": "while_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "function_definition",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "brace_expansion",
            "named": true
          },
          {
            "type": "command_substitution",
            "named": true
          },
          {
            "type": "concatenation",
            "named": true
          },
          {
            "type": "double_quote_string",
            "named": true
          },
          {
            "type": "escape_sequence",
            "named": true
          },
          {
            "type": "float",
            "named": true
          },
          {
            "type": "glob",
            "named": true
          },
          {
            "type": "home_dir_expansion",
            "named": true
          },
          {
            "type": "integer",
            "named": true
          },
          {
            "type": "single_quote_string",
            "named": true
          },
          {
            "type": "variable_expansion",
            "named": true
          },
          {
            "type": "word",
            "named": true
          }
        ]
      },
      "option": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "brace_expansion",
            "named": true
          },
          {
            "type": "command_substitution",
            "named": true
          },
          {
            "type": "concatenation",
            "named": true
          },
          {
            "type": "double_quote_string",
            "named": true
          },
          {
            "type": "escape_sequence",
            "named": true
          },
          {
            "type": "float",
            "named": true
          },
          {
            "type": "glob",
            "named": true
          },
          {
            "type": "home_dir_expansion",
            "named": true
          },
          {
            "type": "integer",
            "named": true
          },
          {
            "type": "single_quote_string",
            "named": true
          },
          {
            "type": "variable_expansion",
            "named": true
          },
          {
            "type": "word",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "begin_statement",
          "named": true
        },
        {
          "type": "break",
          "named": true
        },
        {
          "type": "command",
          "named": true
        },
        {
          "type": "conditional_execution",
          "named": true
        },
        {
          "type": "continue",
          "named": true
        },
        {
          "type": "for_statement",
          "named": true
        },
        {
          "type": "function_definition",
          "named": true
        },
        {
          "type": "if_statement",
          "named": true
        },
        {
          "type": "negated_statement",
          "named": true
        },
        {
          "type": "pipe",
          "named": true
        },
        {
          "type": "redirect_statement",
          "named": true
        },
        {
          "type": "return",
          "named": true
        },
        {
          "type": "switch_statement",
          "named": true
        },
        {
          "type": "while_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "if_statement",
    "named": true,
    "fields": {
      "condition": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "\n",
            "named": false
          },
          {
            "type": "\r",
            "named": false
          },
          {
            "type": "\r\n",
            "named": false
          },
          {
            "type": "&",
            "named": false
          },
          {
            "type": ";",
            "named": false
          },
          {
            "type": "begin_statement",
            "named": true
          },
          {
            "type": "break",
            "named": true
          },
          {
            "type": "command",
            "named": true
          },
          {
            "type": "conditional_execution",
            "named": true
          },
          {
            "type": "continue",
            "named": true
          },
          {
            "type": "for_statement",
            "named": true
          },
          {
            "type": "function_definition",
            "named": true
          },
          {
            "type": "if_statement",
            "named": true
          },
          {
            "type": "negated_statement",
            "named": true
          },
          {
            "type": "pipe",
            "named": true
          },
          {
            "type": "redirect_statement",
            "named": true
          },
          {
            "type": "return",
            "named": true
          },
          {
            "type": "switch_statement",
            "named": true
          },
          {
            "type": "while_statement",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "begin_statement",
          "named": true
        },
        {
          "type": "break",
          "named": true
        },
        {
          "type": "command",
          "named": true
        },
        {
          "type": "conditional_execution",
          "named": true
        },
        {
          "type": "continue",
          "named": true
        },
        {
          "type": "else_clause",
          "named": true
        },
        {
          "type": "else_if_clause",
          "named": true
        },
        {
          "type": "for_statement",
          "named": true
        },
        {
          "type": "function_definition",
          "named": true
        },
        {
          "type": "if_statement",
          "named": true
        },
        {
          "type": "negated_statement",
          "named": true
        },
        {
          "type": "pipe",
          "named": true
        },
        {
          "type": "redirect_statement",
          "named": true
        },
        {
          "type": "return",
          "named": true
        },
        {
          "type": "switch_statement",
          "named": true
        },
        {
          "type": "while_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "index",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "command_substitution",
          "named": true
        },
        {
          "type": "double_quote_string",
          "named": true
        },
        {
          "type": "integer",
          "named": true
        },
        {
          "type": "single_quote_string",
          "named": true
        },
        {
          "type": "variable_expansion",
          "named": true
        }
      ]
    }
  },
  {
    "type": "list_element_access",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "index",
          "named": true
        },
        {
          "type": "range",
          "named": true
        }
      ]
    }
  },
  {
    "type": "negated_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "begin_statement",
          "named": true
        },
        {
          "type": "break",
          "named": true
        },
        {
          "type": "command",
          "named": true
        },
        {
          "type": "conditional_execution",
          "named": true
        },
        {
          "type": "continue",
          "named": true
        },
        {
          "type": "for_statement",
          "named": true
        },
        {
          "type": "function_definition",
          "named": true
        },
        {
          "type": "if_statement",
          "named": true
        },
        {
          "type": "negated_statement",
          "named": true
        },
        {
          "type": "pipe",
          "named": true
        },
        {
          "type": "redirect_statement",
          "named": true
        },
        {
          "type": "return",
          "named": true
        },
        {
          "type": "switch_statement",
          "named": true
        },
        {
          "type": "while_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "pipe",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "begin_statement",
          "named": true
        },
        {
          "type": "break",
          "named": true
        },
        {
          "type": "command",
          "named": true
        },
        {
          "type": "conditional_execution",
          "named": true
        },
        {
          "type": "continue",
          "named": true
        },
        {
          "type": "for_statement",
          "named": true
        },
        {
          "type": "function_definition",
          "named": true
        },
        {
          "type": "if_statement",
          "named": true
        },
        {
          "type": "negated_statement",
          "named": true
        },
        {
          "type": "pipe",
          "named": true
        },
        {
          "type": "redirect_statement",
          "named": true
        },
        {
          "type": "return",
          "named": true
        },
        {
          "type": "switch_statement",
          "named": true
        },
        {
          "type": "while_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "program",
    "named": true,
    "root": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "begin_statement",
          "named": true
        },
        {
          "type": "break",
          "named": true
        },
        {
          "type": "command",
          "named": true
        },
        {
          "type": "conditional_execution",
          "named": true
        },
        {
          "type": "continue",
          "named": true
        },
        {
          "type": "for_statement",
          "named": true
        },
        {
          "type": "function_definition",
          "named": true
        },
        {
          "type": "if_statement",
          "named": true
        },
        {
          "type": "negated_statement",
          "named": true
        },
        {
          "type": "pipe",
          "named": true
        },
        {
          "type": "redirect_statement",
          "named": true
        },
        {
          "type": "return",
          "named": true
        },
        {
          "type": "switch_statement",
          "named": true
        },
        {
          "type": "while_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "range",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "index",
          "named": true
        }
      ]
    }
  },
  {
    "type": "redirect_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "begin_statement",
          "named": true
        },
        {
          "type": "break",
          "named": true
        },
        {
          "type": "command",
          "named": true
        },
        {
          "type": "conditional_execution",
          "named": true
        },
        {
          "type": "continue",
          "named": true
        },
        {
          "type": "file_redirect",
          "named": true
        },
        {
          "type": "for_statement",
          "named": true
        },
        {
          "type": "function_definition",
          "named": true
        },
        {
          "type": "if_statement",
          "named": true
        },
        {
          "type": "negated_statement",
          "named": true
        },
        {
          "type": "pipe",
          "named": true
        },
        {
          "type": "redirect_statement",
          "named": true
        },
        {
          "type": "return",
          "named": true
        },
        {
          "type": "stream_redirect",
          "named": true
        },
        {
          "type": "switch_statement",
          "named": true
        },
        {
          "type": "while_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "return",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "brace_expansion",
          "named": true
        },
        {
          "type": "command_substitution",
          "named": true
        },
        {
          "type": "concatenation",
          "named": true
        },
        {
          "type": "double_quote_string",
          "named": true
        },
        {
          "type": "escape_sequence",
          "named": true
        },
        {
          "type": "float",
          "named": true
        },
        {
          "type": "glob",
          "named": true
        },
        {
          "type": "home_dir_expansion",
          "named": true
        },
        {
          "type": "integer",
          "named": true
        },
        {
          "type": "single_quote_string",
          "named": true
        },
        {
          "type": "variable_expansion",
          "named": true
        },
        {
          "type": "word",
          "named": true
        }
      ]
    }
  },
  {
    "type": "single_quote_string",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "escape_sequence",
          "named": true
        }
      ]
    }
  },
  {
    "type": "switch_statement",
    "named": true,
    "fields": {
      "value": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "brace_expansion",
            "named": true
          },
          {
            "type": "command_substitution",
            "named": true
          },
          {
            "type": "concatenation",
            "named": true
          },
          {
            "type": "double_quote_string",
            "named": true
          },
          {
            "type": "escape_sequence",
            "named": true
          },
          {
            "type": "float",
            "named": true
          },
          {
            "type": "glob",
            "named": true
          },
          {
            "type": "home_dir_expansion",
            "named": true
          },
          {
            "type": "integer",
            "named": true
          },
          {
            "type": "single_quote_string",
            "named": true
          },
          {
            "type": "variable_expansion",
            "named": true
          },
          {
            "type": "word",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "case_clause",
          "named": true
        }
      ]
    }
  },
  {
    "type": "variable_expansion",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "list_element_access",
          "named": true
        },
        {
          "type": "variable_expansion",
          "named": true
        },
        {
          "type": "variable_name",
          "named": true
        }
      ]
    }
  },
  {
    "type": "while_statement",
    "named": true,
    "fields": {
      "condition": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "\n",
            "named": false
          },
          {
            "type": "\r",
            "named": false
          },
          {
            "type": "\r\n",
            "named": false
          },
          {
            "type": "&",
            "named": false
          },
          {
            "type": ";",
            "named": false
          },
          {
            "type": "begin_statement",
            "named": true
          },
          {
            "type": "break",
            "named": true
          },
          {
            "type": "command",
            "named": true
          },
          {
            "type": "conditional_execution",
            "named": true
          },
          {
            "type": "continue",
            "named": true
          },
          {
            "type": "for_statement",
            "named": true
          },
          {
            "type": "function_definition",
            "named": true
          },
          {
            "type": "if_statement",
            "named": true
          },
          {
            "type": "negated_statement",
            "named": true
          },
          {
            "type": "pipe",
            "named": true
          },
          {
            "type": "redirect_statement",
            "named": true
          },
          {
            "type": "return",
            "named": true
          },
          {
            "type": "switch_statement",
            "named": true
          },
          {
            "type": "while_statement",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "begin_statement",
          "named": true
        },
        {
          "type": "break",
          "named": true
        },
        {
          "type": "command",
          "named": true
        },
        {
          "type": "conditional_execution",
          "named": true
        },
        {
          "type": "continue",
          "named": true
        },
        {
          "type": "for_statement",
          "named": true
        },
        {
          "type": "function_definition",
          "named": true
        },
        {
          "type": "if_statement",
          "named": true
        },
        {
          "type": "negated_statement",
          "named": true
        },
        {
          "type": "pipe",
          "named": true
        },
        {
          "type": "redirect_statement",
          "named": true
        },
        {
          "type": "return",
          "named": true
        },
        {
          "type": "switch_statement",
          "named": true
        },
        {
          "type": "while_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "word",
    "named": true,
    "fields": {}
  },
  {
    "type": "\n",
    "named": false
  },
  {
    "type": "\r",
    "named": false
  },
  {
    "type": "\r\n",
    "named": false
  },
  {
    "type": "!",
    "named": false
  },
  {
    "type": "\"",
    "named": false
  },
  {
    "type": "#",
    "named": false
  },
  {
    "type": "$",
    "named": false
  },
  {
    "type": "&",
    "named": false
  },
  {
    "type": "&&",
    "named": false
  },
  {
    "type": "&|",
    "named": false
  },
  {
    "type": "'",
    "named": false
  },
  {
    "type": "(",
    "named": false
  },
  {
    "type": ")",
    "named": false
  },
  {
    "type": ",",
    "named": false
  },
  {
    "type": "..",
    "named": false
  },
  {
    "type": "2>|",
    "named": false
  },
  {
    "type": ";",
    "named": false
  },
  {
    "type": "[",
    "named": false
  },
  {
    "type": "]",
    "named": false
  },
  {
    "type": "and",
    "named": false
  },
  {
    "type": "begin",
    "named": false
  },
  {
    "type": "break",
    "named": true
  },
  {
    "type": "case",
    "named": false
  },
  {
    "type": "comment",
    "named": true,
    "extra": true
  },
  {
    "type": "continue",
    "named": true
  },
  {
    "type": "direction",
    "named": true
  },
  {
    "type": "else",
    "named": false
  },
  {
    "type": "end",
    "named": false
  },
  {
    "type": "escape_sequence",
    "named": true
  },
  {
    "type": "float",
    "named": true
  },
  {
    "type": "for",
    "named": false
  },
  {
    "type": "function",
    "named": false
  },
  {
    "type": "glob",
    "named": true
  },
  {
    "type": "home_dir_expansion",
    "named": true
  },
  {
    "type": "if",
    "named": false
  },
  {
    "type": "in",
    "named": false
  },
  {
    "type": "integer",
    "named": true
  },
  {
    "type": "not",
    "named": false
  },
  {
    "type": "or",
    "named": false
  },
  {
    "type": "return",
    "named": false
  },
  {
    "type": "stream_redirect",
    "named": true
  },
  {
    "type": "switch",
    "named": false
  },
  {
    "type": "variable_name",
    "named": true
  },
  {
    "type": "while",
    "named": false
  },
  {
    "type": "{",
    "named": false
  },
  {
    "type": "|",
    "named": false
  },
  {
    "type": "||",
    "named": false
  },
  {
    "type": "}",
    "named": false
  }
]