pub const NODE_TYPES: &'static str = "[\n  {\n    \"type\": \"_expression\",\n    \"named\": true,\n    \"subtypes\": [\n      {\n        \"type\": \"apply_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"assert_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"attrset_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"binary_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"float_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"function_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"has_attr_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"hpath_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"if_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"indented_string_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"integer_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"let_attrset_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"let_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"list_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"parenthesized_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"path_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"rec_attrset_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"select_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"spath_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"string_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"unary_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"uri_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"variable_expression\",\n        \"named\": true\n      },\n      {\n        \"type\": \"with_expression\",\n        \"named\": true\n      }\n    ]\n  },\n  {\n    \"type\": \"apply_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"argument\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"attrset_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"hpath_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"indented_string_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"integer_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let_attrset_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"path_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"rec_attrset_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"select_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"spath_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"uri_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"variable_expression\",\n            \"named\": true\n          }\n        ]\n      },\n      \"function\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"apply_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"attrset_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"hpath_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"indented_string_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"integer_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let_attrset_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"path_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"rec_attrset_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"select_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"spath_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"uri_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"variable_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"assert_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"apply_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"assert_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"attrset_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"binary_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"has_attr_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"hpath_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"indented_string_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"integer_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let_attrset_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"path_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"rec_attrset_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"select_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"spath_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"uri_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"variable_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"with_expression\",\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      }\n    }\n  },\n  {\n    \"type\": \"attrpath\",\n    \"named\": true,\n    \"fields\": {\n      \"attr\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"interpolation\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"attrset_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"binding_set\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"binary_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"left\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"apply_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"attrset_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"binary_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"has_attr_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"hpath_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"indented_string_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"integer_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let_attrset_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"path_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"rec_attrset_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"select_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"spath_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"uri_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"variable_expression\",\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\": \"||\",\n            \"named\": false\n          }\n        ]\n      },\n      \"right\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"apply_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"attrset_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"binary_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"has_attr_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"hpath_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"indented_string_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"integer_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let_attrset_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"path_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"rec_attrset_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"select_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"spath_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"uri_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"variable_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"binding\",\n    \"named\": true,\n    \"fields\": {\n      \"attrpath\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"attrpath\",\n            \"named\": true\n          }\n        ]\n      },\n      \"expression\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"binding_set\",\n    \"named\": true,\n    \"fields\": {\n      \"binding\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"binding\",\n            \"named\": true\n          },\n          {\n            \"type\": \"inherit\",\n            \"named\": true\n          },\n          {\n            \"type\": \"inherit_from\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"formal\",\n    \"named\": true,\n    \"fields\": {\n      \"default\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"formals\",\n    \"named\": true,\n    \"fields\": {\n      \"ellipses\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"ellipses\",\n            \"named\": true\n          }\n        ]\n      },\n      \"formal\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"formal\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"function_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"apply_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"assert_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"attrset_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"binary_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"has_attr_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"hpath_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"indented_string_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"integer_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let_attrset_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"path_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"rec_attrset_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"select_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"spath_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"uri_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"variable_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"with_expression\",\n            \"named\": true\n          }\n        ]\n      },\n      \"formals\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"formals\",\n            \"named\": true\n          }\n        ]\n      },\n      \"universal\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"has_attr_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"attrpath\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"attrpath\",\n            \"named\": true\n          }\n        ]\n      },\n      \"expression\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"apply_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"attrset_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"binary_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"has_attr_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"hpath_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"indented_string_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"integer_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let_attrset_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"path_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"rec_attrset_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"select_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"spath_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"uri_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"variable_expression\",\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      }\n    }\n  },\n  {\n    \"type\": \"hpath_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"interpolation\",\n          \"named\": true\n        },\n        {\n          \"type\": \"path_fragment\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"if_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      },\n      \"condition\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\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      }\n    }\n  },\n  {\n    \"type\": \"indented_string_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"dollar_escape\",\n          \"named\": true\n        },\n        {\n          \"type\": \"escape_sequence\",\n          \"named\": true\n        },\n        {\n          \"type\": \"interpolation\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string_fragment\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"inherit\",\n    \"named\": true,\n    \"fields\": {\n      \"attrs\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"inherited_attrs\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"inherit_from\",\n    \"named\": true,\n    \"fields\": {\n      \"attrs\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"inherited_attrs\",\n            \"named\": true\n          }\n        ]\n      },\n      \"expression\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"inherited_attrs\",\n    \"named\": true,\n    \"fields\": {\n      \"attr\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"interpolation\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"interpolation\",\n    \"named\": true,\n    \"fields\": {\n      \"expression\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"let_attrset_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"binding_set\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"let_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"apply_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"assert_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"attrset_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"binary_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"has_attr_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"hpath_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"indented_string_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"integer_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let_attrset_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"path_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"rec_attrset_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"select_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"spath_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"uri_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"variable_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"with_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"binding_set\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"list_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"element\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"attrset_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"hpath_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"indented_string_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"integer_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let_attrset_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"path_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"rec_attrset_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"select_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"spath_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"uri_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"variable_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"parenthesized_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"expression\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"path_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"interpolation\",\n          \"named\": true\n        },\n        {\n          \"type\": \"path_fragment\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"rec_attrset_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"binding_set\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"select_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"attrpath\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"attrpath\",\n            \"named\": true\n          }\n        ]\n      },\n      \"default\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"attrset_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"hpath_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"indented_string_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"integer_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let_attrset_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"path_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"rec_attrset_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"select_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"spath_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"uri_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"variable_expression\",\n            \"named\": true\n          }\n        ]\n      },\n      \"expression\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"attrset_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"hpath_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"indented_string_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"integer_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let_attrset_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"path_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"rec_attrset_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"spath_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"uri_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"variable_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"source_code\",\n    \"named\": true,\n    \"fields\": {\n      \"expression\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"string_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"dollar_escape\",\n          \"named\": true\n        },\n        {\n          \"type\": \"escape_sequence\",\n          \"named\": true\n        },\n        {\n          \"type\": \"interpolation\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string_fragment\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"unary_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"argument\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"apply_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"attrset_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"binary_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"has_attr_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"hpath_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"indented_string_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"integer_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let_attrset_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"path_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"rec_attrset_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"select_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"spath_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"uri_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"variable_expression\",\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      }\n    }\n  },\n  {\n    \"type\": \"variable_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"with_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"apply_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"assert_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"attrset_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"binary_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"has_attr_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"hpath_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"indented_string_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"integer_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let_attrset_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parenthesized_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"path_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"rec_attrset_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"select_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"spath_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"uri_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"variable_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"with_expression\",\n            \"named\": true\n          }\n        ]\n      },\n      \"environment\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"_expression\",\n            \"named\": true\n          }\n        ]\n      }\n    }\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\": \"assert\",\n    \"named\": false\n  },\n  {\n    \"type\": \"comment\",\n    \"named\": true\n  },\n  {\n    \"type\": \"dollar_escape\",\n    \"named\": true\n  },\n  {\n    \"type\": \"ellipses\",\n    \"named\": true\n  },\n  {\n    \"type\": \"else\",\n    \"named\": false\n  },\n  {\n    \"type\": \"escape_sequence\",\n    \"named\": true\n  },\n  {\n    \"type\": \"float_expression\",\n    \"named\": true\n  },\n  {\n    \"type\": \"identifier\",\n    \"named\": true\n  },\n  {\n    \"type\": \"if\",\n    \"named\": false\n  },\n  {\n    \"type\": \"in\",\n    \"named\": false\n  },\n  {\n    \"type\": \"inherit\",\n    \"named\": false\n  },\n  {\n    \"type\": \"integer_expression\",\n    \"named\": true\n  },\n  {\n    \"type\": \"let\",\n    \"named\": false\n  },\n  {\n    \"type\": \"or\",\n    \"named\": false\n  },\n  {\n    \"type\": \"path_fragment\",\n    \"named\": true\n  },\n  {\n    \"type\": \"rec\",\n    \"named\": false\n  },\n  {\n    \"type\": \"spath_expression\",\n    \"named\": true\n  },\n  {\n    \"type\": \"string_fragment\",\n    \"named\": true\n  },\n  {\n    \"type\": \"then\",\n    \"named\": false\n  },\n  {\n    \"type\": \"uri_expression\",\n    \"named\": true\n  },\n  {\n    \"type\": \"with\",\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.