pub const NODE_TYPES: &str = "[\n  {\n    \"type\": \"_expression\",\n    \"named\": true,\n    \"subtypes\": [\n      {\n        \"type\": \"_primary_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"binary_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"concatenation\",\n        \"named\": true\n      },\n      {\n        \"type\": \"parenthesized_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"postfix_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"ternary_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"unary_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"word\",\n        \"named\": true\n      }\n    ]\n  },\n  {\n    \"type\": \"_primary_expression\",\n    \"named\": true,\n    \"subtypes\": [\n      {\n        \"type\": \"ansi_c_string\",\n        \"named\": true\n      },\n      {\n        \"type\": \"arithmetic_expansion\",\n        \"named\": true\n      },\n      {\n        \"type\": \"brace_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"command_substitution\",\n        \"named\": true\n      },\n      {\n        \"type\": \"expansion\",\n        \"named\": true\n      },\n      {\n        \"type\": \"number\",\n        \"named\": true\n      },\n      {\n        \"type\": \"process_substitution\",\n        \"named\": true\n      },\n      {\n        \"type\": \"raw_string\",\n        \"named\": true\n      },\n      {\n        \"type\": \"simple_expansion\",\n        \"named\": true\n      },\n      {\n        \"type\": \"string\",\n        \"named\": true\n      },\n      {\n        \"type\": \"translated_string\",\n        \"named\": true\n      },\n      {\n        \"type\": \"word\",\n        \"named\": true\n      }\n    ]\n  },\n  {\n    \"type\": \"_statement\",\n    \"named\": true,\n    \"subtypes\": [\n      {\n        \"type\": \"c_style_for_statement\",\n        \"named\": true\n      },\n      {\n        \"type\": \"case_statement\",\n        \"named\": true\n      },\n      {\n        \"type\": \"command\",\n        \"named\": true\n      },\n      {\n        \"type\": \"compound_statement\",\n        \"named\": true\n      },\n      {\n        \"type\": \"declaration_command\",\n        \"named\": true\n      },\n      {\n        \"type\": \"for_statement\",\n        \"named\": true\n      },\n      {\n        \"type\": \"function_definition\",\n        \"named\": true\n      },\n      {\n        \"type\": \"if_statement\",\n        \"named\": true\n      },\n      {\n        \"type\": \"list\",\n        \"named\": true\n      },\n      {\n        \"type\": \"negated_command\",\n        \"named\": true\n      },\n      {\n        \"type\": \"pipeline\",\n        \"named\": true\n      },\n      {\n        \"type\": \"redirected_statement\",\n        \"named\": true\n      },\n      {\n        \"type\": \"subshell\",\n        \"named\": true\n      },\n      {\n        \"type\": \"test_command\",\n        \"named\": true\n      },\n      {\n        \"type\": \"unset_command\",\n        \"named\": true\n      },\n      {\n        \"type\": \"variable_assignment\",\n        \"named\": true\n      },\n      {\n        \"type\": \"variable_assignments\",\n        \"named\": true\n      },\n      {\n        \"type\": \"while_statement\",\n        \"named\": true\n      }\n    ]\n  },\n  {\n    \"type\": \"arithmetic_expansion\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"binary_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"command_substitution\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expansion\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number\",\n          \"named\": true\n        },\n        {\n          \"type\": \"parenthesized_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"postfix_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"simple_expansion\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"subscript\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ternary_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unary_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"variable_name\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"array\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_primary_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"concatenation\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"binary_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"left\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"command_substitution\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expansion\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number\",\n            \"named\": true\n          },\n          {\n            \"type\": \"simple_expansion\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"subscript\",\n            \"named\": true\n          },\n          {\n            \"type\": \"variable_name\",\n            \"named\": true\n          }\n        ]\n      },\n      \"operator\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"!=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"%\",\n            \"named\": false\n          },\n          {\n            \"type\": \"%=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"&\",\n            \"named\": false\n          },\n          {\n            \"type\": \"&&\",\n            \"named\": false\n          },\n          {\n            \"type\": \"&=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"*\",\n            \"named\": false\n          },\n          {\n            \"type\": \"**\",\n            \"named\": false\n          },\n          {\n            \"type\": \"**=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"*=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"+\",\n            \"named\": false\n          },\n          {\n            \"type\": \"+=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"-\",\n            \"named\": false\n          },\n          {\n            \"type\": \"-=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"-a\",\n            \"named\": false\n          },\n          {\n            \"type\": \"-o\",\n            \"named\": false\n          },\n          {\n            \"type\": \"/\",\n            \"named\": false\n          },\n          {\n            \"type\": \"/=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"<\",\n            \"named\": false\n          },\n          {\n            \"type\": \"<<\",\n            \"named\": false\n          },\n          {\n            \"type\": \"<<=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"<=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"==\",\n            \"named\": false\n          },\n          {\n            \"type\": \"=~\",\n            \"named\": false\n          },\n          {\n            \"type\": \">\",\n            \"named\": false\n          },\n          {\n            \"type\": \">=\",\n            \"named\": false\n          },\n          {\n            \"type\": \">>\",\n            \"named\": false\n          },\n          {\n            \"type\": \">>=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"test_operator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"|\",\n            \"named\": false\n          },\n          {\n            \"type\": \"|=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"||\",\n            \"named\": false\n          }\n        ]\n      },\n      \"right\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"command_substitution\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expansion\",\n            \"named\": true\n          },\n          {\n            \"type\": \"extglob_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number\",\n            \"named\": true\n          },\n          {\n            \"type\": \"regex\",\n            \"named\": true\n          },\n          {\n            \"type\": \"simple_expansion\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"subscript\",\n            \"named\": true\n          },\n          {\n            \"type\": \"variable_name\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"binary_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expansion\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number\",\n          \"named\": true\n        },\n        {\n          \"type\": \"variable_name\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"brace_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"number\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"c_style_for_statement\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"compound_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"do_group\",\n            \"named\": true\n          }\n        ]\n      },\n      \"condition\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \",\",\n            \"named\": false\n          },\n          {\n            \"type\": \"binary_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"command_substitution\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expansion\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"postfix_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"simple_expansion\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"variable_assignment\",\n            \"named\": true\n          },\n          {\n            \"type\": \"word\",\n            \"named\": true\n          }\n        ]\n      },\n      \"initializer\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \",\",\n            \"named\": false\n          },\n          {\n            \"type\": \"binary_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"command_substitution\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expansion\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"postfix_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"simple_expansion\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"variable_assignment\",\n            \"named\": true\n          },\n          {\n            \"type\": \"word\",\n            \"named\": true\n          }\n        ]\n      },\n      \"update\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \",\",\n            \"named\": false\n          },\n          {\n            \"type\": \"binary_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"command_substitution\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expansion\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"postfix_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"simple_expansion\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"variable_assignment\",\n            \"named\": true\n          },\n          {\n            \"type\": \"word\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"case_item\",\n    \"named\": true,\n    \"fields\": {\n      \"fallthrough\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \";&\",\n            \"named\": false\n          },\n          {\n            \"type\": \";;&\",\n            \"named\": false\n          }\n        ]\n      },\n      \"termination\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \";;\",\n            \"named\": false\n          }\n        ]\n      },\n      \"value\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_primary_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"concatenation\",\n            \"named\": true\n          },\n          {\n            \"type\": \"extglob_pattern\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_statement\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"case_statement\",\n    \"named\": true,\n    \"fields\": {\n      \"value\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_primary_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"concatenation\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"case_item\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"command\",\n    \"named\": true,\n    \"fields\": {\n      \"argument\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"$\",\n            \"named\": false\n          },\n          {\n            \"type\": \"==\",\n            \"named\": false\n          },\n          {\n            \"type\": \"=~\",\n            \"named\": false\n          },\n          {\n            \"type\": \"_primary_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"concatenation\",\n            \"named\": true\n          },\n          {\n            \"type\": \"regex\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"command_name\",\n            \"named\": true\n          }\n        ]\n      },\n      \"redirect\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"file_redirect\",\n            \"named\": true\n          },\n          {\n            \"type\": \"herestring_redirect\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"subshell\",\n          \"named\": true\n        },\n        {\n          \"type\": \"variable_assignment\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"command_name\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_primary_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"concatenation\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"command_substitution\",\n    \"named\": true,\n    \"fields\": {\n      \"redirect\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"file_redirect\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_statement\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"compound_statement\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_statement\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"concatenation\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_primary_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"array\",\n          \"named\": true\n        },\n        {\n          \"type\": \"variable_name\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"declaration_command\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_primary_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"concatenation\",\n          \"named\": true\n        },\n        {\n          \"type\": \"variable_assignment\",\n          \"named\": true\n        },\n        {\n          \"type\": \"variable_name\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"do_group\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_statement\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"elif_clause\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_statement\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"else_clause\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_statement\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"expansion\",\n    \"named\": true,\n    \"fields\": {\n      \"operator\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"!\",\n            \"named\": false\n          },\n          {\n            \"type\": \"#\",\n            \"named\": false\n          },\n          {\n            \"type\": \"##\",\n            \"named\": false\n          },\n          {\n            \"type\": \"%\",\n            \"named\": false\n          },\n          {\n            \"type\": \"%%\",\n            \"named\": false\n          },\n          {\n            \"type\": \"*\",\n            \"named\": false\n          },\n          {\n            \"type\": \"+\",\n            \"named\": false\n          },\n          {\n            \"type\": \",\",\n            \"named\": false\n          },\n          {\n            \"type\": \",,\",\n            \"named\": false\n          },\n          {\n            \"type\": \"-\",\n            \"named\": false\n          },\n          {\n            \"type\": \"/\",\n            \"named\": false\n          },\n          {\n            \"type\": \"/#\",\n            \"named\": false\n          },\n          {\n            \"type\": \"/%\",\n            \"named\": false\n          },\n          {\n            \"type\": \"//\",\n            \"named\": false\n          },\n          {\n            \"type\": \":\",\n            \"named\": false\n          },\n          {\n            \"type\": \":+\",\n            \"named\": false\n          },\n          {\n            \"type\": \":-\",\n            \"named\": false\n          },\n          {\n            \"type\": \":=\",\n            \"named\": false\n          },\n          {\n            \"type\": \":?\",\n            \"named\": false\n          },\n          {\n            \"type\": \"=\",\n            \"named\": false\n          },\n          {\n            \"type\": \"?\",\n            \"named\": false\n          },\n          {\n            \"type\": \"@\",\n            \"named\": false\n          },\n          {\n            \"type\": \"A\",\n            \"named\": false\n          },\n          {\n            \"type\": \"E\",\n            \"named\": false\n          },\n          {\n            \"type\": \"K\",\n            \"named\": false\n          },\n          {\n            \"type\": \"L\",\n            \"named\": false\n          },\n          {\n            \"type\": \"P\",\n            \"named\": false\n          },\n          {\n            \"type\": \"Q\",\n            \"named\": false\n          },\n          {\n            \"type\": \"U\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^\",\n            \"named\": false\n          },\n          {\n            \"type\": \"^^\",\n            \"named\": false\n          },\n          {\n            \"type\": \"a\",\n            \"named\": false\n          },\n          {\n            \"type\": \"k\",\n            \"named\": false\n          },\n          {\n            \"type\": \"u\",\n            \"named\": false\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_primary_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"array\",\n          \"named\": true\n        },\n        {\n          \"type\": \"binary_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"concatenation\",\n          \"named\": true\n        },\n        {\n          \"type\": \"parenthesized_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"regex\",\n          \"named\": true\n        },\n        {\n          \"type\": \"special_variable_name\",\n          \"named\": true\n        },\n        {\n          \"type\": \"subscript\",\n          \"named\": true\n        },\n        {\n          \"type\": \"variable_name\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"file_redirect\",\n    \"named\": true,\n    \"fields\": {\n      \"descriptor\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"file_descriptor\",\n            \"named\": true\n          }\n        ]\n      },\n      \"destination\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_primary_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"concatenation\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"for_statement\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"do_group\",\n            \"named\": true\n          }\n        ]\n      },\n      \"value\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_primary_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"concatenation\",\n            \"named\": true\n          }\n        ]\n      },\n      \"variable\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"variable_name\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"function_definition\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"compound_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"subshell\",\n            \"named\": true\n          },\n          {\n            \"type\": \"test_command\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"word\",\n            \"named\": true\n          }\n        ]\n      },\n      \"redirect\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"file_redirect\",\n            \"named\": true\n          },\n          {\n            \"type\": \"herestring_redirect\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"heredoc_body\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"command_substitution\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expansion\",\n          \"named\": true\n        },\n        {\n          \"type\": \"heredoc_content\",\n          \"named\": true\n        },\n        {\n          \"type\": \"simple_expansion\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"heredoc_redirect\",\n    \"named\": true,\n    \"fields\": {\n      \"argument\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_primary_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"concatenation\",\n            \"named\": true\n          }\n        ]\n      },\n      \"descriptor\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"file_descriptor\",\n            \"named\": true\n          }\n        ]\n      },\n      \"operator\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"&&\",\n            \"named\": false\n          },\n          {\n            \"type\": \"||\",\n            \"named\": false\n          }\n        ]\n      },\n      \"redirect\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"file_redirect\",\n            \"named\": true\n          },\n          {\n            \"type\": \"herestring_redirect\",\n            \"named\": true\n          }\n        ]\n      },\n      \"right\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_statement\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"heredoc_body\",\n          \"named\": true\n        },\n        {\n          \"type\": \"heredoc_end\",\n          \"named\": true\n        },\n        {\n          \"type\": \"heredoc_start\",\n          \"named\": true\n        },\n        {\n          \"type\": \"pipeline\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"herestring_redirect\",\n    \"named\": true,\n    \"fields\": {\n      \"descriptor\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"file_descriptor\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_primary_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"concatenation\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"if_statement\",\n    \"named\": true,\n    \"fields\": {\n      \"condition\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"&\",\n            \"named\": false\n          },\n          {\n            \"type\": \";\",\n            \"named\": false\n          },\n          {\n            \"type\": \";;\",\n            \"named\": false\n          },\n          {\n            \"type\": \"_statement\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"elif_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"else_clause\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"list\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_statement\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"negated_command\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"command\",\n          \"named\": true\n        },\n        {\n          \"type\": \"subshell\",\n          \"named\": true\n        },\n        {\n          \"type\": \"test_command\",\n          \"named\": true\n        },\n        {\n          \"type\": \"variable_assignment\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"number\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"command_substitution\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expansion\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"parenthesized_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"command_substitution\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expansion\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number\",\n          \"named\": true\n        },\n        {\n          \"type\": \"simple_expansion\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"subscript\",\n          \"named\": true\n        },\n        {\n          \"type\": \"variable_assignment\",\n          \"named\": true\n        },\n        {\n          \"type\": \"variable_name\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"pipeline\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_statement\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"postfix_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"operator\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"++\",\n            \"named\": false\n          },\n          {\n            \"type\": \"--\",\n            \"named\": false\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"command_substitution\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expansion\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number\",\n          \"named\": true\n        },\n        {\n          \"type\": \"simple_expansion\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"subscript\",\n          \"named\": true\n        },\n        {\n          \"type\": \"variable_name\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"process_substitution\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_statement\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"program\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_statement\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"redirected_statement\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_statement\",\n            \"named\": true\n          }\n        ]\n      },\n      \"redirect\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"file_redirect\",\n            \"named\": true\n          },\n          {\n            \"type\": \"heredoc_redirect\",\n            \"named\": true\n          },\n          {\n            \"type\": \"herestring_redirect\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"herestring_redirect\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"simple_expansion\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"special_variable_name\",\n          \"named\": true\n        },\n        {\n          \"type\": \"variable_name\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"string\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"arithmetic_expansion\",\n          \"named\": true\n        },\n        {\n          \"type\": \"command_substitution\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expansion\",\n          \"named\": true\n        },\n        {\n          \"type\": \"simple_expansion\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string_content\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"subscript\",\n    \"named\": true,\n    \"fields\": {\n      \"index\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_primary_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"binary_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"concatenation\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expression\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"variable_name\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"subshell\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_statement\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"ternary_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"alternative\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"command_substitution\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expansion\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number\",\n            \"named\": true\n          },\n          {\n            \"type\": \"simple_expansion\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"subscript\",\n            \"named\": true\n          },\n          {\n            \"type\": \"variable_name\",\n            \"named\": true\n          }\n        ]\n      },\n      \"condition\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"command_substitution\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expansion\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number\",\n            \"named\": true\n          },\n          {\n            \"type\": \"simple_expansion\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"subscript\",\n            \"named\": true\n          },\n          {\n            \"type\": \"variable_name\",\n            \"named\": true\n          }\n        ]\n      },\n      \"consequence\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"command_substitution\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expansion\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number\",\n            \"named\": true\n          },\n          {\n            \"type\": \"simple_expansion\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"subscript\",\n            \"named\": true\n          },\n          {\n            \"type\": \"variable_name\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"test_command\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"redirected_statement\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"translated_string\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"string\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"unary_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"operator\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"!\",\n            \"named\": false\n          },\n          {\n            \"type\": \"+\",\n            \"named\": false\n          },\n          {\n            \"type\": \"++\",\n            \"named\": false\n          },\n          {\n            \"type\": \"-\",\n            \"named\": false\n          },\n          {\n            \"type\": \"--\",\n            \"named\": false\n          },\n          {\n            \"type\": \"test_operator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"~\",\n            \"named\": false\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"command_substitution\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expansion\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number\",\n          \"named\": true\n        },\n        {\n          \"type\": \"simple_expansion\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"subscript\",\n          \"named\": true\n        },\n        {\n          \"type\": \"variable_name\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"unset_command\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"_primary_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"concatenation\",\n          \"named\": true\n        },\n        {\n          \"type\": \"variable_name\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"variable_assignment\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"subscript\",\n            \"named\": true\n          },\n          {\n            \"type\": \"variable_name\",\n            \"named\": true\n          }\n        ]\n      },\n      \"value\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_primary_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"array\",\n            \"named\": true\n          },\n          {\n            \"type\": \"binary_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"concatenation\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"postfix_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"variable_assignment\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"variable_assignments\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"variable_assignment\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"while_statement\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"do_group\",\n            \"named\": true\n          }\n        ]\n      },\n      \"condition\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"&\",\n            \"named\": false\n          },\n          {\n            \"type\": \";\",\n            \"named\": false\n          },\n          {\n            \"type\": \";;\",\n            \"named\": false\n          },\n          {\n            \"type\": \"_statement\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"word\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"!\",\n    \"named\": false\n  },\n  {\n    \"type\": \"!=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"\\\"\",\n    \"named\": false\n  },\n  {\n    \"type\": \"#\",\n    \"named\": false\n  },\n  {\n    \"type\": \"##\",\n    \"named\": false\n  },\n  {\n    \"type\": \"$\",\n    \"named\": false\n  },\n  {\n    \"type\": \"$(\",\n    \"named\": false\n  },\n  {\n    \"type\": \"$((\",\n    \"named\": false\n  },\n  {\n    \"type\": \"$[\",\n    \"named\": false\n  },\n  {\n    \"type\": \"$`\",\n    \"named\": false\n  },\n  {\n    \"type\": \"${\",\n    \"named\": false\n  },\n  {\n    \"type\": \"%\",\n    \"named\": false\n  },\n  {\n    \"type\": \"%%\",\n    \"named\": false\n  },\n  {\n    \"type\": \"%=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"&\",\n    \"named\": false\n  },\n  {\n    \"type\": \"&&\",\n    \"named\": false\n  },\n  {\n    \"type\": \"&=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"&>\",\n    \"named\": false\n  },\n  {\n    \"type\": \"&>>\",\n    \"named\": false\n  },\n  {\n    \"type\": \"(\",\n    \"named\": false\n  },\n  {\n    \"type\": \"((\",\n    \"named\": false\n  },\n  {\n    \"type\": \")\",\n    \"named\": false\n  },\n  {\n    \"type\": \"))\",\n    \"named\": false\n  },\n  {\n    \"type\": \"*\",\n    \"named\": false\n  },\n  {\n    \"type\": \"**\",\n    \"named\": false\n  },\n  {\n    \"type\": \"**=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"*=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"+\",\n    \"named\": false\n  },\n  {\n    \"type\": \"++\",\n    \"named\": false\n  },\n  {\n    \"type\": \"+=\",\n    \"named\": false\n  },\n  {\n    \"type\": \",\",\n    \"named\": false\n  },\n  {\n    \"type\": \",,\",\n    \"named\": false\n  },\n  {\n    \"type\": \"-\",\n    \"named\": false\n  },\n  {\n    \"type\": \"--\",\n    \"named\": false\n  },\n  {\n    \"type\": \"-=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"-a\",\n    \"named\": false\n  },\n  {\n    \"type\": \"-o\",\n    \"named\": false\n  },\n  {\n    \"type\": \"..\",\n    \"named\": false\n  },\n  {\n    \"type\": \"/\",\n    \"named\": false\n  },\n  {\n    \"type\": \"/#\",\n    \"named\": false\n  },\n  {\n    \"type\": \"/%\",\n    \"named\": false\n  },\n  {\n    \"type\": \"//\",\n    \"named\": false\n  },\n  {\n    \"type\": \"/=\",\n    \"named\": false\n  },\n  {\n    \"type\": \":\",\n    \"named\": false\n  },\n  {\n    \"type\": \":+\",\n    \"named\": false\n  },\n  {\n    \"type\": \":-\",\n    \"named\": false\n  },\n  {\n    \"type\": \":=\",\n    \"named\": false\n  },\n  {\n    \"type\": \":?\",\n    \"named\": false\n  },\n  {\n    \"type\": \";\",\n    \"named\": false\n  },\n  {\n    \"type\": \";&\",\n    \"named\": false\n  },\n  {\n    \"type\": \";;\",\n    \"named\": false\n  },\n  {\n    \"type\": \";;&\",\n    \"named\": false\n  },\n  {\n    \"type\": \"<\",\n    \"named\": false\n  },\n  {\n    \"type\": \"<&\",\n    \"named\": false\n  },\n  {\n    \"type\": \"<&-\",\n    \"named\": false\n  },\n  {\n    \"type\": \"<(\",\n    \"named\": false\n  },\n  {\n    \"type\": \"<<\",\n    \"named\": false\n  },\n  {\n    \"type\": \"<<-\",\n    \"named\": false\n  },\n  {\n    \"type\": \"<<<\",\n    \"named\": false\n  },\n  {\n    \"type\": \"<<=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"<=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"==\",\n    \"named\": false\n  },\n  {\n    \"type\": \"=~\",\n    \"named\": false\n  },\n  {\n    \"type\": \">\",\n    \"named\": false\n  },\n  {\n    \"type\": \">&\",\n    \"named\": false\n  },\n  {\n    \"type\": \">&-\",\n    \"named\": false\n  },\n  {\n    \"type\": \">(\",\n    \"named\": false\n  },\n  {\n    \"type\": \">=\",\n    \"named\": false\n  },\n  {\n    \"type\": \">>\",\n    \"named\": false\n  },\n  {\n    \"type\": \">>=\",\n    \"named\": false\n  },\n  {\n    \"type\": \">|\",\n    \"named\": false\n  },\n  {\n    \"type\": \"?\",\n    \"named\": false\n  },\n  {\n    \"type\": \"@\",\n    \"named\": false\n  },\n  {\n    \"type\": \"A\",\n    \"named\": false\n  },\n  {\n    \"type\": \"E\",\n    \"named\": false\n  },\n  {\n    \"type\": \"K\",\n    \"named\": false\n  },\n  {\n    \"type\": \"L\",\n    \"named\": false\n  },\n  {\n    \"type\": \"P\",\n    \"named\": false\n  },\n  {\n    \"type\": \"Q\",\n    \"named\": false\n  },\n  {\n    \"type\": \"U\",\n    \"named\": false\n  },\n  {\n    \"type\": \"[\",\n    \"named\": false\n  },\n  {\n    \"type\": \"[[\",\n    \"named\": false\n  },\n  {\n    \"type\": \"]\",\n    \"named\": false\n  },\n  {\n    \"type\": \"]]\",\n    \"named\": false\n  },\n  {\n    \"type\": \"^\",\n    \"named\": false\n  },\n  {\n    \"type\": \"^=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"^^\",\n    \"named\": false\n  },\n  {\n    \"type\": \"`\",\n    \"named\": false\n  },\n  {\n    \"type\": \"``\",\n    \"named\": false\n  },\n  {\n    \"type\": \"a\",\n    \"named\": false\n  },\n  {\n    \"type\": \"ansi_c_string\",\n    \"named\": true\n  },\n  {\n    \"type\": \"case\",\n    \"named\": false\n  },\n  {\n    \"type\": \"comment\",\n    \"named\": true\n  },\n  {\n    \"type\": \"declare\",\n    \"named\": false\n  },\n  {\n    \"type\": \"do\",\n    \"named\": false\n  },\n  {\n    \"type\": \"done\",\n    \"named\": false\n  },\n  {\n    \"type\": \"elif\",\n    \"named\": false\n  },\n  {\n    \"type\": \"else\",\n    \"named\": false\n  },\n  {\n    \"type\": \"esac\",\n    \"named\": false\n  },\n  {\n    \"type\": \"export\",\n    \"named\": false\n  },\n  {\n    \"type\": \"extglob_pattern\",\n    \"named\": true\n  },\n  {\n    \"type\": \"fi\",\n    \"named\": false\n  },\n  {\n    \"type\": \"file_descriptor\",\n    \"named\": true\n  },\n  {\n    \"type\": \"for\",\n    \"named\": false\n  },\n  {\n    \"type\": \"function\",\n    \"named\": false\n  },\n  {\n    \"type\": \"heredoc_content\",\n    \"named\": true\n  },\n  {\n    \"type\": \"heredoc_end\",\n    \"named\": true\n  },\n  {\n    \"type\": \"heredoc_start\",\n    \"named\": true\n  },\n  {\n    \"type\": \"if\",\n    \"named\": false\n  },\n  {\n    \"type\": \"in\",\n    \"named\": false\n  },\n  {\n    \"type\": \"k\",\n    \"named\": false\n  },\n  {\n    \"type\": \"local\",\n    \"named\": false\n  },\n  {\n    \"type\": \"raw_string\",\n    \"named\": true\n  },\n  {\n    \"type\": \"readonly\",\n    \"named\": false\n  },\n  {\n    \"type\": \"regex\",\n    \"named\": true\n  },\n  {\n    \"type\": \"select\",\n    \"named\": false\n  },\n  {\n    \"type\": \"special_variable_name\",\n    \"named\": true\n  },\n  {\n    \"type\": \"string_content\",\n    \"named\": true\n  },\n  {\n    \"type\": \"test_operator\",\n    \"named\": true\n  },\n  {\n    \"type\": \"then\",\n    \"named\": false\n  },\n  {\n    \"type\": \"typeset\",\n    \"named\": false\n  },\n  {\n    \"type\": \"u\",\n    \"named\": false\n  },\n  {\n    \"type\": \"unset\",\n    \"named\": false\n  },\n  {\n    \"type\": \"unsetenv\",\n    \"named\": false\n  },\n  {\n    \"type\": \"until\",\n    \"named\": false\n  },\n  {\n    \"type\": \"variable_name\",\n    \"named\": true\n  },\n  {\n    \"type\": \"while\",\n    \"named\": false\n  },\n  {\n    \"type\": \"{\",\n    \"named\": false\n  },\n  {\n    \"type\": \"|\",\n    \"named\": false\n  },\n  {\n    \"type\": \"|&\",\n    \"named\": false\n  },\n  {\n    \"type\": \"|=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"||\",\n    \"named\": false\n  },\n  {\n    \"type\": \"}\",\n    \"named\": false\n  },\n  {\n    \"type\": \"~\",\n    \"named\": false\n  }\n]";
Expand description

The content of the node-types.json file for this grammar.