NODE_TYPES

Constant NODE_TYPES 

Source
pub const NODE_TYPES: &str = "[\n  {\n    \"type\": \"(\",\n    \"named\": false,\n    \"fields\": {}\n  },\n  {\n    \"type\": \")\",\n    \"named\": false,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"add\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"add\",\n          \"named\": true\n        },\n        {\n          \"type\": \"and\",\n          \"named\": true\n        },\n        {\n          \"type\": \"assign\",\n          \"named\": true\n        },\n        {\n          \"type\": \"auto\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"bool\",\n          \"named\": true\n        },\n        {\n          \"type\": \"branch\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"cmp\",\n          \"named\": true\n        },\n        {\n          \"type\": \"content\",\n          \"named\": true\n        },\n        {\n          \"type\": \"context\",\n          \"named\": true\n        },\n        {\n          \"type\": \"div\",\n          \"named\": true\n        },\n        {\n          \"type\": \"elude\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field\",\n          \"named\": true\n        },\n        {\n          \"type\": \"flow\",\n          \"named\": true\n        },\n        {\n          \"type\": \"for\",\n          \"named\": true\n        },\n        {\n          \"type\": \"group\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ident\",\n          \"named\": true\n        },\n        {\n          \"type\": \"import\",\n          \"named\": true\n        },\n        {\n          \"type\": \"in\",\n          \"named\": true\n        },\n        {\n          \"type\": \"include\",\n          \"named\": true\n        },\n        {\n          \"type\": \"label\",\n          \"named\": true\n        },\n        {\n          \"type\": \"lambda\",\n          \"named\": true\n        },\n        {\n          \"type\": \"let\",\n          \"named\": true\n        },\n        {\n          \"type\": \"math\",\n          \"named\": true\n        },\n        {\n          \"type\": \"mul\",\n          \"named\": true\n        },\n        {\n          \"type\": \"none\",\n          \"named\": true\n        },\n        {\n          \"type\": \"not\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number\",\n          \"named\": true\n        },\n        {\n          \"type\": \"or\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_blck\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_span\",\n          \"named\": true\n        },\n        {\n          \"type\": \"return\",\n          \"named\": true\n        },\n        {\n          \"type\": \"set\",\n          \"named\": true\n        },\n        {\n          \"type\": \"show\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sign\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sub\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tagged\",\n          \"named\": true\n        },\n        {\n          \"type\": \"while\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"align\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"and\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"add\",\n          \"named\": true\n        },\n        {\n          \"type\": \"and\",\n          \"named\": true\n        },\n        {\n          \"type\": \"assign\",\n          \"named\": true\n        },\n        {\n          \"type\": \"auto\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"bool\",\n          \"named\": true\n        },\n        {\n          \"type\": \"branch\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"cmp\",\n          \"named\": true\n        },\n        {\n          \"type\": \"content\",\n          \"named\": true\n        },\n        {\n          \"type\": \"context\",\n          \"named\": true\n        },\n        {\n          \"type\": \"div\",\n          \"named\": true\n        },\n        {\n          \"type\": \"elude\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field\",\n          \"named\": true\n        },\n        {\n          \"type\": \"flow\",\n          \"named\": true\n        },\n        {\n          \"type\": \"for\",\n          \"named\": true\n        },\n        {\n          \"type\": \"group\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ident\",\n          \"named\": true\n        },\n        {\n          \"type\": \"import\",\n          \"named\": true\n        },\n        {\n          \"type\": \"in\",\n          \"named\": true\n        },\n        {\n          \"type\": \"include\",\n          \"named\": true\n        },\n        {\n          \"type\": \"label\",\n          \"named\": true\n        },\n        {\n          \"type\": \"lambda\",\n          \"named\": true\n        },\n        {\n          \"type\": \"let\",\n          \"named\": true\n        },\n        {\n          \"type\": \"math\",\n          \"named\": true\n        },\n        {\n          \"type\": \"mul\",\n          \"named\": true\n        },\n        {\n          \"type\": \"none\",\n          \"named\": true\n        },\n        {\n          \"type\": \"not\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number\",\n          \"named\": true\n        },\n        {\n          \"type\": \"or\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_blck\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_span\",\n          \"named\": true\n        },\n        {\n          \"type\": \"return\",\n          \"named\": true\n        },\n        {\n          \"type\": \"set\",\n          \"named\": true\n        },\n        {\n          \"type\": \"show\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sign\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sub\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tagged\",\n          \"named\": true\n        },\n        {\n          \"type\": \"while\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"apply\",\n    \"named\": true,\n    \"fields\": {\n      \"item\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"escape\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ident\",\n            \"named\": true\n          },\n          {\n            \"type\": \"letter\",\n            \"named\": true\n          },\n          {\n            \"type\": \"shorthand\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"formula\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"as\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"ident\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"assign\",\n    \"named\": true,\n    \"fields\": {\n      \"pattern\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"add\",\n            \"named\": true\n          },\n          {\n            \"type\": \"and\",\n            \"named\": true\n          },\n          {\n            \"type\": \"assign\",\n            \"named\": true\n          },\n          {\n            \"type\": \"auto\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"bool\",\n            \"named\": true\n          },\n          {\n            \"type\": \"branch\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"cmp\",\n            \"named\": true\n          },\n          {\n            \"type\": \"content\",\n            \"named\": true\n          },\n          {\n            \"type\": \"context\",\n            \"named\": true\n          },\n          {\n            \"type\": \"div\",\n            \"named\": true\n          },\n          {\n            \"type\": \"elude\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field\",\n            \"named\": true\n          },\n          {\n            \"type\": \"flow\",\n            \"named\": true\n          },\n          {\n            \"type\": \"for\",\n            \"named\": true\n          },\n          {\n            \"type\": \"group\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ident\",\n            \"named\": true\n          },\n          {\n            \"type\": \"import\",\n            \"named\": true\n          },\n          {\n            \"type\": \"in\",\n            \"named\": true\n          },\n          {\n            \"type\": \"include\",\n            \"named\": true\n          },\n          {\n            \"type\": \"label\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let\",\n            \"named\": true\n          },\n          {\n            \"type\": \"math\",\n            \"named\": true\n          },\n          {\n            \"type\": \"mul\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none\",\n            \"named\": true\n          },\n          {\n            \"type\": \"not\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number\",\n            \"named\": true\n          },\n          {\n            \"type\": \"or\",\n            \"named\": true\n          },\n          {\n            \"type\": \"raw_blck\",\n            \"named\": true\n          },\n          {\n            \"type\": \"raw_span\",\n            \"named\": true\n          },\n          {\n            \"type\": \"return\",\n            \"named\": true\n          },\n          {\n            \"type\": \"set\",\n            \"named\": true\n          },\n          {\n            \"type\": \"show\",\n            \"named\": true\n          },\n          {\n            \"type\": \"sign\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"sub\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tagged\",\n            \"named\": true\n          },\n          {\n            \"type\": \"while\",\n            \"named\": true\n          }\n        ]\n      },\n      \"value\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"add\",\n            \"named\": true\n          },\n          {\n            \"type\": \"and\",\n            \"named\": true\n          },\n          {\n            \"type\": \"assign\",\n            \"named\": true\n          },\n          {\n            \"type\": \"auto\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"bool\",\n            \"named\": true\n          },\n          {\n            \"type\": \"branch\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"cmp\",\n            \"named\": true\n          },\n          {\n            \"type\": \"content\",\n            \"named\": true\n          },\n          {\n            \"type\": \"context\",\n            \"named\": true\n          },\n          {\n            \"type\": \"div\",\n            \"named\": true\n          },\n          {\n            \"type\": \"elude\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field\",\n            \"named\": true\n          },\n          {\n            \"type\": \"flow\",\n            \"named\": true\n          },\n          {\n            \"type\": \"for\",\n            \"named\": true\n          },\n          {\n            \"type\": \"group\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ident\",\n            \"named\": true\n          },\n          {\n            \"type\": \"import\",\n            \"named\": true\n          },\n          {\n            \"type\": \"in\",\n            \"named\": true\n          },\n          {\n            \"type\": \"include\",\n            \"named\": true\n          },\n          {\n            \"type\": \"label\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let\",\n            \"named\": true\n          },\n          {\n            \"type\": \"math\",\n            \"named\": true\n          },\n          {\n            \"type\": \"mul\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none\",\n            \"named\": true\n          },\n          {\n            \"type\": \"not\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number\",\n            \"named\": true\n          },\n          {\n            \"type\": \"or\",\n            \"named\": true\n          },\n          {\n            \"type\": \"raw_blck\",\n            \"named\": true\n          },\n          {\n            \"type\": \"raw_span\",\n            \"named\": true\n          },\n          {\n            \"type\": \"return\",\n            \"named\": true\n          },\n          {\n            \"type\": \"set\",\n            \"named\": true\n          },\n          {\n            \"type\": \"show\",\n            \"named\": true\n          },\n          {\n            \"type\": \"sign\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"sub\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tagged\",\n            \"named\": true\n          },\n          {\n            \"type\": \"while\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"attach\",\n    \"named\": true,\n    \"fields\": {\n      \"sub\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"align\",\n            \"named\": true\n          },\n          {\n            \"type\": \"apply\",\n            \"named\": true\n          },\n          {\n            \"type\": \"attach\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"code\",\n            \"named\": true\n          },\n          {\n            \"type\": \"escape\",\n            \"named\": true\n          },\n          {\n            \"type\": \"fac\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field\",\n            \"named\": true\n          },\n          {\n            \"type\": \"fraction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"group\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ident\",\n            \"named\": true\n          },\n          {\n            \"type\": \"letter\",\n            \"named\": true\n          },\n          {\n            \"type\": \"linebreak\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number\",\n            \"named\": true\n          },\n          {\n            \"type\": \"prime\",\n            \"named\": true\n          },\n          {\n            \"type\": \"root\",\n            \"named\": true\n          },\n          {\n            \"type\": \"shorthand\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"symbol\",\n            \"named\": true\n          }\n        ]\n      },\n      \"sup\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"align\",\n            \"named\": true\n          },\n          {\n            \"type\": \"apply\",\n            \"named\": true\n          },\n          {\n            \"type\": \"attach\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"code\",\n            \"named\": true\n          },\n          {\n            \"type\": \"escape\",\n            \"named\": true\n          },\n          {\n            \"type\": \"fac\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field\",\n            \"named\": true\n          },\n          {\n            \"type\": \"fraction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"group\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ident\",\n            \"named\": true\n          },\n          {\n            \"type\": \"letter\",\n            \"named\": true\n          },\n          {\n            \"type\": \"linebreak\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number\",\n            \"named\": true\n          },\n          {\n            \"type\": \"prime\",\n            \"named\": true\n          },\n          {\n            \"type\": \"root\",\n            \"named\": true\n          },\n          {\n            \"type\": \"shorthand\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"symbol\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"align\",\n          \"named\": true\n        },\n        {\n          \"type\": \"apply\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attach\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"code\",\n          \"named\": true\n        },\n        {\n          \"type\": \"escape\",\n          \"named\": true\n        },\n        {\n          \"type\": \"fac\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field\",\n          \"named\": true\n        },\n        {\n          \"type\": \"fraction\",\n          \"named\": true\n        },\n        {\n          \"type\": \"group\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ident\",\n          \"named\": true\n        },\n        {\n          \"type\": \"letter\",\n          \"named\": true\n        },\n        {\n          \"type\": \"linebreak\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number\",\n          \"named\": true\n        },\n        {\n          \"type\": \"prime\",\n          \"named\": true\n        },\n        {\n          \"type\": \"root\",\n          \"named\": true\n        },\n        {\n          \"type\": \"shorthand\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"symbol\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"binding\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"as\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ident\",\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\": \"add\",\n          \"named\": true\n        },\n        {\n          \"type\": \"and\",\n          \"named\": true\n        },\n        {\n          \"type\": \"assign\",\n          \"named\": true\n        },\n        {\n          \"type\": \"auto\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"bool\",\n          \"named\": true\n        },\n        {\n          \"type\": \"branch\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"cmp\",\n          \"named\": true\n        },\n        {\n          \"type\": \"content\",\n          \"named\": true\n        },\n        {\n          \"type\": \"context\",\n          \"named\": true\n        },\n        {\n          \"type\": \"div\",\n          \"named\": true\n        },\n        {\n          \"type\": \"elude\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field\",\n          \"named\": true\n        },\n        {\n          \"type\": \"flow\",\n          \"named\": true\n        },\n        {\n          \"type\": \"for\",\n          \"named\": true\n        },\n        {\n          \"type\": \"group\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ident\",\n          \"named\": true\n        },\n        {\n          \"type\": \"import\",\n          \"named\": true\n        },\n        {\n          \"type\": \"in\",\n          \"named\": true\n        },\n        {\n          \"type\": \"include\",\n          \"named\": true\n        },\n        {\n          \"type\": \"label\",\n          \"named\": true\n        },\n        {\n          \"type\": \"lambda\",\n          \"named\": true\n        },\n        {\n          \"type\": \"let\",\n          \"named\": true\n        },\n        {\n          \"type\": \"math\",\n          \"named\": true\n        },\n        {\n          \"type\": \"mul\",\n          \"named\": true\n        },\n        {\n          \"type\": \"none\",\n          \"named\": true\n        },\n        {\n          \"type\": \"not\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number\",\n          \"named\": true\n        },\n        {\n          \"type\": \"or\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_blck\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_span\",\n          \"named\": true\n        },\n        {\n          \"type\": \"return\",\n          \"named\": true\n        },\n        {\n          \"type\": \"set\",\n          \"named\": true\n        },\n        {\n          \"type\": \"show\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sign\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sub\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tagged\",\n          \"named\": true\n        },\n        {\n          \"type\": \"while\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"bool\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"branch\",\n    \"named\": true,\n    \"fields\": {\n      \"condition\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"add\",\n            \"named\": true\n          },\n          {\n            \"type\": \"and\",\n            \"named\": true\n          },\n          {\n            \"type\": \"assign\",\n            \"named\": true\n          },\n          {\n            \"type\": \"auto\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"bool\",\n            \"named\": true\n          },\n          {\n            \"type\": \"branch\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"cmp\",\n            \"named\": true\n          },\n          {\n            \"type\": \"content\",\n            \"named\": true\n          },\n          {\n            \"type\": \"context\",\n            \"named\": true\n          },\n          {\n            \"type\": \"div\",\n            \"named\": true\n          },\n          {\n            \"type\": \"elude\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field\",\n            \"named\": true\n          },\n          {\n            \"type\": \"flow\",\n            \"named\": true\n          },\n          {\n            \"type\": \"for\",\n            \"named\": true\n          },\n          {\n            \"type\": \"group\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ident\",\n            \"named\": true\n          },\n          {\n            \"type\": \"import\",\n            \"named\": true\n          },\n          {\n            \"type\": \"in\",\n            \"named\": true\n          },\n          {\n            \"type\": \"include\",\n            \"named\": true\n          },\n          {\n            \"type\": \"label\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let\",\n            \"named\": true\n          },\n          {\n            \"type\": \"math\",\n            \"named\": true\n          },\n          {\n            \"type\": \"mul\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none\",\n            \"named\": true\n          },\n          {\n            \"type\": \"not\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number\",\n            \"named\": true\n          },\n          {\n            \"type\": \"or\",\n            \"named\": true\n          },\n          {\n            \"type\": \"raw_blck\",\n            \"named\": true\n          },\n          {\n            \"type\": \"raw_span\",\n            \"named\": true\n          },\n          {\n            \"type\": \"return\",\n            \"named\": true\n          },\n          {\n            \"type\": \"set\",\n            \"named\": true\n          },\n          {\n            \"type\": \"show\",\n            \"named\": true\n          },\n          {\n            \"type\": \"sign\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"sub\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tagged\",\n            \"named\": true\n          },\n          {\n            \"type\": \"while\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"branch\",\n          \"named\": true\n        },\n        {\n          \"type\": \"comment\",\n          \"named\": true\n        },\n        {\n          \"type\": \"content\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"call\",\n    \"named\": true,\n    \"fields\": {\n      \"item\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"add\",\n            \"named\": true\n          },\n          {\n            \"type\": \"and\",\n            \"named\": true\n          },\n          {\n            \"type\": \"assign\",\n            \"named\": true\n          },\n          {\n            \"type\": \"auto\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"bool\",\n            \"named\": true\n          },\n          {\n            \"type\": \"branch\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"cmp\",\n            \"named\": true\n          },\n          {\n            \"type\": \"content\",\n            \"named\": true\n          },\n          {\n            \"type\": \"context\",\n            \"named\": true\n          },\n          {\n            \"type\": \"div\",\n            \"named\": true\n          },\n          {\n            \"type\": \"elude\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field\",\n            \"named\": true\n          },\n          {\n            \"type\": \"flow\",\n            \"named\": true\n          },\n          {\n            \"type\": \"for\",\n            \"named\": true\n          },\n          {\n            \"type\": \"group\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ident\",\n            \"named\": true\n          },\n          {\n            \"type\": \"import\",\n            \"named\": true\n          },\n          {\n            \"type\": \"in\",\n            \"named\": true\n          },\n          {\n            \"type\": \"include\",\n            \"named\": true\n          },\n          {\n            \"type\": \"label\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let\",\n            \"named\": true\n          },\n          {\n            \"type\": \"math\",\n            \"named\": true\n          },\n          {\n            \"type\": \"mul\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none\",\n            \"named\": true\n          },\n          {\n            \"type\": \"not\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number\",\n            \"named\": true\n          },\n          {\n            \"type\": \"or\",\n            \"named\": true\n          },\n          {\n            \"type\": \"raw_blck\",\n            \"named\": true\n          },\n          {\n            \"type\": \"raw_span\",\n            \"named\": true\n          },\n          {\n            \"type\": \"return\",\n            \"named\": true\n          },\n          {\n            \"type\": \"set\",\n            \"named\": true\n          },\n          {\n            \"type\": \"show\",\n            \"named\": true\n          },\n          {\n            \"type\": \"sign\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"sub\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tagged\",\n            \"named\": true\n          },\n          {\n            \"type\": \"while\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"content\",\n          \"named\": true\n        },\n        {\n          \"type\": \"formula\",\n          \"named\": true\n        },\n        {\n          \"type\": \"group\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tagged\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"cmp\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"add\",\n          \"named\": true\n        },\n        {\n          \"type\": \"and\",\n          \"named\": true\n        },\n        {\n          \"type\": \"assign\",\n          \"named\": true\n        },\n        {\n          \"type\": \"auto\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"bool\",\n          \"named\": true\n        },\n        {\n          \"type\": \"branch\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"cmp\",\n          \"named\": true\n        },\n        {\n          \"type\": \"content\",\n          \"named\": true\n        },\n        {\n          \"type\": \"context\",\n          \"named\": true\n        },\n        {\n          \"type\": \"div\",\n          \"named\": true\n        },\n        {\n          \"type\": \"elude\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field\",\n          \"named\": true\n        },\n        {\n          \"type\": \"flow\",\n          \"named\": true\n        },\n        {\n          \"type\": \"for\",\n          \"named\": true\n        },\n        {\n          \"type\": \"group\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ident\",\n          \"named\": true\n        },\n        {\n          \"type\": \"import\",\n          \"named\": true\n        },\n        {\n          \"type\": \"in\",\n          \"named\": true\n        },\n        {\n          \"type\": \"include\",\n          \"named\": true\n        },\n        {\n          \"type\": \"label\",\n          \"named\": true\n        },\n        {\n          \"type\": \"lambda\",\n          \"named\": true\n        },\n        {\n          \"type\": \"let\",\n          \"named\": true\n        },\n        {\n          \"type\": \"math\",\n          \"named\": true\n        },\n        {\n          \"type\": \"mul\",\n          \"named\": true\n        },\n        {\n          \"type\": \"none\",\n          \"named\": true\n        },\n        {\n          \"type\": \"not\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number\",\n          \"named\": true\n        },\n        {\n          \"type\": \"or\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_blck\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_span\",\n          \"named\": true\n        },\n        {\n          \"type\": \"return\",\n          \"named\": true\n        },\n        {\n          \"type\": \"set\",\n          \"named\": true\n        },\n        {\n          \"type\": \"show\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sign\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sub\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tagged\",\n          \"named\": true\n        },\n        {\n          \"type\": \"while\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"code\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"auto\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"bool\",\n          \"named\": true\n        },\n        {\n          \"type\": \"branch\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"content\",\n          \"named\": true\n        },\n        {\n          \"type\": \"context\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field\",\n          \"named\": true\n        },\n        {\n          \"type\": \"flow\",\n          \"named\": true\n        },\n        {\n          \"type\": \"for\",\n          \"named\": true\n        },\n        {\n          \"type\": \"group\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ident\",\n          \"named\": true\n        },\n        {\n          \"type\": \"import\",\n          \"named\": true\n        },\n        {\n          \"type\": \"include\",\n          \"named\": true\n        },\n        {\n          \"type\": \"label\",\n          \"named\": true\n        },\n        {\n          \"type\": \"let\",\n          \"named\": true\n        },\n        {\n          \"type\": \"math\",\n          \"named\": true\n        },\n        {\n          \"type\": \"none\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_blck\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_span\",\n          \"named\": true\n        },\n        {\n          \"type\": \"return\",\n          \"named\": true\n        },\n        {\n          \"type\": \"set\",\n          \"named\": true\n        },\n        {\n          \"type\": \"show\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"while\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"content\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"code\",\n          \"named\": true\n        },\n        {\n          \"type\": \"emph\",\n          \"named\": true\n        },\n        {\n          \"type\": \"item\",\n          \"named\": true\n        },\n        {\n          \"type\": \"label\",\n          \"named\": true\n        },\n        {\n          \"type\": \"linebreak\",\n          \"named\": true\n        },\n        {\n          \"type\": \"math\",\n          \"named\": true\n        },\n        {\n          \"type\": \"parbreak\",\n          \"named\": true\n        },\n        {\n          \"type\": \"quote\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_blck\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_span\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ref\",\n          \"named\": true\n        },\n        {\n          \"type\": \"section\",\n          \"named\": true\n        },\n        {\n          \"type\": \"shorthand\",\n          \"named\": true\n        },\n        {\n          \"type\": \"strong\",\n          \"named\": true\n        },\n        {\n          \"type\": \"term\",\n          \"named\": true\n        },\n        {\n          \"type\": \"text\",\n          \"named\": true\n        },\n        {\n          \"type\": \"url\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"context\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"add\",\n          \"named\": true\n        },\n        {\n          \"type\": \"and\",\n          \"named\": true\n        },\n        {\n          \"type\": \"assign\",\n          \"named\": true\n        },\n        {\n          \"type\": \"auto\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"bool\",\n          \"named\": true\n        },\n        {\n          \"type\": \"branch\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"cmp\",\n          \"named\": true\n        },\n        {\n          \"type\": \"content\",\n          \"named\": true\n        },\n        {\n          \"type\": \"context\",\n          \"named\": true\n        },\n        {\n          \"type\": \"div\",\n          \"named\": true\n        },\n        {\n          \"type\": \"elude\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field\",\n          \"named\": true\n        },\n        {\n          \"type\": \"flow\",\n          \"named\": true\n        },\n        {\n          \"type\": \"for\",\n          \"named\": true\n        },\n        {\n          \"type\": \"group\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ident\",\n          \"named\": true\n        },\n        {\n          \"type\": \"import\",\n          \"named\": true\n        },\n        {\n          \"type\": \"in\",\n          \"named\": true\n        },\n        {\n          \"type\": \"include\",\n          \"named\": true\n        },\n        {\n          \"type\": \"label\",\n          \"named\": true\n        },\n        {\n          \"type\": \"lambda\",\n          \"named\": true\n        },\n        {\n          \"type\": \"let\",\n          \"named\": true\n        },\n        {\n          \"type\": \"math\",\n          \"named\": true\n        },\n        {\n          \"type\": \"mul\",\n          \"named\": true\n        },\n        {\n          \"type\": \"none\",\n          \"named\": true\n        },\n        {\n          \"type\": \"not\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number\",\n          \"named\": true\n        },\n        {\n          \"type\": \"or\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_blck\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_span\",\n          \"named\": true\n        },\n        {\n          \"type\": \"return\",\n          \"named\": true\n        },\n        {\n          \"type\": \"set\",\n          \"named\": true\n        },\n        {\n          \"type\": \"show\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sign\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sub\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tagged\",\n          \"named\": true\n        },\n        {\n          \"type\": \"while\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"div\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"add\",\n          \"named\": true\n        },\n        {\n          \"type\": \"and\",\n          \"named\": true\n        },\n        {\n          \"type\": \"assign\",\n          \"named\": true\n        },\n        {\n          \"type\": \"auto\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"bool\",\n          \"named\": true\n        },\n        {\n          \"type\": \"branch\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"cmp\",\n          \"named\": true\n        },\n        {\n          \"type\": \"content\",\n          \"named\": true\n        },\n        {\n          \"type\": \"context\",\n          \"named\": true\n        },\n        {\n          \"type\": \"div\",\n          \"named\": true\n        },\n        {\n          \"type\": \"elude\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field\",\n          \"named\": true\n        },\n        {\n          \"type\": \"flow\",\n          \"named\": true\n        },\n        {\n          \"type\": \"for\",\n          \"named\": true\n        },\n        {\n          \"type\": \"group\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ident\",\n          \"named\": true\n        },\n        {\n          \"type\": \"import\",\n          \"named\": true\n        },\n        {\n          \"type\": \"in\",\n          \"named\": true\n        },\n        {\n          \"type\": \"include\",\n          \"named\": true\n        },\n        {\n          \"type\": \"label\",\n          \"named\": true\n        },\n        {\n          \"type\": \"lambda\",\n          \"named\": true\n        },\n        {\n          \"type\": \"let\",\n          \"named\": true\n        },\n        {\n          \"type\": \"math\",\n          \"named\": true\n        },\n        {\n          \"type\": \"mul\",\n          \"named\": true\n        },\n        {\n          \"type\": \"none\",\n          \"named\": true\n        },\n        {\n          \"type\": \"not\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number\",\n          \"named\": true\n        },\n        {\n          \"type\": \"or\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_blck\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_span\",\n          \"named\": true\n        },\n        {\n          \"type\": \"return\",\n          \"named\": true\n        },\n        {\n          \"type\": \"set\",\n          \"named\": true\n        },\n        {\n          \"type\": \"show\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sign\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sub\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tagged\",\n          \"named\": true\n        },\n        {\n          \"type\": \"while\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"elude\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"add\",\n          \"named\": true\n        },\n        {\n          \"type\": \"and\",\n          \"named\": true\n        },\n        {\n          \"type\": \"assign\",\n          \"named\": true\n        },\n        {\n          \"type\": \"auto\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"bool\",\n          \"named\": true\n        },\n        {\n          \"type\": \"branch\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"cmp\",\n          \"named\": true\n        },\n        {\n          \"type\": \"content\",\n          \"named\": true\n        },\n        {\n          \"type\": \"context\",\n          \"named\": true\n        },\n        {\n          \"type\": \"div\",\n          \"named\": true\n        },\n        {\n          \"type\": \"elude\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field\",\n          \"named\": true\n        },\n        {\n          \"type\": \"flow\",\n          \"named\": true\n        },\n        {\n          \"type\": \"for\",\n          \"named\": true\n        },\n        {\n          \"type\": \"group\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ident\",\n          \"named\": true\n        },\n        {\n          \"type\": \"import\",\n          \"named\": true\n        },\n        {\n          \"type\": \"in\",\n          \"named\": true\n        },\n        {\n          \"type\": \"include\",\n          \"named\": true\n        },\n        {\n          \"type\": \"label\",\n          \"named\": true\n        },\n        {\n          \"type\": \"lambda\",\n          \"named\": true\n        },\n        {\n          \"type\": \"let\",\n          \"named\": true\n        },\n        {\n          \"type\": \"math\",\n          \"named\": true\n        },\n        {\n          \"type\": \"mul\",\n          \"named\": true\n        },\n        {\n          \"type\": \"none\",\n          \"named\": true\n        },\n        {\n          \"type\": \"not\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number\",\n          \"named\": true\n        },\n        {\n          \"type\": \"or\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_blck\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_span\",\n          \"named\": true\n        },\n        {\n          \"type\": \"return\",\n          \"named\": true\n        },\n        {\n          \"type\": \"set\",\n          \"named\": true\n        },\n        {\n          \"type\": \"show\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sign\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sub\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tagged\",\n          \"named\": true\n        },\n        {\n          \"type\": \"while\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"emph\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"code\",\n          \"named\": true\n        },\n        {\n          \"type\": \"emph\",\n          \"named\": true\n        },\n        {\n          \"type\": \"item\",\n          \"named\": true\n        },\n        {\n          \"type\": \"label\",\n          \"named\": true\n        },\n        {\n          \"type\": \"linebreak\",\n          \"named\": true\n        },\n        {\n          \"type\": \"math\",\n          \"named\": true\n        },\n        {\n          \"type\": \"parbreak\",\n          \"named\": true\n        },\n        {\n          \"type\": \"quote\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_blck\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_span\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ref\",\n          \"named\": true\n        },\n        {\n          \"type\": \"section\",\n          \"named\": true\n        },\n        {\n          \"type\": \"shorthand\",\n          \"named\": true\n        },\n        {\n          \"type\": \"strong\",\n          \"named\": true\n        },\n        {\n          \"type\": \"term\",\n          \"named\": true\n        },\n        {\n          \"type\": \"text\",\n          \"named\": true\n        },\n        {\n          \"type\": \"url\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"escape\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"fac\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"align\",\n          \"named\": true\n        },\n        {\n          \"type\": \"apply\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attach\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"code\",\n          \"named\": true\n        },\n        {\n          \"type\": \"escape\",\n          \"named\": true\n        },\n        {\n          \"type\": \"fac\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field\",\n          \"named\": true\n        },\n        {\n          \"type\": \"fraction\",\n          \"named\": true\n        },\n        {\n          \"type\": \"group\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ident\",\n          \"named\": true\n        },\n        {\n          \"type\": \"letter\",\n          \"named\": true\n        },\n        {\n          \"type\": \"linebreak\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number\",\n          \"named\": true\n        },\n        {\n          \"type\": \"prime\",\n          \"named\": true\n        },\n        {\n          \"type\": \"root\",\n          \"named\": true\n        },\n        {\n          \"type\": \"shorthand\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"symbol\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"field\",\n    \"named\": true,\n    \"fields\": {\n      \"field\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"ident\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"add\",\n          \"named\": true\n        },\n        {\n          \"type\": \"and\",\n          \"named\": true\n        },\n        {\n          \"type\": \"assign\",\n          \"named\": true\n        },\n        {\n          \"type\": \"auto\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"bool\",\n          \"named\": true\n        },\n        {\n          \"type\": \"branch\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"cmp\",\n          \"named\": true\n        },\n        {\n          \"type\": \"content\",\n          \"named\": true\n        },\n        {\n          \"type\": \"context\",\n          \"named\": true\n        },\n        {\n          \"type\": \"div\",\n          \"named\": true\n        },\n        {\n          \"type\": \"elude\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field\",\n          \"named\": true\n        },\n        {\n          \"type\": \"flow\",\n          \"named\": true\n        },\n        {\n          \"type\": \"for\",\n          \"named\": true\n        },\n        {\n          \"type\": \"group\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ident\",\n          \"named\": true\n        },\n        {\n          \"type\": \"import\",\n          \"named\": true\n        },\n        {\n          \"type\": \"in\",\n          \"named\": true\n        },\n        {\n          \"type\": \"include\",\n          \"named\": true\n        },\n        {\n          \"type\": \"label\",\n          \"named\": true\n        },\n        {\n          \"type\": \"lambda\",\n          \"named\": true\n        },\n        {\n          \"type\": \"let\",\n          \"named\": true\n        },\n        {\n          \"type\": \"math\",\n          \"named\": true\n        },\n        {\n          \"type\": \"mul\",\n          \"named\": true\n        },\n        {\n          \"type\": \"none\",\n          \"named\": true\n        },\n        {\n          \"type\": \"not\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number\",\n          \"named\": true\n        },\n        {\n          \"type\": \"or\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_blck\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_span\",\n          \"named\": true\n        },\n        {\n          \"type\": \"return\",\n          \"named\": true\n        },\n        {\n          \"type\": \"set\",\n          \"named\": true\n        },\n        {\n          \"type\": \"show\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sign\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sub\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tagged\",\n          \"named\": true\n        },\n        {\n          \"type\": \"while\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"flow\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"for\",\n    \"named\": true,\n    \"fields\": {\n      \"pattern\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"group\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ident\",\n            \"named\": true\n          }\n        ]\n      },\n      \"value\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"add\",\n            \"named\": true\n          },\n          {\n            \"type\": \"and\",\n            \"named\": true\n          },\n          {\n            \"type\": \"assign\",\n            \"named\": true\n          },\n          {\n            \"type\": \"auto\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"bool\",\n            \"named\": true\n          },\n          {\n            \"type\": \"branch\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"cmp\",\n            \"named\": true\n          },\n          {\n            \"type\": \"content\",\n            \"named\": true\n          },\n          {\n            \"type\": \"context\",\n            \"named\": true\n          },\n          {\n            \"type\": \"div\",\n            \"named\": true\n          },\n          {\n            \"type\": \"elude\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field\",\n            \"named\": true\n          },\n          {\n            \"type\": \"flow\",\n            \"named\": true\n          },\n          {\n            \"type\": \"for\",\n            \"named\": true\n          },\n          {\n            \"type\": \"group\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ident\",\n            \"named\": true\n          },\n          {\n            \"type\": \"import\",\n            \"named\": true\n          },\n          {\n            \"type\": \"in\",\n            \"named\": true\n          },\n          {\n            \"type\": \"include\",\n            \"named\": true\n          },\n          {\n            \"type\": \"label\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let\",\n            \"named\": true\n          },\n          {\n            \"type\": \"math\",\n            \"named\": true\n          },\n          {\n            \"type\": \"mul\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none\",\n            \"named\": true\n          },\n          {\n            \"type\": \"not\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number\",\n            \"named\": true\n          },\n          {\n            \"type\": \"or\",\n            \"named\": true\n          },\n          {\n            \"type\": \"raw_blck\",\n            \"named\": true\n          },\n          {\n            \"type\": \"raw_span\",\n            \"named\": true\n          },\n          {\n            \"type\": \"return\",\n            \"named\": true\n          },\n          {\n            \"type\": \"set\",\n            \"named\": true\n          },\n          {\n            \"type\": \"show\",\n            \"named\": true\n          },\n          {\n            \"type\": \"sign\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"sub\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tagged\",\n            \"named\": true\n          },\n          {\n            \"type\": \"while\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"content\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"formula\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"align\",\n          \"named\": true\n        },\n        {\n          \"type\": \"apply\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attach\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"code\",\n          \"named\": true\n        },\n        {\n          \"type\": \"escape\",\n          \"named\": true\n        },\n        {\n          \"type\": \"fac\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field\",\n          \"named\": true\n        },\n        {\n          \"type\": \"fraction\",\n          \"named\": true\n        },\n        {\n          \"type\": \"group\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ident\",\n          \"named\": true\n        },\n        {\n          \"type\": \"letter\",\n          \"named\": true\n        },\n        {\n          \"type\": \"linebreak\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number\",\n          \"named\": true\n        },\n        {\n          \"type\": \"prime\",\n          \"named\": true\n        },\n        {\n          \"type\": \"root\",\n          \"named\": true\n        },\n        {\n          \"type\": \"shorthand\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"symbol\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"fraction\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"align\",\n          \"named\": true\n        },\n        {\n          \"type\": \"apply\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attach\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"code\",\n          \"named\": true\n        },\n        {\n          \"type\": \"escape\",\n          \"named\": true\n        },\n        {\n          \"type\": \"fac\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field\",\n          \"named\": true\n        },\n        {\n          \"type\": \"fraction\",\n          \"named\": true\n        },\n        {\n          \"type\": \"group\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ident\",\n          \"named\": true\n        },\n        {\n          \"type\": \"letter\",\n          \"named\": true\n        },\n        {\n          \"type\": \"linebreak\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number\",\n          \"named\": true\n        },\n        {\n          \"type\": \"prime\",\n          \"named\": true\n        },\n        {\n          \"type\": \"root\",\n          \"named\": true\n        },\n        {\n          \"type\": \"shorthand\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"symbol\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"group\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"add\",\n          \"named\": true\n        },\n        {\n          \"type\": \"and\",\n          \"named\": true\n        },\n        {\n          \"type\": \"assign\",\n          \"named\": true\n        },\n        {\n          \"type\": \"auto\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"bool\",\n          \"named\": true\n        },\n        {\n          \"type\": \"branch\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"cmp\",\n          \"named\": true\n        },\n        {\n          \"type\": \"content\",\n          \"named\": true\n        },\n        {\n          \"type\": \"context\",\n          \"named\": true\n        },\n        {\n          \"type\": \"div\",\n          \"named\": true\n        },\n        {\n          \"type\": \"elude\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field\",\n          \"named\": true\n        },\n        {\n          \"type\": \"flow\",\n          \"named\": true\n        },\n        {\n          \"type\": \"for\",\n          \"named\": true\n        },\n        {\n          \"type\": \"formula\",\n          \"named\": true\n        },\n        {\n          \"type\": \"group\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ident\",\n          \"named\": true\n        },\n        {\n          \"type\": \"import\",\n          \"named\": true\n        },\n        {\n          \"type\": \"in\",\n          \"named\": true\n        },\n        {\n          \"type\": \"include\",\n          \"named\": true\n        },\n        {\n          \"type\": \"label\",\n          \"named\": true\n        },\n        {\n          \"type\": \"lambda\",\n          \"named\": true\n        },\n        {\n          \"type\": \"let\",\n          \"named\": true\n        },\n        {\n          \"type\": \"math\",\n          \"named\": true\n        },\n        {\n          \"type\": \"mul\",\n          \"named\": true\n        },\n        {\n          \"type\": \"none\",\n          \"named\": true\n        },\n        {\n          \"type\": \"not\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number\",\n          \"named\": true\n        },\n        {\n          \"type\": \"or\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_blck\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_span\",\n          \"named\": true\n        },\n        {\n          \"type\": \"return\",\n          \"named\": true\n        },\n        {\n          \"type\": \"set\",\n          \"named\": true\n        },\n        {\n          \"type\": \"show\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sign\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sub\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tagged\",\n          \"named\": true\n        },\n        {\n          \"type\": \"while\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"heading\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"code\",\n          \"named\": true\n        },\n        {\n          \"type\": \"emph\",\n          \"named\": true\n        },\n        {\n          \"type\": \"item\",\n          \"named\": true\n        },\n        {\n          \"type\": \"label\",\n          \"named\": true\n        },\n        {\n          \"type\": \"linebreak\",\n          \"named\": true\n        },\n        {\n          \"type\": \"math\",\n          \"named\": true\n        },\n        {\n          \"type\": \"parbreak\",\n          \"named\": true\n        },\n        {\n          \"type\": \"quote\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_blck\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_span\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ref\",\n          \"named\": true\n        },\n        {\n          \"type\": \"section\",\n          \"named\": true\n        },\n        {\n          \"type\": \"shorthand\",\n          \"named\": true\n        },\n        {\n          \"type\": \"strong\",\n          \"named\": true\n        },\n        {\n          \"type\": \"term\",\n          \"named\": true\n        },\n        {\n          \"type\": \"text\",\n          \"named\": true\n        },\n        {\n          \"type\": \"url\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"ident\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"import\",\n    \"named\": true,\n    \"fields\": {\n      \"import\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"add\",\n            \"named\": true\n          },\n          {\n            \"type\": \"and\",\n            \"named\": true\n          },\n          {\n            \"type\": \"assign\",\n            \"named\": true\n          },\n          {\n            \"type\": \"auto\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"bool\",\n            \"named\": true\n          },\n          {\n            \"type\": \"branch\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"cmp\",\n            \"named\": true\n          },\n          {\n            \"type\": \"content\",\n            \"named\": true\n          },\n          {\n            \"type\": \"context\",\n            \"named\": true\n          },\n          {\n            \"type\": \"div\",\n            \"named\": true\n          },\n          {\n            \"type\": \"elude\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field\",\n            \"named\": true\n          },\n          {\n            \"type\": \"flow\",\n            \"named\": true\n          },\n          {\n            \"type\": \"for\",\n            \"named\": true\n          },\n          {\n            \"type\": \"group\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ident\",\n            \"named\": true\n          },\n          {\n            \"type\": \"import\",\n            \"named\": true\n          },\n          {\n            \"type\": \"in\",\n            \"named\": true\n          },\n          {\n            \"type\": \"include\",\n            \"named\": true\n          },\n          {\n            \"type\": \"label\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let\",\n            \"named\": true\n          },\n          {\n            \"type\": \"math\",\n            \"named\": true\n          },\n          {\n            \"type\": \"mul\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none\",\n            \"named\": true\n          },\n          {\n            \"type\": \"not\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number\",\n            \"named\": true\n          },\n          {\n            \"type\": \"or\",\n            \"named\": true\n          },\n          {\n            \"type\": \"raw_blck\",\n            \"named\": true\n          },\n          {\n            \"type\": \"raw_span\",\n            \"named\": true\n          },\n          {\n            \"type\": \"return\",\n            \"named\": true\n          },\n          {\n            \"type\": \"set\",\n            \"named\": true\n          },\n          {\n            \"type\": \"show\",\n            \"named\": true\n          },\n          {\n            \"type\": \"sign\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"sub\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tagged\",\n            \"named\": true\n          },\n          {\n            \"type\": \"while\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"as\",\n          \"named\": true\n        },\n        {\n          \"type\": \"binding\",\n          \"named\": true\n        },\n        {\n          \"type\": \"wildcard\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"in\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"add\",\n          \"named\": true\n        },\n        {\n          \"type\": \"and\",\n          \"named\": true\n        },\n        {\n          \"type\": \"assign\",\n          \"named\": true\n        },\n        {\n          \"type\": \"auto\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"bool\",\n          \"named\": true\n        },\n        {\n          \"type\": \"branch\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"cmp\",\n          \"named\": true\n        },\n        {\n          \"type\": \"content\",\n          \"named\": true\n        },\n        {\n          \"type\": \"context\",\n          \"named\": true\n        },\n        {\n          \"type\": \"div\",\n          \"named\": true\n        },\n        {\n          \"type\": \"elude\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field\",\n          \"named\": true\n        },\n        {\n          \"type\": \"flow\",\n          \"named\": true\n        },\n        {\n          \"type\": \"for\",\n          \"named\": true\n        },\n        {\n          \"type\": \"group\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ident\",\n          \"named\": true\n        },\n        {\n          \"type\": \"import\",\n          \"named\": true\n        },\n        {\n          \"type\": \"in\",\n          \"named\": true\n        },\n        {\n          \"type\": \"include\",\n          \"named\": true\n        },\n        {\n          \"type\": \"label\",\n          \"named\": true\n        },\n        {\n          \"type\": \"lambda\",\n          \"named\": true\n        },\n        {\n          \"type\": \"let\",\n          \"named\": true\n        },\n        {\n          \"type\": \"math\",\n          \"named\": true\n        },\n        {\n          \"type\": \"mul\",\n          \"named\": true\n        },\n        {\n          \"type\": \"none\",\n          \"named\": true\n        },\n        {\n          \"type\": \"not\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number\",\n          \"named\": true\n        },\n        {\n          \"type\": \"or\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_blck\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_span\",\n          \"named\": true\n        },\n        {\n          \"type\": \"return\",\n          \"named\": true\n        },\n        {\n          \"type\": \"set\",\n          \"named\": true\n        },\n        {\n          \"type\": \"show\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sign\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sub\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tagged\",\n          \"named\": true\n        },\n        {\n          \"type\": \"while\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"include\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"add\",\n          \"named\": true\n        },\n        {\n          \"type\": \"and\",\n          \"named\": true\n        },\n        {\n          \"type\": \"assign\",\n          \"named\": true\n        },\n        {\n          \"type\": \"auto\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"bool\",\n          \"named\": true\n        },\n        {\n          \"type\": \"branch\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"cmp\",\n          \"named\": true\n        },\n        {\n          \"type\": \"content\",\n          \"named\": true\n        },\n        {\n          \"type\": \"context\",\n          \"named\": true\n        },\n        {\n          \"type\": \"div\",\n          \"named\": true\n        },\n        {\n          \"type\": \"elude\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field\",\n          \"named\": true\n        },\n        {\n          \"type\": \"flow\",\n          \"named\": true\n        },\n        {\n          \"type\": \"for\",\n          \"named\": true\n        },\n        {\n          \"type\": \"group\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ident\",\n          \"named\": true\n        },\n        {\n          \"type\": \"import\",\n          \"named\": true\n        },\n        {\n          \"type\": \"in\",\n          \"named\": true\n        },\n        {\n          \"type\": \"include\",\n          \"named\": true\n        },\n        {\n          \"type\": \"label\",\n          \"named\": true\n        },\n        {\n          \"type\": \"lambda\",\n          \"named\": true\n        },\n        {\n          \"type\": \"let\",\n          \"named\": true\n        },\n        {\n          \"type\": \"math\",\n          \"named\": true\n        },\n        {\n          \"type\": \"mul\",\n          \"named\": true\n        },\n        {\n          \"type\": \"none\",\n          \"named\": true\n        },\n        {\n          \"type\": \"not\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number\",\n          \"named\": true\n        },\n        {\n          \"type\": \"or\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_blck\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_span\",\n          \"named\": true\n        },\n        {\n          \"type\": \"return\",\n          \"named\": true\n        },\n        {\n          \"type\": \"set\",\n          \"named\": true\n        },\n        {\n          \"type\": \"show\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sign\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sub\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tagged\",\n          \"named\": true\n        },\n        {\n          \"type\": \"while\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"item\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"code\",\n          \"named\": true\n        },\n        {\n          \"type\": \"emph\",\n          \"named\": true\n        },\n        {\n          \"type\": \"item\",\n          \"named\": true\n        },\n        {\n          \"type\": \"label\",\n          \"named\": true\n        },\n        {\n          \"type\": \"linebreak\",\n          \"named\": true\n        },\n        {\n          \"type\": \"math\",\n          \"named\": true\n        },\n        {\n          \"type\": \"parbreak\",\n          \"named\": true\n        },\n        {\n          \"type\": \"quote\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_blck\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_span\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ref\",\n          \"named\": true\n        },\n        {\n          \"type\": \"section\",\n          \"named\": true\n        },\n        {\n          \"type\": \"shorthand\",\n          \"named\": true\n        },\n        {\n          \"type\": \"strong\",\n          \"named\": true\n        },\n        {\n          \"type\": \"term\",\n          \"named\": true\n        },\n        {\n          \"type\": \"text\",\n          \"named\": true\n        },\n        {\n          \"type\": \"url\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"label\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"lambda\",\n    \"named\": true,\n    \"fields\": {\n      \"pattern\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"add\",\n            \"named\": true\n          },\n          {\n            \"type\": \"and\",\n            \"named\": true\n          },\n          {\n            \"type\": \"assign\",\n            \"named\": true\n          },\n          {\n            \"type\": \"auto\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"bool\",\n            \"named\": true\n          },\n          {\n            \"type\": \"branch\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"cmp\",\n            \"named\": true\n          },\n          {\n            \"type\": \"content\",\n            \"named\": true\n          },\n          {\n            \"type\": \"context\",\n            \"named\": true\n          },\n          {\n            \"type\": \"div\",\n            \"named\": true\n          },\n          {\n            \"type\": \"elude\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field\",\n            \"named\": true\n          },\n          {\n            \"type\": \"flow\",\n            \"named\": true\n          },\n          {\n            \"type\": \"for\",\n            \"named\": true\n          },\n          {\n            \"type\": \"group\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ident\",\n            \"named\": true\n          },\n          {\n            \"type\": \"import\",\n            \"named\": true\n          },\n          {\n            \"type\": \"in\",\n            \"named\": true\n          },\n          {\n            \"type\": \"include\",\n            \"named\": true\n          },\n          {\n            \"type\": \"label\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let\",\n            \"named\": true\n          },\n          {\n            \"type\": \"math\",\n            \"named\": true\n          },\n          {\n            \"type\": \"mul\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none\",\n            \"named\": true\n          },\n          {\n            \"type\": \"not\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number\",\n            \"named\": true\n          },\n          {\n            \"type\": \"or\",\n            \"named\": true\n          },\n          {\n            \"type\": \"raw_blck\",\n            \"named\": true\n          },\n          {\n            \"type\": \"raw_span\",\n            \"named\": true\n          },\n          {\n            \"type\": \"return\",\n            \"named\": true\n          },\n          {\n            \"type\": \"set\",\n            \"named\": true\n          },\n          {\n            \"type\": \"show\",\n            \"named\": true\n          },\n          {\n            \"type\": \"sign\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"sub\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tagged\",\n            \"named\": true\n          },\n          {\n            \"type\": \"while\",\n            \"named\": true\n          }\n        ]\n      },\n      \"value\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"add\",\n            \"named\": true\n          },\n          {\n            \"type\": \"and\",\n            \"named\": true\n          },\n          {\n            \"type\": \"assign\",\n            \"named\": true\n          },\n          {\n            \"type\": \"auto\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"bool\",\n            \"named\": true\n          },\n          {\n            \"type\": \"branch\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"cmp\",\n            \"named\": true\n          },\n          {\n            \"type\": \"content\",\n            \"named\": true\n          },\n          {\n            \"type\": \"context\",\n            \"named\": true\n          },\n          {\n            \"type\": \"div\",\n            \"named\": true\n          },\n          {\n            \"type\": \"elude\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field\",\n            \"named\": true\n          },\n          {\n            \"type\": \"flow\",\n            \"named\": true\n          },\n          {\n            \"type\": \"for\",\n            \"named\": true\n          },\n          {\n            \"type\": \"group\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ident\",\n            \"named\": true\n          },\n          {\n            \"type\": \"import\",\n            \"named\": true\n          },\n          {\n            \"type\": \"in\",\n            \"named\": true\n          },\n          {\n            \"type\": \"include\",\n            \"named\": true\n          },\n          {\n            \"type\": \"label\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let\",\n            \"named\": true\n          },\n          {\n            \"type\": \"math\",\n            \"named\": true\n          },\n          {\n            \"type\": \"mul\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none\",\n            \"named\": true\n          },\n          {\n            \"type\": \"not\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number\",\n            \"named\": true\n          },\n          {\n            \"type\": \"or\",\n            \"named\": true\n          },\n          {\n            \"type\": \"raw_blck\",\n            \"named\": true\n          },\n          {\n            \"type\": \"raw_span\",\n            \"named\": true\n          },\n          {\n            \"type\": \"return\",\n            \"named\": true\n          },\n          {\n            \"type\": \"set\",\n            \"named\": true\n          },\n          {\n            \"type\": \"show\",\n            \"named\": true\n          },\n          {\n            \"type\": \"sign\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"sub\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tagged\",\n            \"named\": true\n          },\n          {\n            \"type\": \"while\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"let\",\n    \"named\": true,\n    \"fields\": {\n      \"pattern\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"add\",\n            \"named\": true\n          },\n          {\n            \"type\": \"and\",\n            \"named\": true\n          },\n          {\n            \"type\": \"assign\",\n            \"named\": true\n          },\n          {\n            \"type\": \"auto\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"bool\",\n            \"named\": true\n          },\n          {\n            \"type\": \"branch\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"cmp\",\n            \"named\": true\n          },\n          {\n            \"type\": \"content\",\n            \"named\": true\n          },\n          {\n            \"type\": \"context\",\n            \"named\": true\n          },\n          {\n            \"type\": \"div\",\n            \"named\": true\n          },\n          {\n            \"type\": \"elude\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field\",\n            \"named\": true\n          },\n          {\n            \"type\": \"flow\",\n            \"named\": true\n          },\n          {\n            \"type\": \"for\",\n            \"named\": true\n          },\n          {\n            \"type\": \"group\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ident\",\n            \"named\": true\n          },\n          {\n            \"type\": \"import\",\n            \"named\": true\n          },\n          {\n            \"type\": \"in\",\n            \"named\": true\n          },\n          {\n            \"type\": \"include\",\n            \"named\": true\n          },\n          {\n            \"type\": \"label\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let\",\n            \"named\": true\n          },\n          {\n            \"type\": \"math\",\n            \"named\": true\n          },\n          {\n            \"type\": \"mul\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none\",\n            \"named\": true\n          },\n          {\n            \"type\": \"not\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number\",\n            \"named\": true\n          },\n          {\n            \"type\": \"or\",\n            \"named\": true\n          },\n          {\n            \"type\": \"raw_blck\",\n            \"named\": true\n          },\n          {\n            \"type\": \"raw_span\",\n            \"named\": true\n          },\n          {\n            \"type\": \"return\",\n            \"named\": true\n          },\n          {\n            \"type\": \"set\",\n            \"named\": true\n          },\n          {\n            \"type\": \"show\",\n            \"named\": true\n          },\n          {\n            \"type\": \"sign\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"sub\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tagged\",\n            \"named\": true\n          },\n          {\n            \"type\": \"while\",\n            \"named\": true\n          }\n        ]\n      },\n      \"value\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"add\",\n            \"named\": true\n          },\n          {\n            \"type\": \"and\",\n            \"named\": true\n          },\n          {\n            \"type\": \"assign\",\n            \"named\": true\n          },\n          {\n            \"type\": \"auto\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"bool\",\n            \"named\": true\n          },\n          {\n            \"type\": \"branch\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"cmp\",\n            \"named\": true\n          },\n          {\n            \"type\": \"content\",\n            \"named\": true\n          },\n          {\n            \"type\": \"context\",\n            \"named\": true\n          },\n          {\n            \"type\": \"div\",\n            \"named\": true\n          },\n          {\n            \"type\": \"elude\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field\",\n            \"named\": true\n          },\n          {\n            \"type\": \"flow\",\n            \"named\": true\n          },\n          {\n            \"type\": \"for\",\n            \"named\": true\n          },\n          {\n            \"type\": \"group\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ident\",\n            \"named\": true\n          },\n          {\n            \"type\": \"import\",\n            \"named\": true\n          },\n          {\n            \"type\": \"in\",\n            \"named\": true\n          },\n          {\n            \"type\": \"include\",\n            \"named\": true\n          },\n          {\n            \"type\": \"label\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let\",\n            \"named\": true\n          },\n          {\n            \"type\": \"math\",\n            \"named\": true\n          },\n          {\n            \"type\": \"mul\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none\",\n            \"named\": true\n          },\n          {\n            \"type\": \"not\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number\",\n            \"named\": true\n          },\n          {\n            \"type\": \"or\",\n            \"named\": true\n          },\n          {\n            \"type\": \"raw_blck\",\n            \"named\": true\n          },\n          {\n            \"type\": \"raw_span\",\n            \"named\": true\n          },\n          {\n            \"type\": \"return\",\n            \"named\": true\n          },\n          {\n            \"type\": \"set\",\n            \"named\": true\n          },\n          {\n            \"type\": \"show\",\n            \"named\": true\n          },\n          {\n            \"type\": \"sign\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"sub\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tagged\",\n            \"named\": true\n          },\n          {\n            \"type\": \"while\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"math\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"formula\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"mul\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"add\",\n          \"named\": true\n        },\n        {\n          \"type\": \"and\",\n          \"named\": true\n        },\n        {\n          \"type\": \"assign\",\n          \"named\": true\n        },\n        {\n          \"type\": \"auto\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"bool\",\n          \"named\": true\n        },\n        {\n          \"type\": \"branch\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"cmp\",\n          \"named\": true\n        },\n        {\n          \"type\": \"content\",\n          \"named\": true\n        },\n        {\n          \"type\": \"context\",\n          \"named\": true\n        },\n        {\n          \"type\": \"div\",\n          \"named\": true\n        },\n        {\n          \"type\": \"elude\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field\",\n          \"named\": true\n        },\n        {\n          \"type\": \"flow\",\n          \"named\": true\n        },\n        {\n          \"type\": \"for\",\n          \"named\": true\n        },\n        {\n          \"type\": \"group\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ident\",\n          \"named\": true\n        },\n        {\n          \"type\": \"import\",\n          \"named\": true\n        },\n        {\n          \"type\": \"in\",\n          \"named\": true\n        },\n        {\n          \"type\": \"include\",\n          \"named\": true\n        },\n        {\n          \"type\": \"label\",\n          \"named\": true\n        },\n        {\n          \"type\": \"lambda\",\n          \"named\": true\n        },\n        {\n          \"type\": \"let\",\n          \"named\": true\n        },\n        {\n          \"type\": \"math\",\n          \"named\": true\n        },\n        {\n          \"type\": \"mul\",\n          \"named\": true\n        },\n        {\n          \"type\": \"none\",\n          \"named\": true\n        },\n        {\n          \"type\": \"not\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number\",\n          \"named\": true\n        },\n        {\n          \"type\": \"or\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_blck\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_span\",\n          \"named\": true\n        },\n        {\n          \"type\": \"return\",\n          \"named\": true\n        },\n        {\n          \"type\": \"set\",\n          \"named\": true\n        },\n        {\n          \"type\": \"show\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sign\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sub\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tagged\",\n          \"named\": true\n        },\n        {\n          \"type\": \"while\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"not\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"add\",\n          \"named\": true\n        },\n        {\n          \"type\": \"and\",\n          \"named\": true\n        },\n        {\n          \"type\": \"assign\",\n          \"named\": true\n        },\n        {\n          \"type\": \"auto\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"bool\",\n          \"named\": true\n        },\n        {\n          \"type\": \"branch\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"cmp\",\n          \"named\": true\n        },\n        {\n          \"type\": \"content\",\n          \"named\": true\n        },\n        {\n          \"type\": \"context\",\n          \"named\": true\n        },\n        {\n          \"type\": \"div\",\n          \"named\": true\n        },\n        {\n          \"type\": \"elude\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field\",\n          \"named\": true\n        },\n        {\n          \"type\": \"flow\",\n          \"named\": true\n        },\n        {\n          \"type\": \"for\",\n          \"named\": true\n        },\n        {\n          \"type\": \"group\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ident\",\n          \"named\": true\n        },\n        {\n          \"type\": \"import\",\n          \"named\": true\n        },\n        {\n          \"type\": \"in\",\n          \"named\": true\n        },\n        {\n          \"type\": \"include\",\n          \"named\": true\n        },\n        {\n          \"type\": \"label\",\n          \"named\": true\n        },\n        {\n          \"type\": \"lambda\",\n          \"named\": true\n        },\n        {\n          \"type\": \"let\",\n          \"named\": true\n        },\n        {\n          \"type\": \"math\",\n          \"named\": true\n        },\n        {\n          \"type\": \"mul\",\n          \"named\": true\n        },\n        {\n          \"type\": \"none\",\n          \"named\": true\n        },\n        {\n          \"type\": \"not\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number\",\n          \"named\": true\n        },\n        {\n          \"type\": \"or\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_blck\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_span\",\n          \"named\": true\n        },\n        {\n          \"type\": \"return\",\n          \"named\": true\n        },\n        {\n          \"type\": \"set\",\n          \"named\": true\n        },\n        {\n          \"type\": \"show\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sign\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sub\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tagged\",\n          \"named\": true\n        },\n        {\n          \"type\": \"while\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"number\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"unit\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"or\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"add\",\n          \"named\": true\n        },\n        {\n          \"type\": \"and\",\n          \"named\": true\n        },\n        {\n          \"type\": \"assign\",\n          \"named\": true\n        },\n        {\n          \"type\": \"auto\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"bool\",\n          \"named\": true\n        },\n        {\n          \"type\": \"branch\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"cmp\",\n          \"named\": true\n        },\n        {\n          \"type\": \"content\",\n          \"named\": true\n        },\n        {\n          \"type\": \"context\",\n          \"named\": true\n        },\n        {\n          \"type\": \"div\",\n          \"named\": true\n        },\n        {\n          \"type\": \"elude\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field\",\n          \"named\": true\n        },\n        {\n          \"type\": \"flow\",\n          \"named\": true\n        },\n        {\n          \"type\": \"for\",\n          \"named\": true\n        },\n        {\n          \"type\": \"group\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ident\",\n          \"named\": true\n        },\n        {\n          \"type\": \"import\",\n          \"named\": true\n        },\n        {\n          \"type\": \"in\",\n          \"named\": true\n        },\n        {\n          \"type\": \"include\",\n          \"named\": true\n        },\n        {\n          \"type\": \"label\",\n          \"named\": true\n        },\n        {\n          \"type\": \"lambda\",\n          \"named\": true\n        },\n        {\n          \"type\": \"let\",\n          \"named\": true\n        },\n        {\n          \"type\": \"math\",\n          \"named\": true\n        },\n        {\n          \"type\": \"mul\",\n          \"named\": true\n        },\n        {\n          \"type\": \"none\",\n          \"named\": true\n        },\n        {\n          \"type\": \"not\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number\",\n          \"named\": true\n        },\n        {\n          \"type\": \"or\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_blck\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_span\",\n          \"named\": true\n        },\n        {\n          \"type\": \"return\",\n          \"named\": true\n        },\n        {\n          \"type\": \"set\",\n          \"named\": true\n        },\n        {\n          \"type\": \"show\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sign\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sub\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tagged\",\n          \"named\": true\n        },\n        {\n          \"type\": \"while\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"prime\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"align\",\n          \"named\": true\n        },\n        {\n          \"type\": \"apply\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attach\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"code\",\n          \"named\": true\n        },\n        {\n          \"type\": \"escape\",\n          \"named\": true\n        },\n        {\n          \"type\": \"fac\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field\",\n          \"named\": true\n        },\n        {\n          \"type\": \"fraction\",\n          \"named\": true\n        },\n        {\n          \"type\": \"group\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ident\",\n          \"named\": true\n        },\n        {\n          \"type\": \"letter\",\n          \"named\": true\n        },\n        {\n          \"type\": \"linebreak\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number\",\n          \"named\": true\n        },\n        {\n          \"type\": \"prime\",\n          \"named\": true\n        },\n        {\n          \"type\": \"root\",\n          \"named\": true\n        },\n        {\n          \"type\": \"shorthand\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"symbol\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"raw_blck\",\n    \"named\": true,\n    \"fields\": {\n      \"lang\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"ident\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"blob\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"raw_span\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"blob\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"ref\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"content\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"return\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"add\",\n          \"named\": true\n        },\n        {\n          \"type\": \"and\",\n          \"named\": true\n        },\n        {\n          \"type\": \"assign\",\n          \"named\": true\n        },\n        {\n          \"type\": \"auto\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"bool\",\n          \"named\": true\n        },\n        {\n          \"type\": \"branch\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"cmp\",\n          \"named\": true\n        },\n        {\n          \"type\": \"content\",\n          \"named\": true\n        },\n        {\n          \"type\": \"context\",\n          \"named\": true\n        },\n        {\n          \"type\": \"div\",\n          \"named\": true\n        },\n        {\n          \"type\": \"elude\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field\",\n          \"named\": true\n        },\n        {\n          \"type\": \"flow\",\n          \"named\": true\n        },\n        {\n          \"type\": \"for\",\n          \"named\": true\n        },\n        {\n          \"type\": \"group\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ident\",\n          \"named\": true\n        },\n        {\n          \"type\": \"import\",\n          \"named\": true\n        },\n        {\n          \"type\": \"in\",\n          \"named\": true\n        },\n        {\n          \"type\": \"include\",\n          \"named\": true\n        },\n        {\n          \"type\": \"label\",\n          \"named\": true\n        },\n        {\n          \"type\": \"lambda\",\n          \"named\": true\n        },\n        {\n          \"type\": \"let\",\n          \"named\": true\n        },\n        {\n          \"type\": \"math\",\n          \"named\": true\n        },\n        {\n          \"type\": \"mul\",\n          \"named\": true\n        },\n        {\n          \"type\": \"none\",\n          \"named\": true\n        },\n        {\n          \"type\": \"not\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number\",\n          \"named\": true\n        },\n        {\n          \"type\": \"or\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_blck\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_span\",\n          \"named\": true\n        },\n        {\n          \"type\": \"return\",\n          \"named\": true\n        },\n        {\n          \"type\": \"set\",\n          \"named\": true\n        },\n        {\n          \"type\": \"show\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sign\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sub\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tagged\",\n          \"named\": true\n        },\n        {\n          \"type\": \"while\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"root\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"align\",\n          \"named\": true\n        },\n        {\n          \"type\": \"apply\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attach\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"code\",\n          \"named\": true\n        },\n        {\n          \"type\": \"escape\",\n          \"named\": true\n        },\n        {\n          \"type\": \"fac\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field\",\n          \"named\": true\n        },\n        {\n          \"type\": \"fraction\",\n          \"named\": true\n        },\n        {\n          \"type\": \"group\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ident\",\n          \"named\": true\n        },\n        {\n          \"type\": \"letter\",\n          \"named\": true\n        },\n        {\n          \"type\": \"linebreak\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number\",\n          \"named\": true\n        },\n        {\n          \"type\": \"prime\",\n          \"named\": true\n        },\n        {\n          \"type\": \"root\",\n          \"named\": true\n        },\n        {\n          \"type\": \"shorthand\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"symbol\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"section\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"content\",\n          \"named\": true\n        },\n        {\n          \"type\": \"heading\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"set\",\n    \"named\": true,\n    \"fields\": {\n      \"condition\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"add\",\n            \"named\": true\n          },\n          {\n            \"type\": \"and\",\n            \"named\": true\n          },\n          {\n            \"type\": \"assign\",\n            \"named\": true\n          },\n          {\n            \"type\": \"auto\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"bool\",\n            \"named\": true\n          },\n          {\n            \"type\": \"branch\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"cmp\",\n            \"named\": true\n          },\n          {\n            \"type\": \"content\",\n            \"named\": true\n          },\n          {\n            \"type\": \"context\",\n            \"named\": true\n          },\n          {\n            \"type\": \"div\",\n            \"named\": true\n          },\n          {\n            \"type\": \"elude\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field\",\n            \"named\": true\n          },\n          {\n            \"type\": \"flow\",\n            \"named\": true\n          },\n          {\n            \"type\": \"for\",\n            \"named\": true\n          },\n          {\n            \"type\": \"group\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ident\",\n            \"named\": true\n          },\n          {\n            \"type\": \"import\",\n            \"named\": true\n          },\n          {\n            \"type\": \"in\",\n            \"named\": true\n          },\n          {\n            \"type\": \"include\",\n            \"named\": true\n          },\n          {\n            \"type\": \"label\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let\",\n            \"named\": true\n          },\n          {\n            \"type\": \"math\",\n            \"named\": true\n          },\n          {\n            \"type\": \"mul\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none\",\n            \"named\": true\n          },\n          {\n            \"type\": \"not\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number\",\n            \"named\": true\n          },\n          {\n            \"type\": \"or\",\n            \"named\": true\n          },\n          {\n            \"type\": \"raw_blck\",\n            \"named\": true\n          },\n          {\n            \"type\": \"raw_span\",\n            \"named\": true\n          },\n          {\n            \"type\": \"return\",\n            \"named\": true\n          },\n          {\n            \"type\": \"set\",\n            \"named\": true\n          },\n          {\n            \"type\": \"show\",\n            \"named\": true\n          },\n          {\n            \"type\": \"sign\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"sub\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tagged\",\n            \"named\": true\n          },\n          {\n            \"type\": \"while\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"call\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"shorthand\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"show\",\n    \"named\": true,\n    \"fields\": {\n      \"pattern\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"add\",\n            \"named\": true\n          },\n          {\n            \"type\": \"and\",\n            \"named\": true\n          },\n          {\n            \"type\": \"assign\",\n            \"named\": true\n          },\n          {\n            \"type\": \"auto\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"bool\",\n            \"named\": true\n          },\n          {\n            \"type\": \"branch\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"cmp\",\n            \"named\": true\n          },\n          {\n            \"type\": \"content\",\n            \"named\": true\n          },\n          {\n            \"type\": \"context\",\n            \"named\": true\n          },\n          {\n            \"type\": \"div\",\n            \"named\": true\n          },\n          {\n            \"type\": \"elude\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field\",\n            \"named\": true\n          },\n          {\n            \"type\": \"flow\",\n            \"named\": true\n          },\n          {\n            \"type\": \"for\",\n            \"named\": true\n          },\n          {\n            \"type\": \"group\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ident\",\n            \"named\": true\n          },\n          {\n            \"type\": \"import\",\n            \"named\": true\n          },\n          {\n            \"type\": \"in\",\n            \"named\": true\n          },\n          {\n            \"type\": \"include\",\n            \"named\": true\n          },\n          {\n            \"type\": \"label\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let\",\n            \"named\": true\n          },\n          {\n            \"type\": \"math\",\n            \"named\": true\n          },\n          {\n            \"type\": \"mul\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none\",\n            \"named\": true\n          },\n          {\n            \"type\": \"not\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number\",\n            \"named\": true\n          },\n          {\n            \"type\": \"or\",\n            \"named\": true\n          },\n          {\n            \"type\": \"raw_blck\",\n            \"named\": true\n          },\n          {\n            \"type\": \"raw_span\",\n            \"named\": true\n          },\n          {\n            \"type\": \"return\",\n            \"named\": true\n          },\n          {\n            \"type\": \"set\",\n            \"named\": true\n          },\n          {\n            \"type\": \"show\",\n            \"named\": true\n          },\n          {\n            \"type\": \"sign\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"sub\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tagged\",\n            \"named\": true\n          },\n          {\n            \"type\": \"while\",\n            \"named\": true\n          }\n        ]\n      },\n      \"value\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"add\",\n            \"named\": true\n          },\n          {\n            \"type\": \"and\",\n            \"named\": true\n          },\n          {\n            \"type\": \"assign\",\n            \"named\": true\n          },\n          {\n            \"type\": \"auto\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"bool\",\n            \"named\": true\n          },\n          {\n            \"type\": \"branch\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"cmp\",\n            \"named\": true\n          },\n          {\n            \"type\": \"content\",\n            \"named\": true\n          },\n          {\n            \"type\": \"context\",\n            \"named\": true\n          },\n          {\n            \"type\": \"div\",\n            \"named\": true\n          },\n          {\n            \"type\": \"elude\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field\",\n            \"named\": true\n          },\n          {\n            \"type\": \"flow\",\n            \"named\": true\n          },\n          {\n            \"type\": \"for\",\n            \"named\": true\n          },\n          {\n            \"type\": \"group\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ident\",\n            \"named\": true\n          },\n          {\n            \"type\": \"import\",\n            \"named\": true\n          },\n          {\n            \"type\": \"in\",\n            \"named\": true\n          },\n          {\n            \"type\": \"include\",\n            \"named\": true\n          },\n          {\n            \"type\": \"label\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let\",\n            \"named\": true\n          },\n          {\n            \"type\": \"math\",\n            \"named\": true\n          },\n          {\n            \"type\": \"mul\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none\",\n            \"named\": true\n          },\n          {\n            \"type\": \"not\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number\",\n            \"named\": true\n          },\n          {\n            \"type\": \"or\",\n            \"named\": true\n          },\n          {\n            \"type\": \"raw_blck\",\n            \"named\": true\n          },\n          {\n            \"type\": \"raw_span\",\n            \"named\": true\n          },\n          {\n            \"type\": \"return\",\n            \"named\": true\n          },\n          {\n            \"type\": \"set\",\n            \"named\": true\n          },\n          {\n            \"type\": \"show\",\n            \"named\": true\n          },\n          {\n            \"type\": \"sign\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"sub\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tagged\",\n            \"named\": true\n          },\n          {\n            \"type\": \"while\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"sign\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"add\",\n          \"named\": true\n        },\n        {\n          \"type\": \"and\",\n          \"named\": true\n        },\n        {\n          \"type\": \"assign\",\n          \"named\": true\n        },\n        {\n          \"type\": \"auto\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"bool\",\n          \"named\": true\n        },\n        {\n          \"type\": \"branch\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"cmp\",\n          \"named\": true\n        },\n        {\n          \"type\": \"content\",\n          \"named\": true\n        },\n        {\n          \"type\": \"context\",\n          \"named\": true\n        },\n        {\n          \"type\": \"div\",\n          \"named\": true\n        },\n        {\n          \"type\": \"elude\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field\",\n          \"named\": true\n        },\n        {\n          \"type\": \"flow\",\n          \"named\": true\n        },\n        {\n          \"type\": \"for\",\n          \"named\": true\n        },\n        {\n          \"type\": \"group\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ident\",\n          \"named\": true\n        },\n        {\n          \"type\": \"import\",\n          \"named\": true\n        },\n        {\n          \"type\": \"in\",\n          \"named\": true\n        },\n        {\n          \"type\": \"include\",\n          \"named\": true\n        },\n        {\n          \"type\": \"label\",\n          \"named\": true\n        },\n        {\n          \"type\": \"lambda\",\n          \"named\": true\n        },\n        {\n          \"type\": \"let\",\n          \"named\": true\n        },\n        {\n          \"type\": \"math\",\n          \"named\": true\n        },\n        {\n          \"type\": \"mul\",\n          \"named\": true\n        },\n        {\n          \"type\": \"none\",\n          \"named\": true\n        },\n        {\n          \"type\": \"not\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number\",\n          \"named\": true\n        },\n        {\n          \"type\": \"or\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_blck\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_span\",\n          \"named\": true\n        },\n        {\n          \"type\": \"return\",\n          \"named\": true\n        },\n        {\n          \"type\": \"set\",\n          \"named\": true\n        },\n        {\n          \"type\": \"show\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sign\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sub\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tagged\",\n          \"named\": true\n        },\n        {\n          \"type\": \"while\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"source_file\",\n    \"named\": true,\n    \"root\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"code\",\n          \"named\": true\n        },\n        {\n          \"type\": \"emph\",\n          \"named\": true\n        },\n        {\n          \"type\": \"item\",\n          \"named\": true\n        },\n        {\n          \"type\": \"label\",\n          \"named\": true\n        },\n        {\n          \"type\": \"linebreak\",\n          \"named\": true\n        },\n        {\n          \"type\": \"math\",\n          \"named\": true\n        },\n        {\n          \"type\": \"parbreak\",\n          \"named\": true\n        },\n        {\n          \"type\": \"quote\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_blck\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_span\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ref\",\n          \"named\": true\n        },\n        {\n          \"type\": \"section\",\n          \"named\": true\n        },\n        {\n          \"type\": \"shorthand\",\n          \"named\": true\n        },\n        {\n          \"type\": \"strong\",\n          \"named\": true\n        },\n        {\n          \"type\": \"term\",\n          \"named\": true\n        },\n        {\n          \"type\": \"text\",\n          \"named\": true\n        },\n        {\n          \"type\": \"url\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"string\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"escape\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"strong\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"code\",\n          \"named\": true\n        },\n        {\n          \"type\": \"emph\",\n          \"named\": true\n        },\n        {\n          \"type\": \"item\",\n          \"named\": true\n        },\n        {\n          \"type\": \"label\",\n          \"named\": true\n        },\n        {\n          \"type\": \"linebreak\",\n          \"named\": true\n        },\n        {\n          \"type\": \"math\",\n          \"named\": true\n        },\n        {\n          \"type\": \"parbreak\",\n          \"named\": true\n        },\n        {\n          \"type\": \"quote\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_blck\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_span\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ref\",\n          \"named\": true\n        },\n        {\n          \"type\": \"section\",\n          \"named\": true\n        },\n        {\n          \"type\": \"shorthand\",\n          \"named\": true\n        },\n        {\n          \"type\": \"strong\",\n          \"named\": true\n        },\n        {\n          \"type\": \"term\",\n          \"named\": true\n        },\n        {\n          \"type\": \"text\",\n          \"named\": true\n        },\n        {\n          \"type\": \"url\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"sub\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"add\",\n          \"named\": true\n        },\n        {\n          \"type\": \"and\",\n          \"named\": true\n        },\n        {\n          \"type\": \"assign\",\n          \"named\": true\n        },\n        {\n          \"type\": \"auto\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"bool\",\n          \"named\": true\n        },\n        {\n          \"type\": \"branch\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"cmp\",\n          \"named\": true\n        },\n        {\n          \"type\": \"content\",\n          \"named\": true\n        },\n        {\n          \"type\": \"context\",\n          \"named\": true\n        },\n        {\n          \"type\": \"div\",\n          \"named\": true\n        },\n        {\n          \"type\": \"elude\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field\",\n          \"named\": true\n        },\n        {\n          \"type\": \"flow\",\n          \"named\": true\n        },\n        {\n          \"type\": \"for\",\n          \"named\": true\n        },\n        {\n          \"type\": \"group\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ident\",\n          \"named\": true\n        },\n        {\n          \"type\": \"import\",\n          \"named\": true\n        },\n        {\n          \"type\": \"in\",\n          \"named\": true\n        },\n        {\n          \"type\": \"include\",\n          \"named\": true\n        },\n        {\n          \"type\": \"label\",\n          \"named\": true\n        },\n        {\n          \"type\": \"lambda\",\n          \"named\": true\n        },\n        {\n          \"type\": \"let\",\n          \"named\": true\n        },\n        {\n          \"type\": \"math\",\n          \"named\": true\n        },\n        {\n          \"type\": \"mul\",\n          \"named\": true\n        },\n        {\n          \"type\": \"none\",\n          \"named\": true\n        },\n        {\n          \"type\": \"not\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number\",\n          \"named\": true\n        },\n        {\n          \"type\": \"or\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_blck\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_span\",\n          \"named\": true\n        },\n        {\n          \"type\": \"return\",\n          \"named\": true\n        },\n        {\n          \"type\": \"set\",\n          \"named\": true\n        },\n        {\n          \"type\": \"show\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sign\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sub\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tagged\",\n          \"named\": true\n        },\n        {\n          \"type\": \"while\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"symbol\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"tagged\",\n    \"named\": true,\n    \"fields\": {\n      \"field\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"add\",\n            \"named\": true\n          },\n          {\n            \"type\": \"and\",\n            \"named\": true\n          },\n          {\n            \"type\": \"assign\",\n            \"named\": true\n          },\n          {\n            \"type\": \"auto\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"bool\",\n            \"named\": true\n          },\n          {\n            \"type\": \"branch\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"cmp\",\n            \"named\": true\n          },\n          {\n            \"type\": \"content\",\n            \"named\": true\n          },\n          {\n            \"type\": \"context\",\n            \"named\": true\n          },\n          {\n            \"type\": \"div\",\n            \"named\": true\n          },\n          {\n            \"type\": \"elude\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field\",\n            \"named\": true\n          },\n          {\n            \"type\": \"flow\",\n            \"named\": true\n          },\n          {\n            \"type\": \"for\",\n            \"named\": true\n          },\n          {\n            \"type\": \"group\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ident\",\n            \"named\": true\n          },\n          {\n            \"type\": \"import\",\n            \"named\": true\n          },\n          {\n            \"type\": \"in\",\n            \"named\": true\n          },\n          {\n            \"type\": \"include\",\n            \"named\": true\n          },\n          {\n            \"type\": \"label\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let\",\n            \"named\": true\n          },\n          {\n            \"type\": \"math\",\n            \"named\": true\n          },\n          {\n            \"type\": \"mul\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none\",\n            \"named\": true\n          },\n          {\n            \"type\": \"not\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number\",\n            \"named\": true\n          },\n          {\n            \"type\": \"or\",\n            \"named\": true\n          },\n          {\n            \"type\": \"raw_blck\",\n            \"named\": true\n          },\n          {\n            \"type\": \"raw_span\",\n            \"named\": true\n          },\n          {\n            \"type\": \"return\",\n            \"named\": true\n          },\n          {\n            \"type\": \"set\",\n            \"named\": true\n          },\n          {\n            \"type\": \"show\",\n            \"named\": true\n          },\n          {\n            \"type\": \"sign\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"sub\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tagged\",\n            \"named\": true\n          },\n          {\n            \"type\": \"while\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"add\",\n          \"named\": true\n        },\n        {\n          \"type\": \"and\",\n          \"named\": true\n        },\n        {\n          \"type\": \"assign\",\n          \"named\": true\n        },\n        {\n          \"type\": \"auto\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"bool\",\n          \"named\": true\n        },\n        {\n          \"type\": \"branch\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"cmp\",\n          \"named\": true\n        },\n        {\n          \"type\": \"content\",\n          \"named\": true\n        },\n        {\n          \"type\": \"context\",\n          \"named\": true\n        },\n        {\n          \"type\": \"div\",\n          \"named\": true\n        },\n        {\n          \"type\": \"elude\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field\",\n          \"named\": true\n        },\n        {\n          \"type\": \"flow\",\n          \"named\": true\n        },\n        {\n          \"type\": \"for\",\n          \"named\": true\n        },\n        {\n          \"type\": \"formula\",\n          \"named\": true\n        },\n        {\n          \"type\": \"group\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ident\",\n          \"named\": true\n        },\n        {\n          \"type\": \"import\",\n          \"named\": true\n        },\n        {\n          \"type\": \"in\",\n          \"named\": true\n        },\n        {\n          \"type\": \"include\",\n          \"named\": true\n        },\n        {\n          \"type\": \"label\",\n          \"named\": true\n        },\n        {\n          \"type\": \"lambda\",\n          \"named\": true\n        },\n        {\n          \"type\": \"let\",\n          \"named\": true\n        },\n        {\n          \"type\": \"math\",\n          \"named\": true\n        },\n        {\n          \"type\": \"mul\",\n          \"named\": true\n        },\n        {\n          \"type\": \"none\",\n          \"named\": true\n        },\n        {\n          \"type\": \"not\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number\",\n          \"named\": true\n        },\n        {\n          \"type\": \"or\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_blck\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_span\",\n          \"named\": true\n        },\n        {\n          \"type\": \"return\",\n          \"named\": true\n        },\n        {\n          \"type\": \"set\",\n          \"named\": true\n        },\n        {\n          \"type\": \"show\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sign\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string\",\n          \"named\": true\n        },\n        {\n          \"type\": \"sub\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tagged\",\n          \"named\": true\n        },\n        {\n          \"type\": \"while\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"term\",\n    \"named\": true,\n    \"fields\": {\n      \"term\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"code\",\n            \"named\": true\n          },\n          {\n            \"type\": \"emph\",\n            \"named\": true\n          },\n          {\n            \"type\": \"item\",\n            \"named\": true\n          },\n          {\n            \"type\": \"label\",\n            \"named\": true\n          },\n          {\n            \"type\": \"linebreak\",\n            \"named\": true\n          },\n          {\n            \"type\": \"math\",\n            \"named\": true\n          },\n          {\n            \"type\": \"parbreak\",\n            \"named\": true\n          },\n          {\n            \"type\": \"quote\",\n            \"named\": true\n          },\n          {\n            \"type\": \"raw_blck\",\n            \"named\": true\n          },\n          {\n            \"type\": \"raw_span\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"section\",\n            \"named\": true\n          },\n          {\n            \"type\": \"shorthand\",\n            \"named\": true\n          },\n          {\n            \"type\": \"strong\",\n            \"named\": true\n          },\n          {\n            \"type\": \"term\",\n            \"named\": true\n          },\n          {\n            \"type\": \"text\",\n            \"named\": true\n          },\n          {\n            \"type\": \"url\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"code\",\n          \"named\": true\n        },\n        {\n          \"type\": \"emph\",\n          \"named\": true\n        },\n        {\n          \"type\": \"item\",\n          \"named\": true\n        },\n        {\n          \"type\": \"label\",\n          \"named\": true\n        },\n        {\n          \"type\": \"linebreak\",\n          \"named\": true\n        },\n        {\n          \"type\": \"math\",\n          \"named\": true\n        },\n        {\n          \"type\": \"parbreak\",\n          \"named\": true\n        },\n        {\n          \"type\": \"quote\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_blck\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raw_span\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ref\",\n          \"named\": true\n        },\n        {\n          \"type\": \"section\",\n          \"named\": true\n        },\n        {\n          \"type\": \"shorthand\",\n          \"named\": true\n        },\n        {\n          \"type\": \"strong\",\n          \"named\": true\n        },\n        {\n          \"type\": \"term\",\n          \"named\": true\n        },\n        {\n          \"type\": \"text\",\n          \"named\": true\n        },\n        {\n          \"type\": \"url\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"text\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"escape\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"unit\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"url\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"while\",\n    \"named\": true,\n    \"fields\": {\n      \"condition\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"add\",\n            \"named\": true\n          },\n          {\n            \"type\": \"and\",\n            \"named\": true\n          },\n          {\n            \"type\": \"assign\",\n            \"named\": true\n          },\n          {\n            \"type\": \"auto\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"bool\",\n            \"named\": true\n          },\n          {\n            \"type\": \"branch\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"cmp\",\n            \"named\": true\n          },\n          {\n            \"type\": \"content\",\n            \"named\": true\n          },\n          {\n            \"type\": \"context\",\n            \"named\": true\n          },\n          {\n            \"type\": \"div\",\n            \"named\": true\n          },\n          {\n            \"type\": \"elude\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field\",\n            \"named\": true\n          },\n          {\n            \"type\": \"flow\",\n            \"named\": true\n          },\n          {\n            \"type\": \"for\",\n            \"named\": true\n          },\n          {\n            \"type\": \"group\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ident\",\n            \"named\": true\n          },\n          {\n            \"type\": \"import\",\n            \"named\": true\n          },\n          {\n            \"type\": \"in\",\n            \"named\": true\n          },\n          {\n            \"type\": \"include\",\n            \"named\": true\n          },\n          {\n            \"type\": \"label\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda\",\n            \"named\": true\n          },\n          {\n            \"type\": \"let\",\n            \"named\": true\n          },\n          {\n            \"type\": \"math\",\n            \"named\": true\n          },\n          {\n            \"type\": \"mul\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none\",\n            \"named\": true\n          },\n          {\n            \"type\": \"not\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number\",\n            \"named\": true\n          },\n          {\n            \"type\": \"or\",\n            \"named\": true\n          },\n          {\n            \"type\": \"raw_blck\",\n            \"named\": true\n          },\n          {\n            \"type\": \"raw_span\",\n            \"named\": true\n          },\n          {\n            \"type\": \"return\",\n            \"named\": true\n          },\n          {\n            \"type\": \"set\",\n            \"named\": true\n          },\n          {\n            \"type\": \"show\",\n            \"named\": true\n          },\n          {\n            \"type\": \"sign\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string\",\n            \"named\": true\n          },\n          {\n            \"type\": \"sub\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tagged\",\n            \"named\": true\n          },\n          {\n            \"type\": \"while\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"content\",\n          \"named\": true\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\": \"and\",\n    \"named\": false\n  },\n  {\n    \"type\": \"as\",\n    \"named\": false\n  },\n  {\n    \"type\": \"assign\",\n    \"named\": false\n  },\n  {\n    \"type\": \"auto\",\n    \"named\": true\n  },\n  {\n    \"type\": \"blob\",\n    \"named\": true\n  },\n  {\n    \"type\": \"break\",\n    \"named\": false\n  },\n  {\n    \"type\": \"comment\",\n    \"named\": true\n  },\n  {\n    \"type\": \"context\",\n    \"named\": false\n  },\n  {\n    \"type\": \"continue\",\n    \"named\": false\n  },\n  {\n    \"type\": \"else\",\n    \"named\": false\n  },\n  {\n    \"type\": \"end\",\n    \"named\": false\n  },\n  {\n    \"type\": \"false\",\n    \"named\": false\n  },\n  {\n    \"type\": \"for\",\n    \"named\": false\n  },\n  {\n    \"type\": \"if\",\n    \"named\": false\n  },\n  {\n    \"type\": \"import\",\n    \"named\": false\n  },\n  {\n    \"type\": \"in\",\n    \"named\": false\n  },\n  {\n    \"type\": \"include\",\n    \"named\": false\n  },\n  {\n    \"type\": \"let\",\n    \"named\": false\n  },\n  {\n    \"type\": \"letter\",\n    \"named\": true\n  },\n  {\n    \"type\": \"linebreak\",\n    \"named\": true\n  },\n  {\n    \"type\": \"none\",\n    \"named\": true\n  },\n  {\n    \"type\": \"not\",\n    \"named\": false\n  },\n  {\n    \"type\": \"or\",\n    \"named\": false\n  },\n  {\n    \"type\": \"parbreak\",\n    \"named\": true\n  },\n  {\n    \"type\": \"quote\",\n    \"named\": true\n  },\n  {\n    \"type\": \"return\",\n    \"named\": false\n  },\n  {\n    \"type\": \"sep\",\n    \"named\": false\n  },\n  {\n    \"type\": \"set\",\n    \"named\": false\n  },\n  {\n    \"type\": \"show\",\n    \"named\": false\n  },\n  {\n    \"type\": \"true\",\n    \"named\": false\n  },\n  {\n    \"type\": \"while\",\n    \"named\": false\n  },\n  {\n    \"type\": \"wildcard\",\n    \"named\": true\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.