pub const NODE_TYPES: &'static str = "[\n  {\n    \"type\": \"access_call\",\n    \"named\": true,\n    \"fields\": {\n      \"key\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"access_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"alias\",\n            \"named\": true\n          },\n          {\n            \"type\": \"anonymous_function\",\n            \"named\": true\n          },\n          {\n            \"type\": \"atom\",\n            \"named\": true\n          },\n          {\n            \"type\": \"binary_operator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"bitstring\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"char\",\n            \"named\": true\n          },\n          {\n            \"type\": \"charlist\",\n            \"named\": true\n          },\n          {\n            \"type\": \"dot\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"integer\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list\",\n            \"named\": true\n          },\n          {\n            \"type\": \"map\",\n            \"named\": true\n          },\n          {\n            \"type\": \"nil\",\n            \"named\": true\n          },\n          {\n            \"type\": \"operator_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"quoted_atom\",\n            \"named\": true\n          },\n          {\n            \"type\": \"sigil\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tuple\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_operator\",\n            \"named\": true\n          }\n        ]\n      },\n      \"target\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"access_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"alias\",\n            \"named\": true\n          },\n          {\n            \"type\": \"anonymous_function\",\n            \"named\": true\n          },\n          {\n            \"type\": \"atom\",\n            \"named\": true\n          },\n          {\n            \"type\": \"binary_operator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"bitstring\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"char\",\n            \"named\": true\n          },\n          {\n            \"type\": \"charlist\",\n            \"named\": true\n          },\n          {\n            \"type\": \"dot\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"integer\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list\",\n            \"named\": true\n          },\n          {\n            \"type\": \"map\",\n            \"named\": true\n          },\n          {\n            \"type\": \"nil\",\n            \"named\": true\n          },\n          {\n            \"type\": \"operator_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"quoted_atom\",\n            \"named\": true\n          },\n          {\n            \"type\": \"sigil\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tuple\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_operator\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"after_block\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"access_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"alias\",\n          \"named\": true\n        },\n        {\n          \"type\": \"anonymous_function\",\n          \"named\": true\n        },\n        {\n          \"type\": \"atom\",\n          \"named\": true\n        },\n        {\n          \"type\": \"binary_operator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"bitstring\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"boolean\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"char\",\n          \"named\": true\n        },\n        {\n          \"type\": \"charlist\",\n          \"named\": true\n        },\n        {\n          \"type\": \"dot\",\n          \"named\": true\n        },\n        {\n          \"type\": \"float\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"integer\",\n          \"named\": true\n        },\n        {\n          \"type\": \"list\",\n          \"named\": true\n        },\n        {\n          \"type\": \"map\",\n          \"named\": true\n        },\n        {\n          \"type\": \"nil\",\n          \"named\": true\n        },\n        {\n          \"type\": \"operator_identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"quoted_atom\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sigil\",\n          \"named\": true\n        },\n        {\n          \"type\": \"stab_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tuple\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unary_operator\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"anonymous_function\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"stab_clause\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"arguments\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"access_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"alias\",\n          \"named\": true\n        },\n        {\n          \"type\": \"anonymous_function\",\n          \"named\": true\n        },\n        {\n          \"type\": \"atom\",\n          \"named\": true\n        },\n        {\n          \"type\": \"binary_operator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"bitstring\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"boolean\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"char\",\n          \"named\": true\n        },\n        {\n          \"type\": \"charlist\",\n          \"named\": true\n        },\n        {\n          \"type\": \"dot\",\n          \"named\": true\n        },\n        {\n          \"type\": \"float\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"integer\",\n          \"named\": true\n        },\n        {\n          \"type\": \"keywords\",\n          \"named\": true\n        },\n        {\n          \"type\": \"list\",\n          \"named\": true\n        },\n        {\n          \"type\": \"map\",\n          \"named\": true\n        },\n        {\n          \"type\": \"nil\",\n          \"named\": true\n        },\n        {\n          \"type\": \"operator_identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"quoted_atom\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sigil\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tuple\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unary_operator\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"binary_operator\",\n    \"named\": true,\n    \"fields\": {\n      \"left\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"access_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"alias\",\n            \"named\": true\n          },\n          {\n            \"type\": \"anonymous_function\",\n            \"named\": true\n          },\n          {\n            \"type\": \"arguments\",\n            \"named\": true\n          },\n          {\n            \"type\": \"atom\",\n            \"named\": true\n          },\n          {\n            \"type\": \"binary_operator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"bitstring\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"char\",\n            \"named\": true\n          },\n          {\n            \"type\": \"charlist\",\n            \"named\": true\n          },\n          {\n            \"type\": \"dot\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"integer\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list\",\n            \"named\": true\n          },\n          {\n            \"type\": \"map\",\n            \"named\": true\n          },\n          {\n            \"type\": \"nil\",\n            \"named\": true\n          },\n          {\n            \"type\": \"operator_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"quoted_atom\",\n            \"named\": true\n          },\n          {\n            \"type\": \"sigil\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tuple\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_operator\",\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            \"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\": \"and\",\n            \"named\": false\n          },\n          {\n            \"type\": \"in\",\n            \"named\": false\n          },\n          {\n            \"type\": \"not in\",\n            \"named\": false\n          },\n          {\n            \"type\": \"or\",\n            \"named\": false\n          },\n          {\n            \"type\": \"when\",\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\": \"access_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"alias\",\n            \"named\": true\n          },\n          {\n            \"type\": \"anonymous_function\",\n            \"named\": true\n          },\n          {\n            \"type\": \"atom\",\n            \"named\": true\n          },\n          {\n            \"type\": \"binary_operator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"bitstring\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"char\",\n            \"named\": true\n          },\n          {\n            \"type\": \"charlist\",\n            \"named\": true\n          },\n          {\n            \"type\": \"dot\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"integer\",\n            \"named\": true\n          },\n          {\n            \"type\": \"keywords\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list\",\n            \"named\": true\n          },\n          {\n            \"type\": \"map\",\n            \"named\": true\n          },\n          {\n            \"type\": \"nil\",\n            \"named\": true\n          },\n          {\n            \"type\": \"operator_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"quoted_atom\",\n            \"named\": true\n          },\n          {\n            \"type\": \"sigil\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tuple\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_operator\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"bitstring\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"access_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"alias\",\n          \"named\": true\n        },\n        {\n          \"type\": \"anonymous_function\",\n          \"named\": true\n        },\n        {\n          \"type\": \"atom\",\n          \"named\": true\n        },\n        {\n          \"type\": \"binary_operator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"bitstring\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"boolean\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"char\",\n          \"named\": true\n        },\n        {\n          \"type\": \"charlist\",\n          \"named\": true\n        },\n        {\n          \"type\": \"dot\",\n          \"named\": true\n        },\n        {\n          \"type\": \"float\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"integer\",\n          \"named\": true\n        },\n        {\n          \"type\": \"keywords\",\n          \"named\": true\n        },\n        {\n          \"type\": \"list\",\n          \"named\": true\n        },\n        {\n          \"type\": \"map\",\n          \"named\": true\n        },\n        {\n          \"type\": \"nil\",\n          \"named\": true\n        },\n        {\n          \"type\": \"operator_identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"quoted_atom\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sigil\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tuple\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unary_operator\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"block\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"access_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"alias\",\n          \"named\": true\n        },\n        {\n          \"type\": \"anonymous_function\",\n          \"named\": true\n        },\n        {\n          \"type\": \"atom\",\n          \"named\": true\n        },\n        {\n          \"type\": \"binary_operator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"bitstring\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"boolean\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"char\",\n          \"named\": true\n        },\n        {\n          \"type\": \"charlist\",\n          \"named\": true\n        },\n        {\n          \"type\": \"dot\",\n          \"named\": true\n        },\n        {\n          \"type\": \"float\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"integer\",\n          \"named\": true\n        },\n        {\n          \"type\": \"list\",\n          \"named\": true\n        },\n        {\n          \"type\": \"map\",\n          \"named\": true\n        },\n        {\n          \"type\": \"nil\",\n          \"named\": true\n        },\n        {\n          \"type\": \"operator_identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"quoted_atom\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sigil\",\n          \"named\": true\n        },\n        {\n          \"type\": \"stab_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tuple\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unary_operator\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"body\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"access_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"alias\",\n          \"named\": true\n        },\n        {\n          \"type\": \"anonymous_function\",\n          \"named\": true\n        },\n        {\n          \"type\": \"atom\",\n          \"named\": true\n        },\n        {\n          \"type\": \"binary_operator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"bitstring\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"boolean\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"char\",\n          \"named\": true\n        },\n        {\n          \"type\": \"charlist\",\n          \"named\": true\n        },\n        {\n          \"type\": \"dot\",\n          \"named\": true\n        },\n        {\n          \"type\": \"float\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"integer\",\n          \"named\": true\n        },\n        {\n          \"type\": \"list\",\n          \"named\": true\n        },\n        {\n          \"type\": \"map\",\n          \"named\": true\n        },\n        {\n          \"type\": \"nil\",\n          \"named\": true\n        },\n        {\n          \"type\": \"operator_identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"quoted_atom\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sigil\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tuple\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unary_operator\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"boolean\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"call\",\n    \"named\": true,\n    \"fields\": {\n      \"target\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"dot\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"arguments\",\n          \"named\": true\n        },\n        {\n          \"type\": \"do_block\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"catch_block\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"access_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"alias\",\n          \"named\": true\n        },\n        {\n          \"type\": \"anonymous_function\",\n          \"named\": true\n        },\n        {\n          \"type\": \"atom\",\n          \"named\": true\n        },\n        {\n          \"type\": \"binary_operator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"bitstring\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"boolean\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"char\",\n          \"named\": true\n        },\n        {\n          \"type\": \"charlist\",\n          \"named\": true\n        },\n        {\n          \"type\": \"dot\",\n          \"named\": true\n        },\n        {\n          \"type\": \"float\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"integer\",\n          \"named\": true\n        },\n        {\n          \"type\": \"list\",\n          \"named\": true\n        },\n        {\n          \"type\": \"map\",\n          \"named\": true\n        },\n        {\n          \"type\": \"nil\",\n          \"named\": true\n        },\n        {\n          \"type\": \"operator_identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"quoted_atom\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sigil\",\n          \"named\": true\n        },\n        {\n          \"type\": \"stab_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tuple\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unary_operator\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"charlist\",\n    \"named\": true,\n    \"fields\": {\n      \"quoted_end\": {\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      \"quoted_start\": {\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\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"escape_sequence\",\n          \"named\": true\n        },\n        {\n          \"type\": \"interpolation\",\n          \"named\": true\n        },\n        {\n          \"type\": \"quoted_content\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"do_block\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"access_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"after_block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"alias\",\n          \"named\": true\n        },\n        {\n          \"type\": \"anonymous_function\",\n          \"named\": true\n        },\n        {\n          \"type\": \"atom\",\n          \"named\": true\n        },\n        {\n          \"type\": \"binary_operator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"bitstring\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"boolean\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"catch_block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"char\",\n          \"named\": true\n        },\n        {\n          \"type\": \"charlist\",\n          \"named\": true\n        },\n        {\n          \"type\": \"dot\",\n          \"named\": true\n        },\n        {\n          \"type\": \"else_block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"float\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"integer\",\n          \"named\": true\n        },\n        {\n          \"type\": \"list\",\n          \"named\": true\n        },\n        {\n          \"type\": \"map\",\n          \"named\": true\n        },\n        {\n          \"type\": \"nil\",\n          \"named\": true\n        },\n        {\n          \"type\": \"operator_identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"quoted_atom\",\n          \"named\": true\n        },\n        {\n          \"type\": \"rescue_block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sigil\",\n          \"named\": true\n        },\n        {\n          \"type\": \"stab_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tuple\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unary_operator\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"dot\",\n    \"named\": true,\n    \"fields\": {\n      \"left\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"access_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"alias\",\n            \"named\": true\n          },\n          {\n            \"type\": \"anonymous_function\",\n            \"named\": true\n          },\n          {\n            \"type\": \"atom\",\n            \"named\": true\n          },\n          {\n            \"type\": \"binary_operator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"bitstring\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"char\",\n            \"named\": true\n          },\n          {\n            \"type\": \"charlist\",\n            \"named\": true\n          },\n          {\n            \"type\": \"dot\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"integer\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list\",\n            \"named\": true\n          },\n          {\n            \"type\": \"map\",\n            \"named\": true\n          },\n          {\n            \"type\": \"nil\",\n            \"named\": true\n          },\n          {\n            \"type\": \"operator_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"quoted_atom\",\n            \"named\": true\n          },\n          {\n            \"type\": \"sigil\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tuple\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_operator\",\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      \"right\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"alias\",\n            \"named\": true\n          },\n          {\n            \"type\": \"charlist\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"operator_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tuple\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"else_block\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"access_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"alias\",\n          \"named\": true\n        },\n        {\n          \"type\": \"anonymous_function\",\n          \"named\": true\n        },\n        {\n          \"type\": \"atom\",\n          \"named\": true\n        },\n        {\n          \"type\": \"binary_operator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"bitstring\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"boolean\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"char\",\n          \"named\": true\n        },\n        {\n          \"type\": \"charlist\",\n          \"named\": true\n        },\n        {\n          \"type\": \"dot\",\n          \"named\": true\n        },\n        {\n          \"type\": \"float\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"integer\",\n          \"named\": true\n        },\n        {\n          \"type\": \"list\",\n          \"named\": true\n        },\n        {\n          \"type\": \"map\",\n          \"named\": true\n        },\n        {\n          \"type\": \"nil\",\n          \"named\": true\n        },\n        {\n          \"type\": \"operator_identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"quoted_atom\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sigil\",\n          \"named\": true\n        },\n        {\n          \"type\": \"stab_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tuple\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unary_operator\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"identifier\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"interpolation\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"access_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"alias\",\n          \"named\": true\n        },\n        {\n          \"type\": \"anonymous_function\",\n          \"named\": true\n        },\n        {\n          \"type\": \"atom\",\n          \"named\": true\n        },\n        {\n          \"type\": \"binary_operator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"bitstring\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"boolean\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"char\",\n          \"named\": true\n        },\n        {\n          \"type\": \"charlist\",\n          \"named\": true\n        },\n        {\n          \"type\": \"dot\",\n          \"named\": true\n        },\n        {\n          \"type\": \"float\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"integer\",\n          \"named\": true\n        },\n        {\n          \"type\": \"list\",\n          \"named\": true\n        },\n        {\n          \"type\": \"map\",\n          \"named\": true\n        },\n        {\n          \"type\": \"nil\",\n          \"named\": true\n        },\n        {\n          \"type\": \"operator_identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"quoted_atom\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sigil\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tuple\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unary_operator\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"keywords\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"pair\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"list\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"access_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"alias\",\n          \"named\": true\n        },\n        {\n          \"type\": \"anonymous_function\",\n          \"named\": true\n        },\n        {\n          \"type\": \"atom\",\n          \"named\": true\n        },\n        {\n          \"type\": \"binary_operator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"bitstring\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"boolean\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"char\",\n          \"named\": true\n        },\n        {\n          \"type\": \"charlist\",\n          \"named\": true\n        },\n        {\n          \"type\": \"dot\",\n          \"named\": true\n        },\n        {\n          \"type\": \"float\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"integer\",\n          \"named\": true\n        },\n        {\n          \"type\": \"keywords\",\n          \"named\": true\n        },\n        {\n          \"type\": \"list\",\n          \"named\": true\n        },\n        {\n          \"type\": \"map\",\n          \"named\": true\n        },\n        {\n          \"type\": \"nil\",\n          \"named\": true\n        },\n        {\n          \"type\": \"operator_identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"quoted_atom\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sigil\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tuple\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unary_operator\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"map\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"map_content\",\n          \"named\": true\n        },\n        {\n          \"type\": \"struct\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"map_content\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"access_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"alias\",\n          \"named\": true\n        },\n        {\n          \"type\": \"anonymous_function\",\n          \"named\": true\n        },\n        {\n          \"type\": \"atom\",\n          \"named\": true\n        },\n        {\n          \"type\": \"binary_operator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"bitstring\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"boolean\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"char\",\n          \"named\": true\n        },\n        {\n          \"type\": \"charlist\",\n          \"named\": true\n        },\n        {\n          \"type\": \"dot\",\n          \"named\": true\n        },\n        {\n          \"type\": \"float\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"integer\",\n          \"named\": true\n        },\n        {\n          \"type\": \"keywords\",\n          \"named\": true\n        },\n        {\n          \"type\": \"list\",\n          \"named\": true\n        },\n        {\n          \"type\": \"map\",\n          \"named\": true\n        },\n        {\n          \"type\": \"nil\",\n          \"named\": true\n        },\n        {\n          \"type\": \"operator_identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"quoted_atom\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sigil\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tuple\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unary_operator\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"nil\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"operator_identifier\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"pair\",\n    \"named\": true,\n    \"fields\": {\n      \"key\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"keyword\",\n            \"named\": true\n          },\n          {\n            \"type\": \"quoted_keyword\",\n            \"named\": true\n          }\n        ]\n      },\n      \"value\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"access_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"alias\",\n            \"named\": true\n          },\n          {\n            \"type\": \"anonymous_function\",\n            \"named\": true\n          },\n          {\n            \"type\": \"atom\",\n            \"named\": true\n          },\n          {\n            \"type\": \"binary_operator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"bitstring\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"char\",\n            \"named\": true\n          },\n          {\n            \"type\": \"charlist\",\n            \"named\": true\n          },\n          {\n            \"type\": \"dot\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"integer\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list\",\n            \"named\": true\n          },\n          {\n            \"type\": \"map\",\n            \"named\": true\n          },\n          {\n            \"type\": \"nil\",\n            \"named\": true\n          },\n          {\n            \"type\": \"operator_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"quoted_atom\",\n            \"named\": true\n          },\n          {\n            \"type\": \"sigil\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tuple\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_operator\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"quoted_atom\",\n    \"named\": true,\n    \"fields\": {\n      \"quoted_end\": {\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      \"quoted_start\": {\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\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"escape_sequence\",\n          \"named\": true\n        },\n        {\n          \"type\": \"interpolation\",\n          \"named\": true\n        },\n        {\n          \"type\": \"quoted_content\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"quoted_keyword\",\n    \"named\": true,\n    \"fields\": {\n      \"quoted_end\": {\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      \"quoted_start\": {\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\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"escape_sequence\",\n          \"named\": true\n        },\n        {\n          \"type\": \"interpolation\",\n          \"named\": true\n        },\n        {\n          \"type\": \"quoted_content\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"rescue_block\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"access_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"alias\",\n          \"named\": true\n        },\n        {\n          \"type\": \"anonymous_function\",\n          \"named\": true\n        },\n        {\n          \"type\": \"atom\",\n          \"named\": true\n        },\n        {\n          \"type\": \"binary_operator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"bitstring\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"boolean\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"char\",\n          \"named\": true\n        },\n        {\n          \"type\": \"charlist\",\n          \"named\": true\n        },\n        {\n          \"type\": \"dot\",\n          \"named\": true\n        },\n        {\n          \"type\": \"float\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"integer\",\n          \"named\": true\n        },\n        {\n          \"type\": \"list\",\n          \"named\": true\n        },\n        {\n          \"type\": \"map\",\n          \"named\": true\n        },\n        {\n          \"type\": \"nil\",\n          \"named\": true\n        },\n        {\n          \"type\": \"operator_identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"quoted_atom\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sigil\",\n          \"named\": true\n        },\n        {\n          \"type\": \"stab_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tuple\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unary_operator\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"sigil\",\n    \"named\": true,\n    \"fields\": {\n      \"quoted_end\": {\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      },\n      \"quoted_start\": {\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      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"escape_sequence\",\n          \"named\": true\n        },\n        {\n          \"type\": \"interpolation\",\n          \"named\": true\n        },\n        {\n          \"type\": \"quoted_content\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sigil_modifiers\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sigil_name\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"source\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"access_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"alias\",\n          \"named\": true\n        },\n        {\n          \"type\": \"anonymous_function\",\n          \"named\": true\n        },\n        {\n          \"type\": \"atom\",\n          \"named\": true\n        },\n        {\n          \"type\": \"binary_operator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"bitstring\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"boolean\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"char\",\n          \"named\": true\n        },\n        {\n          \"type\": \"charlist\",\n          \"named\": true\n        },\n        {\n          \"type\": \"dot\",\n          \"named\": true\n        },\n        {\n          \"type\": \"float\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"integer\",\n          \"named\": true\n        },\n        {\n          \"type\": \"list\",\n          \"named\": true\n        },\n        {\n          \"type\": \"map\",\n          \"named\": true\n        },\n        {\n          \"type\": \"nil\",\n          \"named\": true\n        },\n        {\n          \"type\": \"operator_identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"quoted_atom\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sigil\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tuple\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unary_operator\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"stab_clause\",\n    \"named\": true,\n    \"fields\": {\n      \"left\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"arguments\",\n            \"named\": true\n          },\n          {\n            \"type\": \"binary_operator\",\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      \"right\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"body\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"string\",\n    \"named\": true,\n    \"fields\": {\n      \"quoted_end\": {\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      \"quoted_start\": {\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\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"escape_sequence\",\n          \"named\": true\n        },\n        {\n          \"type\": \"interpolation\",\n          \"named\": true\n        },\n        {\n          \"type\": \"quoted_content\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"struct\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"alias\",\n          \"named\": true\n        },\n        {\n          \"type\": \"atom\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"dot\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"quoted_atom\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unary_operator\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"tuple\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"access_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"alias\",\n          \"named\": true\n        },\n        {\n          \"type\": \"anonymous_function\",\n          \"named\": true\n        },\n        {\n          \"type\": \"atom\",\n          \"named\": true\n        },\n        {\n          \"type\": \"binary_operator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"bitstring\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"boolean\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"char\",\n          \"named\": true\n        },\n        {\n          \"type\": \"charlist\",\n          \"named\": true\n        },\n        {\n          \"type\": \"dot\",\n          \"named\": true\n        },\n        {\n          \"type\": \"float\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"integer\",\n          \"named\": true\n        },\n        {\n          \"type\": \"keywords\",\n          \"named\": true\n        },\n        {\n          \"type\": \"list\",\n          \"named\": true\n        },\n        {\n          \"type\": \"map\",\n          \"named\": true\n        },\n        {\n          \"type\": \"nil\",\n          \"named\": true\n        },\n        {\n          \"type\": \"operator_identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"quoted_atom\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sigil\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tuple\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unary_operator\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"unary_operator\",\n    \"named\": true,\n    \"fields\": {\n      \"operand\": {\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\": \"access_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"alias\",\n            \"named\": true\n          },\n          {\n            \"type\": \"anonymous_function\",\n            \"named\": true\n          },\n          {\n            \"type\": \"atom\",\n            \"named\": true\n          },\n          {\n            \"type\": \"binary_operator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"bitstring\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"char\",\n            \"named\": true\n          },\n          {\n            \"type\": \"charlist\",\n            \"named\": true\n          },\n          {\n            \"type\": \"dot\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"integer\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list\",\n            \"named\": true\n          },\n          {\n            \"type\": \"map\",\n            \"named\": true\n          },\n          {\n            \"type\": \"nil\",\n            \"named\": true\n          },\n          {\n            \"type\": \"operator_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"quoted_atom\",\n            \"named\": true\n          },\n          {\n            \"type\": \"sigil\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tuple\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_operator\",\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\": \"not\",\n            \"named\": false\n          },\n          {\n            \"type\": \"~~~\",\n            \"named\": false\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\": \":\",\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\": \"after\",\n    \"named\": false\n  },\n  {\n    \"type\": \"alias\",\n    \"named\": true\n  },\n  {\n    \"type\": \"and\",\n    \"named\": false\n  },\n  {\n    \"type\": \"atom\",\n    \"named\": true\n  },\n  {\n    \"type\": \"catch\",\n    \"named\": false\n  },\n  {\n    \"type\": \"char\",\n    \"named\": true\n  },\n  {\n    \"type\": \"comment\",\n    \"named\": true\n  },\n  {\n    \"type\": \"do\",\n    \"named\": false\n  },\n  {\n    \"type\": \"else\",\n    \"named\": false\n  },\n  {\n    \"type\": \"end\",\n    \"named\": false\n  },\n  {\n    \"type\": \"escape_sequence\",\n    \"named\": true\n  },\n  {\n    \"type\": \"false\",\n    \"named\": false\n  },\n  {\n    \"type\": \"float\",\n    \"named\": true\n  },\n  {\n    \"type\": \"fn\",\n    \"named\": false\n  },\n  {\n    \"type\": \"in\",\n    \"named\": false\n  },\n  {\n    \"type\": \"integer\",\n    \"named\": true\n  },\n  {\n    \"type\": \"keyword\",\n    \"named\": true\n  },\n  {\n    \"type\": \"nil\",\n    \"named\": false\n  },\n  {\n    \"type\": \"not\",\n    \"named\": false\n  },\n  {\n    \"type\": \"not in\",\n    \"named\": false\n  },\n  {\n    \"type\": \"or\",\n    \"named\": false\n  },\n  {\n    \"type\": \"quoted_content\",\n    \"named\": true\n  },\n  {\n    \"type\": \"rescue\",\n    \"named\": false\n  },\n  {\n    \"type\": \"sigil_modifiers\",\n    \"named\": true\n  },\n  {\n    \"type\": \"sigil_name\",\n    \"named\": true\n  },\n  {\n    \"type\": \"true\",\n    \"named\": false\n  },\n  {\n    \"type\": \"when\",\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]";
Expand description

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