ROOT@0..6806
  PRE_ANNOTATION@0..28 "@ Definitions and spe ..."
  EOL@28..29 "\n"
  DEF_MODULE@29..5297
    MODULE_KW@29..35 "module"
    WHITESPACE@35..36 " "
    NAME@36..60
      IDENT@36..60 "DefinitionsAndSpecifiers"
    WHITESPACE@60..61 " "
    MODULE_MEMBER_LIST@61..5297
      LEFT_CURLY@61..62 "{"
      EOL@62..64 "\n\n"
      WHITESPACE@64..66 "  "
      PRE_ANNOTATION@66..92 "@ Abstract type defin ..."
      EOL@92..93 "\n"
      WHITESPACE@93..95 "  "
      DEF_ABSTRACT_TYPE@95..101
        TYPE_KW@95..99 "type"
        WHITESPACE@99..100 " "
        NAME@100..101
          IDENT@100..101 "T"
      EOL@101..102 "\n"
      WHITESPACE@102..104 "  "
      POST_ANNOTATION@104..131 "@< Abstract type defi ..."
      EOL@131..133 "\n\n"
      WHITESPACE@133..135 "  "
      PRE_ANNOTATION@135..158 "@ Type alias definition"
      EOL@158..159 "\n"
      WHITESPACE@159..161 "  "
      DEF_ALIAS_TYPE@161..172
        TYPE_KW@161..165 "type"
        WHITESPACE@165..166 " "
        NAME@166..168
          IDENT@166..168 "TA"
        WHITESPACE@168..169 " "
        EQUALS@169..170 "="
        WHITESPACE@170..171 " "
        TYPE_NAME@171..172
          QUAL_IDENT@171..172
            IDENT@171..172 "T"
      EOL@172..173 "\n"
      WHITESPACE@173..175 "  "
      POST_ANNOTATION@175..199 "@< Type alias definition"
      EOL@199..201 "\n\n"
      WHITESPACE@201..203 "  "
      PRE_ANNOTATION@203..221 "@ Array definition"
      EOL@221..222 "\n"
      WHITESPACE@222..224 "  "
      DEF_ARRAY@224..271
        ARRAY_KW@224..229 "array"
        WHITESPACE@229..230 " "
        NAME@230..231
          IDENT@230..231 "A"
        WHITESPACE@231..232 " "
        EQUALS@232..233 "="
        WHITESPACE@233..234 " "
        INDEX_OR_SIZE@234..238
          LEFT_SQUARE@234..235 "["
          EXPR@235..237
            EXPR_LITERAL@235..237
              LITERAL_INT@235..237 "10"
          RIGHT_SQUARE@237..238 "]"
        WHITESPACE@238..239 " "
        TYPE_NAME@239..242
          U32_KW@239..242 "U32"
        WHITESPACE@242..243 " "
        DEFAULT@243..252
          DEFAULT_KW@243..250 "default"
          WHITESPACE@250..251 " "
          EXPR@251..252
            EXPR_LITERAL@251..252
              LITERAL_INT@251..252 "0"
        WHITESPACE@252..253 " "
        FORMAT@253..271
          FORMAT_KW@253..259 "format"
          WHITESPACE@259..260 " "
          LITERAL_STRING@260..271 "\"{} counts\""
      EOL@271..272 "\n"
      WHITESPACE@272..274 "  "
      POST_ANNOTATION@274..293 "@< Array definition"
      EOL@293..295 "\n\n"
      WHITESPACE@295..297 "  "
      PRE_ANNOTATION@297..332 "@ State machine outsi ..."
      EOL@332..333 "\n"
      WHITESPACE@333..335 "  "
      DEF_STATE_MACHINE@335..351
        STATE_KW@335..340 "state"
        WHITESPACE@340..341 " "
        MACHINE_KW@341..348 "machine"
        WHITESPACE@348..349 " "
        NAME@349..351
          IDENT@349..351 "SO"
      EOL@351..352 "\n"
      WHITESPACE@352..354 "  "
      POST_ANNOTATION@354..390 "@< State machine outs ..."
      EOL@390..392 "\n\n"
      WHITESPACE@392..394 "  "
      PRE_ANNOTATION@394..416 "@ Interface definition"
      EOL@416..417 "\n"
      WHITESPACE@417..419 "  "
      DEF_INTERFACE@419..750
        INTERFACE_KW@419..428 "interface"
        WHITESPACE@428..429 " "
        NAME@429..430
          IDENT@429..430 "I"
        WHITESPACE@430..431 " "
        INTERFACE_MEMBER_LIST@431..750
          LEFT_CURLY@431..432 "{"
          EOL@432..433 "\n"
          WHITESPACE@433..437 "    "
          PRE_ANNOTATION@437..470 "@ General port instan ..."
          EOL@470..471 "\n"
          WHITESPACE@471..475 "    "
          SPEC_PORT_INSTANCE_GENERAL@475..520
            SYNC_KW@475..479 "sync"
            WHITESPACE@479..480 " "
            INPUT_KW@480..485 "input"
            WHITESPACE@485..486 " "
            PORT_KW@486..490 "port"
            WHITESPACE@490..491 " "
            NAME@491..493
              IDENT@491..493 "pI"
            COLON@493..494 ":"
            WHITESPACE@494..495 " "
            INDEX_OR_SIZE@495..499
              LEFT_SQUARE@495..496 "["
              EXPR@496..498
                EXPR_LITERAL@496..498
                  LITERAL_INT@496..498 "10"
              RIGHT_SQUARE@498..499 "]"
            WHITESPACE@499..500 " "
            QUAL_IDENT@500..501
              IDENT@500..501 "P"
            WHITESPACE@501..502 " "
            PRIORITY@502..513
              PRIORITY_KW@502..510 "priority"
              WHITESPACE@510..511 " "
              EXPR@511..513
                EXPR_LITERAL@511..513
                  LITERAL_INT@511..513 "10"
            WHITESPACE@513..514 " "
            QUEUE_FULL@514..520
              ASSERT_KW@514..520 "assert"
          EOL@520..521 "\n"
          WHITESPACE@521..525 "    "
          POST_ANNOTATION@525..559 "@< General port insta ..."
          EOL@559..561 "\n\n"
          WHITESPACE@561..565 "    "
          PRE_ANNOTATION@565..598 "@ Special port instan ..."
          EOL@598..599 "\n"
          WHITESPACE@599..603 "    "
          SPEC_PORT_INSTANCE_SPECIAL@603..626
            COMMAND_KW@603..610 "command"
            WHITESPACE@610..611 " "
            RECV_KW@611..615 "recv"
            WHITESPACE@615..616 " "
            PORT_KW@616..620 "port"
            WHITESPACE@620..621 " "
            NAME@621..626
              IDENT@621..626 "cmdIn"
          EOL@626..627 "\n"
          WHITESPACE@627..631 "    "
          POST_ANNOTATION@631..665 "@< Special port insta ..."
          EOL@665..667 "\n\n"
          WHITESPACE@667..671 "    "
          PRE_ANNOTATION@671..699 "@ Interface import sp ..."
          EOL@699..700 "\n"
          WHITESPACE@700..704 "    "
          SPEC_INTERFACE_IMPORT@704..712
            IMPORT_KW@704..710 "import"
            WHITESPACE@710..711 " "
            QUAL_IDENT@711..712
              IDENT@711..712 "J"
          EOL@712..713 "\n"
          WHITESPACE@713..717 "    "
          POST_ANNOTATION@717..746 "@< Interface import s ..."
          EOL@746..747 "\n"
          WHITESPACE@747..749 "  "
          RIGHT_CURLY@749..750 "}"
      EOL@750..751 "\n"
      WHITESPACE@751..753 "  "
      POST_ANNOTATION@753..776 "@< Interface definition"
      EOL@776..778 "\n\n"
      WHITESPACE@778..780 "  "
      PRE_ANNOTATION@780..802 "@ Component definition"
      EOL@802..803 "\n"
      WHITESPACE@803..805 "  "
      DEF_COMPONENT@805..3023
        ACTIVE_KW@805..811 "active"
        WHITESPACE@811..812 " "
        COMPONENT_KW@812..821 "component"
        WHITESPACE@821..822 " "
        NAME@822..823
          IDENT@822..823 "C"
        WHITESPACE@823..824 " "
        COMPONENT_MEMBER_LIST@824..3023
          LEFT_CURLY@824..825 "{"
          EOL@825..827 "\n\n"
          WHITESPACE@827..831 "    "
          DEF_ABSTRACT_TYPE@831..837
            TYPE_KW@831..835 "type"
            WHITESPACE@835..836 " "
            NAME@836..837
              IDENT@836..837 "T"
          EOL@837..838 "\n"
          WHITESPACE@838..842 "    "
          DEF_ARRAY@842..859
            ARRAY_KW@842..847 "array"
            WHITESPACE@847..848 " "
            NAME@848..849
              IDENT@848..849 "A"
            WHITESPACE@849..850 " "
            EQUALS@850..851 "="
            WHITESPACE@851..852 " "
            INDEX_OR_SIZE@852..855
              LEFT_SQUARE@852..853 "["
              EXPR@853..854
                EXPR_LITERAL@853..854
                  LITERAL_INT@853..854 "3"
              RIGHT_SQUARE@854..855 "]"
            WHITESPACE@855..856 " "
            TYPE_NAME@856..859
              U32_KW@856..859 "U32"
          EOL@859..860 "\n"
          WHITESPACE@860..864 "    "
          DEF_STRUCT@864..906
            STRUCT_KW@864..870 "struct"
            WHITESPACE@870..871 " "
            NAME@871..872
              IDENT@871..872 "S"
            WHITESPACE@872..873 " "
            STRUCT_MEMBER_LIST@873..906
              LEFT_CURLY@873..874 "{"
              WHITESPACE@874..875 " "
              STRUCT_MEMBER@875..885
                NAME@875..876
                  IDENT@875..876 "x"
                COLON@876..877 ":"
                WHITESPACE@877..878 " "
                INDEX_OR_SIZE@878..881
                  LEFT_SQUARE@878..879 "["
                  EXPR@879..880
                    EXPR_LITERAL@879..880
                      LITERAL_INT@879..880 "3"
                  RIGHT_SQUARE@880..881 "]"
                WHITESPACE@881..882 " "
                TYPE_NAME@882..885
                  U32_KW@882..885 "U32"
              COMMA@885..886 ","
              WHITESPACE@886..887 " "
              STRUCT_MEMBER@887..893
                NAME@887..888
                  IDENT@887..888 "y"
                COLON@888..889 ":"
                WHITESPACE@889..890 " "
                TYPE_NAME@890..893
                  F32_KW@890..893 "F32"
              COMMA@893..894 ","
              WHITESPACE@894..895 " "
              STRUCT_MEMBER@895..904
                NAME@895..896
                  IDENT@895..896 "z"
                COLON@896..897 ":"
                WHITESPACE@897..898 " "
                TYPE_NAME@898..904
                  STRING_KW@898..904 "string"
              WHITESPACE@904..905 " "
              RIGHT_CURLY@905..906 "}"
          EOL@906..907 "\n"
          WHITESPACE@907..911 "    "
          DEF_ENUM@911..939
            ENUM_KW@911..915 "enum"
            WHITESPACE@915..916 " "
            NAME@916..917
              IDENT@916..917 "E"
            WHITESPACE@917..918 " "
            ENUM_MEMBER_LIST@918..929
              LEFT_CURLY@918..919 "{"
              WHITESPACE@919..920 " "
              DEF_ENUM_CONSTANT@920..921
                NAME@920..921
                  IDENT@920..921 "X"
              COMMA@921..922 ","
              WHITESPACE@922..923 " "
              DEF_ENUM_CONSTANT@923..924
                NAME@923..924
                  IDENT@923..924 "Y"
              COMMA@924..925 ","
              WHITESPACE@925..926 " "
              DEF_ENUM_CONSTANT@926..927
                NAME@926..927
                  IDENT@926..927 "Z"
              WHITESPACE@927..928 " "
              RIGHT_CURLY@928..929 "}"
            WHITESPACE@929..930 " "
            DEFAULT@930..939
              DEFAULT_KW@930..937 "default"
              WHITESPACE@937..938 " "
              EXPR@938..939
                EXPR_IDENT@938..939
                  IDENT@938..939 "X"
          EOL@939..941 "\n\n"
          WHITESPACE@941..945 "    "
          PRE_ANNOTATION@945..966 "@ Container specifier"
          EOL@966..967 "\n"
          WHITESPACE@967..971 "    "
          SPEC_CONTAINER@971..1018
            PRODUCT_KW@971..978 "product"
            WHITESPACE@978..979 " "
            CONTAINER_KW@979..988 "container"
            WHITESPACE@988..989 " "
            NAME@989..990
              IDENT@989..990 "C"
            WHITESPACE@990..991 " "
            ID@991..998
              ID_KW@991..993 "id"
              WHITESPACE@993..994 " "
              EXPR@994..998
                EXPR_LITERAL@994..998
                  LITERAL_INT@994..998 "0x00"
            WHITESPACE@998..999 " "
            DEFAULT_KW@999..1006 "default"
            WHITESPACE@1006..1007 " "
            PRIORITY_KW@1007..1015 "priority"
            WHITESPACE@1015..1016 " "
            DEFAULT_PRIORITY@1016..1018
              EXPR@1016..1018
                EXPR_LITERAL@1016..1018
                  LITERAL_INT@1016..1018 "10"
          EOL@1018..1019 "\n"
          WHITESPACE@1019..1023 "    "
          POST_ANNOTATION@1023..1045 "@< Container specifier"
          EOL@1045..1047 "\n\n"
          WHITESPACE@1047..1051 "    "
          PRE_ANNOTATION@1051..1069 "@ Record specifier"
          EOL@1069..1070 "\n"
          WHITESPACE@1070..1074 "    "
          SPEC_RECORD@1074..1109
            PRODUCT_KW@1074..1081 "product"
            WHITESPACE@1081..1082 " "
            RECORD_KW@1082..1088 "record"
            WHITESPACE@1088..1089 " "
            NAME@1089..1090
              IDENT@1089..1090 "R"
            COLON@1090..1091 ":"
            WHITESPACE@1091..1092 " "
            TYPE_NAME@1092..1095
              U32_KW@1092..1095 "U32"
            WHITESPACE@1095..1096 " "
            ARRAY_KW@1096..1101 "array"
            WHITESPACE@1101..1102 " "
            ID@1102..1109
              ID_KW@1102..1104 "id"
              WHITESPACE@1104..1105 " "
              EXPR@1105..1109
                EXPR_LITERAL@1105..1109
                  LITERAL_INT@1105..1109 "0x00"
          EOL@1109..1110 "\n"
          WHITESPACE@1110..1114 "    "
          POST_ANNOTATION@1114..1133 "@< Record specifier"
          EOL@1133..1135 "\n\n"
          WHITESPACE@1135..1139 "    "
          PRE_ANNOTATION@1139..1158 "@ Command specifier"
          EOL@1158..1159 "\n"
          WHITESPACE@1159..1163 "    "
          SPEC_COMMAND@1163..1225
            ASYNC_KW@1163..1168 "async"
            WHITESPACE@1168..1169 " "
            COMMAND_KW@1169..1176 "command"
            WHITESPACE@1176..1177 " "
            NAME@1177..1178
              IDENT@1177..1178 "C"
            FORMAL_PARAM_LIST@1178..1194
              LEFT_PAREN@1178..1179 "("
              FORMAL_PARAM@1179..1185
                NAME@1179..1180
                  IDENT@1179..1180 "a"
                COLON@1180..1181 ":"
                WHITESPACE@1181..1182 " "
                TYPE_NAME@1182..1185
                  U32_KW@1182..1185 "U32"
              COMMA@1185..1186 ","
              WHITESPACE@1186..1187 " "
              FORMAL_PARAM@1187..1193
                NAME@1187..1188
                  IDENT@1187..1188 "b"
                COLON@1188..1189 ":"
                WHITESPACE@1189..1190 " "
                TYPE_NAME@1190..1193
                  F32_KW@1190..1193 "F32"
              RIGHT_PAREN@1193..1194 ")"
            WHITESPACE@1194..1195 " "
            OPCODE@1195..1206
              OPCODE_KW@1195..1201 "opcode"
              WHITESPACE@1201..1202 " "
              EXPR@1202..1206
                EXPR_LITERAL@1202..1206
                  LITERAL_INT@1202..1206 "0x00"
            WHITESPACE@1206..1207 " "
            PRIORITY@1207..1218
              PRIORITY_KW@1207..1215 "priority"
              WHITESPACE@1215..1216 " "
              EXPR@1216..1218
                EXPR_LITERAL@1216..1218
                  LITERAL_INT@1216..1218 "10"
            WHITESPACE@1218..1219 " "
            QUEUE_FULL@1219..1225
              ASSERT_KW@1219..1225 "assert"
          EOL@1225..1226 "\n"
          WHITESPACE@1226..1230 "    "
          POST_ANNOTATION@1230..1250 "@< Command specifier"
          EOL@1250..1252 "\n\n"
          WHITESPACE@1252..1256 "    "
          PRE_ANNOTATION@1256..1277 "@ Parameter specifier"
          EOL@1277..1278 "\n"
          WHITESPACE@1278..1282 "    "
          SPEC_PARAM@1282..1354
            EXTERNAL_KW@1282..1290 "external"
            WHITESPACE@1290..1291 " "
            PARAM_KW@1291..1296 "param"
            WHITESPACE@1296..1297 " "
            NAME@1297..1298
              IDENT@1297..1298 "P"
            COLON@1298..1299 ":"
            WHITESPACE@1299..1300 " "
            TYPE_NAME@1300..1303
              U32_KW@1300..1303 "U32"
            WHITESPACE@1303..1304 " "
            DEFAULT@1304..1313
              DEFAULT_KW@1304..1311 "default"
              WHITESPACE@1311..1312 " "
              EXPR@1312..1313
                EXPR_LITERAL@1312..1313
                  LITERAL_INT@1312..1313 "0"
            WHITESPACE@1313..1314 " "
            ID@1314..1321
              ID_KW@1314..1316 "id"
              WHITESPACE@1316..1317 " "
              EXPR@1317..1321
                EXPR_LITERAL@1317..1321
                  LITERAL_INT@1317..1321 "0x00"
            WHITESPACE@1321..1322 " "
            SET_KW@1322..1325 "set"
            WHITESPACE@1325..1326 " "
            OPCODE_KW@1326..1332 "opcode"
            WHITESPACE@1332..1333 " "
            SET_OPCODE@1333..1337
              EXPR@1333..1337
                EXPR_LITERAL@1333..1337
                  LITERAL_INT@1333..1337 "0x01"
            WHITESPACE@1337..1338 " "
            SAVE_KW@1338..1342 "save"
            WHITESPACE@1342..1343 " "
            OPCODE_KW@1343..1349 "opcode"
            WHITESPACE@1349..1350 " "
            SAVE_OPCODE@1350..1354
              EXPR@1350..1354
                EXPR_LITERAL@1350..1354
                  LITERAL_INT@1350..1354 "0x02"
          EOL@1354..1355 "\n"
          WHITESPACE@1355..1359 "    "
          POST_ANNOTATION@1359..1381 "@< Parameter specifier"
          EOL@1381..1383 "\n\n"
          WHITESPACE@1383..1387 "    "
          PRE_ANNOTATION@1387..1420 "@ General port instan ..."
          EOL@1420..1421 "\n"
          WHITESPACE@1421..1425 "    "
          SPEC_PORT_INSTANCE_GENERAL@1425..1470
            SYNC_KW@1425..1429 "sync"
            WHITESPACE@1429..1430 " "
            INPUT_KW@1430..1435 "input"
            WHITESPACE@1435..1436 " "
            PORT_KW@1436..1440 "port"
            WHITESPACE@1440..1441 " "
            NAME@1441..1443
              IDENT@1441..1443 "p1"
            COLON@1443..1444 ":"
            WHITESPACE@1444..1445 " "
            INDEX_OR_SIZE@1445..1449
              LEFT_SQUARE@1445..1446 "["
              EXPR@1446..1448
                EXPR_LITERAL@1446..1448
                  LITERAL_INT@1446..1448 "10"
              RIGHT_SQUARE@1448..1449 "]"
            WHITESPACE@1449..1450 " "
            QUAL_IDENT@1450..1451
              IDENT@1450..1451 "P"
            WHITESPACE@1451..1452 " "
            PRIORITY@1452..1463
              PRIORITY_KW@1452..1460 "priority"
              WHITESPACE@1460..1461 " "
              EXPR@1461..1463
                EXPR_LITERAL@1461..1463
                  LITERAL_INT@1461..1463 "10"
            WHITESPACE@1463..1464 " "
            QUEUE_FULL@1464..1470
              ASSERT_KW@1464..1470 "assert"
          EOL@1470..1471 "\n"
          WHITESPACE@1471..1475 "    "
          POST_ANNOTATION@1475..1509 "@< General port insta ..."
          EOL@1509..1511 "\n\n"
          WHITESPACE@1511..1515 "    "
          PRE_ANNOTATION@1515..1548 "@ Special port instan ..."
          EOL@1548..1549 "\n"
          WHITESPACE@1549..1553 "    "
          SPEC_PORT_INSTANCE_SPECIAL@1553..1576
            COMMAND_KW@1553..1560 "command"
            WHITESPACE@1560..1561 " "
            RECV_KW@1561..1565 "recv"
            WHITESPACE@1565..1566 " "
            PORT_KW@1566..1570 "port"
            WHITESPACE@1570..1571 " "
            NAME@1571..1576
              IDENT@1571..1576 "cmdIn"
          EOL@1576..1577 "\n"
          WHITESPACE@1577..1581 "    "
          POST_ANNOTATION@1581..1615 "@< Special port insta ..."
          EOL@1615..1617 "\n\n"
          WHITESPACE@1617..1621 "    "
          PRE_ANNOTATION@1621..1649 "@ Async product recei ..."
          EOL@1649..1650 "\n"
          WHITESPACE@1650..1654 "    "
          SPEC_PORT_INSTANCE_SPECIAL@1654..1710
            ASYNC_KW@1654..1659 "async"
            WHITESPACE@1659..1660 " "
            PRODUCT_KW@1660..1667 "product"
            WHITESPACE@1667..1668 " "
            RECV_KW@1668..1672 "recv"
            WHITESPACE@1672..1673 " "
            PORT_KW@1673..1677 "port"
            WHITESPACE@1677..1678 " "
            NAME@1678..1691
              IDENT@1678..1691 "productRecvIn"
            WHITESPACE@1691..1692 " "
            PRIORITY@1692..1703
              PRIORITY_KW@1692..1700 "priority"
              WHITESPACE@1700..1701 " "
              EXPR@1701..1703
                EXPR_LITERAL@1701..1703
                  LITERAL_INT@1701..1703 "10"
            WHITESPACE@1703..1704 " "
            QUEUE_FULL@1704..1710
              ASSERT_KW@1704..1710 "assert"
          EOL@1710..1711 "\n"
          WHITESPACE@1711..1715 "    "
          POST_ANNOTATION@1715..1744 "@< Async product rece ..."
          EOL@1744..1746 "\n\n"
          WHITESPACE@1746..1750 "    "
          PRE_ANNOTATION@1750..1795 "@ Internal Component  ..."
          EOL@1795..1796 "\n"
          WHITESPACE@1796..1800 "    "
          DEF_STATE_MACHINE@1800..1815
            STATE_KW@1800..1805 "state"
            WHITESPACE@1805..1806 " "
            MACHINE_KW@1806..1813 "machine"
            WHITESPACE@1813..1814 " "
            NAME@1814..1815
              IDENT@1814..1815 "S"
          EOL@1815..1816 "\n"
          WHITESPACE@1816..1820 "    "
          POST_ANNOTATION@1820..1847 "@< State machine defi ..."
          EOL@1847..1849 "\n\n"
          WHITESPACE@1849..1853 "    "
          PRE_ANNOTATION@1853..1879 "@ State machine insta ..."
          EOL@1879..1880 "\n"
          WHITESPACE@1880..1884 "    "
          SPEC_STATE_MACHINE_INSTANCE@1884..1929
            STATE_KW@1884..1889 "state"
            WHITESPACE@1889..1890 " "
            MACHINE_KW@1890..1897 "machine"
            WHITESPACE@1897..1898 " "
            INSTANCE_KW@1898..1906 "instance"
            WHITESPACE@1906..1907 " "
            NAME@1907..1909
              IDENT@1907..1909 "s1"
            COLON@1909..1910 ":"
            WHITESPACE@1910..1911 " "
            QUAL_IDENT@1911..1912
              IDENT@1911..1912 "S"
            WHITESPACE@1912..1913 " "
            PRIORITY@1913..1924
              PRIORITY_KW@1913..1921 "priority"
              WHITESPACE@1921..1922 " "
              EXPR@1922..1924
                EXPR_LITERAL@1922..1924
                  LITERAL_INT@1922..1924 "10"
            WHITESPACE@1924..1925 " "
            QUEUE_FULL@1925..1929
              DROP_KW@1925..1929 "drop"
          EOL@1929..1930 "\n"
          WHITESPACE@1930..1934 "    "
          POST_ANNOTATION@1934..1961 "@< State machine inst ..."
          EOL@1961..1963 "\n\n"
          WHITESPACE@1963..1967 "    "
          PRE_ANNOTATION@1967..1993 "@ State machine insta ..."
          EOL@1993..1994 "\n"
          WHITESPACE@1994..1998 "    "
          SPEC_STATE_MACHINE_INSTANCE@1998..2026
            STATE_KW@1998..2003 "state"
            WHITESPACE@2003..2004 " "
            MACHINE_KW@2004..2011 "machine"
            WHITESPACE@2011..2012 " "
            INSTANCE_KW@2012..2020 "instance"
            WHITESPACE@2020..2021 " "
            NAME@2021..2023
              IDENT@2021..2023 "s2"
            COLON@2023..2024 ":"
            WHITESPACE@2024..2025 " "
            QUAL_IDENT@2025..2026
              IDENT@2025..2026 "S"
          EOL@2026..2027 "\n"
          WHITESPACE@2027..2031 "    "
          POST_ANNOTATION@2031..2058 "@< State machine inst ..."
          EOL@2058..2060 "\n\n"
          WHITESPACE@2060..2064 "    "
          PRE_ANNOTATION@2064..2102 "@ State machine for o ..."
          EOL@2102..2103 "\n"
          WHITESPACE@2103..2107 "    "
          SPEC_STATE_MACHINE_INSTANCE@2107..2136
            STATE_KW@2107..2112 "state"
            WHITESPACE@2112..2113 " "
            MACHINE_KW@2113..2120 "machine"
            WHITESPACE@2120..2121 " "
            INSTANCE_KW@2121..2129 "instance"
            WHITESPACE@2129..2130 " "
            NAME@2130..2132
              IDENT@2130..2132 "so"
            COLON@2132..2133 ":"
            WHITESPACE@2133..2134 " "
            QUAL_IDENT@2134..2136
              IDENT@2134..2136 "SO"
          EOL@2136..2137 "\n"
          WHITESPACE@2137..2141 "    "
          POST_ANNOTATION@2141..2180 "@< State machine for  ..."
          EOL@2180..2182 "\n\n"
          WHITESPACE@2182..2186 "    "
          SPEC_PORT_INSTANCE_GENERAL@2186..2208
            OUTPUT_KW@2186..2192 "output"
            WHITESPACE@2192..2193 " "
            PORT_KW@2193..2197 "port"
            WHITESPACE@2197..2198 " "
            NAME@2198..2200
              IDENT@2198..2200 "p2"
            COLON@2200..2201 ":"
            WHITESPACE@2201..2202 " "
            INDEX_OR_SIZE@2202..2206
              LEFT_SQUARE@2202..2203 "["
              EXPR@2203..2205
                EXPR_LITERAL@2203..2205
                  LITERAL_INT@2203..2205 "10"
              RIGHT_SQUARE@2205..2206 "]"
            WHITESPACE@2206..2207 " "
            QUAL_IDENT@2207..2208
              IDENT@2207..2208 "P"
          EOL@2208..2209 "\n"
          WHITESPACE@2209..2213 "    "
          PRE_ANNOTATION@2213..2238 "@ Port matching speci ..."
          EOL@2238..2239 "\n"
          WHITESPACE@2239..2243 "    "
          MATCH_KW@2243..2259
            MATCH_KW@2243..2248 "match"
            WHITESPACE@2248..2249 " "
            NAME_REF@2249..2251
              IDENT@2249..2251 "p1"
            WHITESPACE@2251..2252 " "
            WITH_KW@2252..2256 "with"
            WHITESPACE@2256..2257 " "
            NAME_REF@2257..2259
              IDENT@2257..2259 "p2"
          EOL@2259..2260 "\n"
          WHITESPACE@2260..2264 "    "
          POST_ANNOTATION@2264..2290 "@< Port matching spec ..."
          EOL@2290..2292 "\n\n"
          WHITESPACE@2292..2296 "    "
          PRE_ANNOTATION@2296..2325 "@ Telemetry channel s ..."
          EOL@2325..2326 "\n"
          WHITESPACE@2326..2330 "    "
          SPEC_TELEMETRY@2330..2473
            TELEMETRY_KW@2330..2339 "telemetry"
            WHITESPACE@2339..2340 " "
            NAME@2340..2341
              IDENT@2340..2341 "T"
            COLON@2341..2342 ":"
            WHITESPACE@2342..2343 " "
            TYPE_NAME@2343..2346
              U32_KW@2343..2346 "U32"
            WHITESPACE@2346..2347 " "
            ID@2347..2354
              ID_KW@2347..2349 "id"
              WHITESPACE@2349..2350 " "
              EXPR@2350..2354
                EXPR_LITERAL@2350..2354
                  LITERAL_INT@2350..2354 "0x00"
            WHITESPACE@2354..2355 " "
            UPDATE_KW@2355..2361 "update"
            WHITESPACE@2361..2362 " "
            ON_KW@2362..2364 "on"
            WHITESPACE@2364..2365 " "
            CHANGE_KW@2365..2371 "change"
            WHITESPACE@2371..2372 " "
            FORMAT@2372..2385
              FORMAT_KW@2372..2378 "format"
              WHITESPACE@2378..2379 " "
              LITERAL_STRING@2379..2385 "\"{} s\""
            WHITESPACE@2385..2386 " "
            WHITESPACE@2386..2388 "\\\n"
            WHITESPACE@2388..2394 "      "
            LOW_KW@2394..2397 "low"
            WHITESPACE@2397..2398 " "
            LIMIT_SEQUENCE@2398..2427
              LEFT_CURLY@2398..2399 "{"
              WHITESPACE@2399..2400 " "
              LIMIT@2400..2405
                RED_KW@2400..2403 "red"
                WHITESPACE@2403..2404 " "
                EXPR@2404..2405
                  EXPR_LITERAL@2404..2405
                    LITERAL_INT@2404..2405 "0"
              COMMA@2405..2406 ","
              WHITESPACE@2406..2407 " "
              LIMIT@2407..2415
                ORANGE_KW@2407..2413 "orange"
                WHITESPACE@2413..2414 " "
                EXPR@2414..2415
                  EXPR_LITERAL@2414..2415
                    LITERAL_INT@2414..2415 "1"
              COMMA@2415..2416 ","
              WHITESPACE@2416..2417 " "
              LIMIT@2417..2425
                YELLOW_KW@2417..2423 "yellow"
                WHITESPACE@2423..2424 " "
                EXPR@2424..2425
                  EXPR_LITERAL@2424..2425
                    LITERAL_INT@2424..2425 "2"
              WHITESPACE@2425..2426 " "
              RIGHT_CURLY@2426..2427 "}"
            WHITESPACE@2427..2428 " "
            WHITESPACE@2428..2430 "\\\n"
            WHITESPACE@2430..2436 "      "
            HIGH_KW@2436..2440 "high"
            WHITESPACE@2440..2441 " "
            LIMIT_SEQUENCE@2441..2473
              LEFT_CURLY@2441..2442 "{"
              WHITESPACE@2442..2443 " "
              LIMIT@2443..2452
                YELLOW_KW@2443..2449 "yellow"
                WHITESPACE@2449..2450 " "
                EXPR@2450..2452
                  EXPR_LITERAL@2450..2452
                    LITERAL_INT@2450..2452 "10"
              COMMA@2452..2453 ","
              WHITESPACE@2453..2454 " "
              LIMIT@2454..2463
                ORANGE_KW@2454..2460 "orange"
                WHITESPACE@2460..2461 " "
                EXPR@2461..2463
                  EXPR_LITERAL@2461..2463
                    LITERAL_INT@2461..2463 "11"
              COMMA@2463..2464 ","
              WHITESPACE@2464..2465 " "
              LIMIT@2465..2471
                RED_KW@2465..2468 "red"
                WHITESPACE@2468..2469 " "
                EXPR@2469..2471
                  EXPR_LITERAL@2469..2471
                    LITERAL_INT@2469..2471 "12"
              WHITESPACE@2471..2472 " "
              RIGHT_CURLY@2472..2473 "}"
          EOL@2473..2474 "\n"
          WHITESPACE@2474..2478 "    "
          POST_ANNOTATION@2478..2508 "@< Telemetry channel  ..."
          EOL@2508..2510 "\n\n"
          WHITESPACE@2510..2514 "    "
          PRE_ANNOTATION@2514..2531 "@ Event specifier"
          EOL@2531..2532 "\n"
          WHITESPACE@2532..2536 "    "
          SPEC_EVENT@2536..2620
            EVENT_KW@2536..2541 "event"
            WHITESPACE@2541..2542 " "
            NAME@2542..2543
              IDENT@2542..2543 "E"
            FORMAL_PARAM_LIST@2543..2559
              LEFT_PAREN@2543..2544 "("
              FORMAL_PARAM@2544..2550
                NAME@2544..2545
                  IDENT@2544..2545 "a"
                COLON@2545..2546 ":"
                WHITESPACE@2546..2547 " "
                TYPE_NAME@2547..2550
                  U32_KW@2547..2550 "U32"
              COMMA@2550..2551 ","
              WHITESPACE@2551..2552 " "
              FORMAL_PARAM@2552..2558
                NAME@2552..2553
                  IDENT@2552..2553 "b"
                COLON@2553..2554 ":"
                WHITESPACE@2554..2555 " "
                TYPE_NAME@2555..2558
                  F32_KW@2555..2558 "F32"
              RIGHT_PAREN@2558..2559 ")"
            WHITESPACE@2559..2560 " "
            EVENT_SEVERITY@2560..2581
              SEVERITY_KW@2560..2568 "severity"
              WHITESPACE@2568..2569 " "
              ACTIVITY_KW@2569..2577 "activity"
              WHITESPACE@2577..2578 " "
              LOW_KW@2578..2581 "low"
            WHITESPACE@2581..2582 " "
            ID@2582..2589
              ID_KW@2582..2584 "id"
              WHITESPACE@2584..2585 " "
              EXPR@2585..2589
                EXPR_LITERAL@2585..2589
                  LITERAL_INT@2585..2589 "0x00"
            WHITESPACE@2589..2590 " "
            FORMAT@2590..2608
              FORMAT_KW@2590..2596 "format"
              WHITESPACE@2596..2597 " "
              LITERAL_STRING@2597..2608 "\"{} counts\""
            WHITESPACE@2608..2609 " "
            EVENT_THROTTLE@2609..2620
              THROTTLE_KW@2609..2617 "throttle"
              WHITESPACE@2617..2618 " "
              EXPR@2618..2620
                EXPR_LITERAL@2618..2620
                  LITERAL_INT@2618..2620 "10"
          EOL@2620..2621 "\n"
          WHITESPACE@2621..2625 "    "
          POST_ANNOTATION@2625..2643 "@< Event specifier"
          EOL@2643..2645 "\n\n"
          WHITESPACE@2645..2649 "    "
          PRE_ANNOTATION@2649..2688 "@ Event specifier wit ..."
          EOL@2688..2689 "\n"
          WHITESPACE@2689..2693 "    "
          SPEC_EVENT@2693..2798
            EVENT_KW@2693..2698 "event"
            WHITESPACE@2698..2699 " "
            NAME@2699..2701
              IDENT@2699..2701 "ET"
            FORMAL_PARAM_LIST@2701..2717
              LEFT_PAREN@2701..2702 "("
              FORMAL_PARAM@2702..2708
                NAME@2702..2703
                  IDENT@2702..2703 "a"
                COLON@2703..2704 ":"
                WHITESPACE@2704..2705 " "
                TYPE_NAME@2705..2708
                  U32_KW@2705..2708 "U32"
              COMMA@2708..2709 ","
              WHITESPACE@2709..2710 " "
              FORMAL_PARAM@2710..2716
                NAME@2710..2711
                  IDENT@2710..2711 "b"
                COLON@2711..2712 ":"
                WHITESPACE@2712..2713 " "
                TYPE_NAME@2713..2716
                  F32_KW@2713..2716 "F32"
              RIGHT_PAREN@2716..2717 ")"
            WHITESPACE@2717..2718 " "
            EVENT_SEVERITY@2718..2740
              SEVERITY_KW@2718..2726 "severity"
              WHITESPACE@2726..2727 " "
              ACTIVITY_KW@2727..2735 "activity"
              WHITESPACE@2735..2736 " "
              HIGH_KW@2736..2740 "high"
            WHITESPACE@2740..2741 " "
            ID@2741..2748
              ID_KW@2741..2743 "id"
              WHITESPACE@2743..2744 " "
              EXPR@2744..2748
                EXPR_LITERAL@2744..2748
                  LITERAL_INT@2744..2748 "0x00"
            WHITESPACE@2748..2749 " "
            FORMAT@2749..2767
              FORMAT_KW@2749..2755 "format"
              WHITESPACE@2755..2756 " "
              LITERAL_STRING@2756..2767 "\"{} counts\""
            WHITESPACE@2767..2768 " "
            EVENT_THROTTLE@2768..2798
              THROTTLE_KW@2768..2776 "throttle"
              WHITESPACE@2776..2777 " "
              EXPR@2777..2779
                EXPR_LITERAL@2777..2779
                  LITERAL_INT@2777..2779 "10"
              WHITESPACE@2779..2780 " "
              EVERY@2780..2798
                EVERY_KW@2780..2785 "every"
                WHITESPACE@2785..2786 " "
                EXPR@2786..2798
                  EXPR_STRUCT@2786..2798
                    EXPR_STRUCT_MEMBER_LIST@2786..2798
                      LEFT_CURLY@2786..2787 "{"
                      EXPR_STRUCT_MEMBER@2787..2797
                        IDENT@2787..2794 "seconds"
                        EQUALS@2794..2795 "="
                        EXPR@2795..2797
                          EXPR_LITERAL@2795..2797
                            LITERAL_INT@2795..2797 "10"
                      RIGHT_CURLY@2797..2798 "}"
          EOL@2798..2799 "\n"
          WHITESPACE@2799..2803 "    "
          POST_ANNOTATION@2803..2821 "@< Event specifier"
          EOL@2821..2823 "\n\n"
          WHITESPACE@2823..2827 "    "
          PRE_ANNOTATION@2827..2852 "@ Internal port speci ..."
          EOL@2852..2853 "\n"
          WHITESPACE@2853..2857 "    "
          SPEC_PORT_INSTANCE_INTERNAL@2857..2907
            INTERNAL_KW@2857..2865 "internal"
            WHITESPACE@2865..2866 " "
            PORT_KW@2866..2870 "port"
            WHITESPACE@2870..2871 " "
            NAME@2871..2872
              IDENT@2871..2872 "I"
            FORMAL_PARAM_LIST@2872..2888
              LEFT_PAREN@2872..2873 "("
              FORMAL_PARAM@2873..2879
                NAME@2873..2874
                  IDENT@2873..2874 "a"
                COLON@2874..2875 ":"
                WHITESPACE@2875..2876 " "
                TYPE_NAME@2876..2879
                  U32_KW@2876..2879 "U32"
              COMMA@2879..2880 ","
              WHITESPACE@2880..2881 " "
              FORMAL_PARAM@2881..2887
                NAME@2881..2882
                  IDENT@2881..2882 "b"
                COLON@2882..2883 ":"
                WHITESPACE@2883..2884 " "
                TYPE_NAME@2884..2887
                  F32_KW@2884..2887 "F32"
              RIGHT_PAREN@2887..2888 ")"
            WHITESPACE@2888..2889 " "
            PRIORITY@2889..2900
              PRIORITY_KW@2889..2897 "priority"
              WHITESPACE@2897..2898 " "
              EXPR@2898..2900
                EXPR_LITERAL@2898..2900
                  LITERAL_INT@2898..2900 "10"
            WHITESPACE@2900..2901 " "
            QUEUE_FULL@2901..2907
              ASSERT_KW@2901..2907 "assert"
          EOL@2907..2908 "\n"
          WHITESPACE@2908..2912 "    "
          POST_ANNOTATION@2912..2938 "@< Internal port spec ..."
          EOL@2938..2940 "\n\n"
          WHITESPACE@2940..2944 "    "
          PRE_ANNOTATION@2944..2972 "@ Interface import sp ..."
          EOL@2972..2973 "\n"
          WHITESPACE@2973..2977 "    "
          SPEC_INTERFACE_IMPORT@2977..2985
            IMPORT_KW@2977..2983 "import"
            WHITESPACE@2983..2984 " "
            QUAL_IDENT@2984..2985
              IDENT@2984..2985 "I"
          EOL@2985..2986 "\n"
          WHITESPACE@2986..2990 "    "
          POST_ANNOTATION@2990..3019 "@< Interface import s ..."
          EOL@3019..3020 "\n"
          WHITESPACE@3020..3022 "  "
          RIGHT_CURLY@3022..3023 "}"
      EOL@3023..3024 "\n"
      WHITESPACE@3024..3026 "  "
      POST_ANNOTATION@3026..3049 "@< Component definition"
      EOL@3049..3051 "\n\n"
      WHITESPACE@3051..3053 "  "
      PRE_ANNOTATION@3053..3091 "@ Simple component in ..."
      EOL@3091..3092 "\n"
      WHITESPACE@3092..3094 "  "
      DEF_COMPONENT_INSTANCE@3094..3123
        INSTANCE_KW@3094..3102 "instance"
        WHITESPACE@3102..3103 " "
        NAME@3103..3105
          IDENT@3103..3105 "c1"
        COLON@3105..3106 ":"
        WHITESPACE@3106..3107 " "
        QUAL_IDENT@3107..3109
          IDENT@3107..3109 "C1"
        WHITESPACE@3109..3110 " "
        BASE_ID@3110..3123
          BASE_KW@3110..3114 "base"
          WHITESPACE@3114..3115 " "
          ID_KW@3115..3117 "id"
          WHITESPACE@3117..3118 " "
          EXPR@3118..3123
            EXPR_LITERAL@3118..3123
              LITERAL_INT@3118..3123 "0x100"
      EOL@3123..3124 "\n"
      WHITESPACE@3124..3126 "  "
      POST_ANNOTATION@3126..3165 "@< Simple component i ..."
      EOL@3165..3167 "\n\n"
      WHITESPACE@3167..3169 "  "
      PRE_ANNOTATION@3169..3200 "@ Component instance  ..."
      EOL@3200..3201 "\n"
      WHITESPACE@3201..3203 "  "
      DEF_COMPONENT_INSTANCE@3203..3421
        INSTANCE_KW@3203..3211 "instance"
        WHITESPACE@3211..3212 " "
        NAME@3212..3214
          IDENT@3212..3214 "c2"
        COLON@3214..3215 ":"
        WHITESPACE@3215..3216 " "
        QUAL_IDENT@3216..3218
          IDENT@3216..3218 "C2"
        WHITESPACE@3218..3219 " "
        BASE_ID@3219..3232
          BASE_KW@3219..3223 "base"
          WHITESPACE@3223..3224 " "
          ID_KW@3224..3226 "id"
          WHITESPACE@3226..3227 " "
          EXPR@3227..3232
            EXPR_LITERAL@3227..3232
              LITERAL_INT@3227..3232 "0x200"
        WHITESPACE@3232..3233 " "
        COMPONENT_INSTANCE_TYPE@3233..3241
          TYPE_KW@3233..3237 "type"
          WHITESPACE@3237..3238 " "
          LITERAL_STRING@3238..3241 "\"T\""
        WHITESPACE@3241..3242 " "
        COMPONENT_INSTANCE_FILE@3242..3253
          AT_KW@3242..3244 "at"
          WHITESPACE@3244..3245 " "
          LITERAL_STRING@3245..3253 "\"C2.hpp\""
        WHITESPACE@3253..3254 " "
        QUEUE_SIZE@3254..3268
          QUEUE_KW@3254..3259 "queue"
          WHITESPACE@3259..3260 " "
          SIZE_KW@3260..3264 "size"
          WHITESPACE@3264..3265 " "
          EXPR@3265..3268
            EXPR_LITERAL@3265..3268
              LITERAL_INT@3265..3268 "100"
        WHITESPACE@3268..3269 " "
        STACK_SIZE@3269..3284
          STACK_KW@3269..3274 "stack"
          WHITESPACE@3274..3275 " "
          SIZE_KW@3275..3279 "size"
          WHITESPACE@3279..3280 " "
          EXPR@3280..3284
            EXPR_LITERAL@3280..3284
              LITERAL_INT@3280..3284 "1024"
        WHITESPACE@3284..3285 " "
        PRIORITY@3285..3296
          PRIORITY_KW@3285..3293 "priority"
          WHITESPACE@3293..3294 " "
          EXPR@3294..3296
            EXPR_LITERAL@3294..3296
              LITERAL_INT@3294..3296 "10"
        WHITESPACE@3296..3297 " "
        CPU@3297..3302
          CPU_KW@3297..3300 "cpu"
          WHITESPACE@3300..3301 " "
          EXPR@3301..3302
            EXPR_LITERAL@3301..3302
              LITERAL_INT@3301..3302 "0"
        WHITESPACE@3302..3303 " "
        INIT_SPEC_LIST@3303..3421
          LEFT_CURLY@3303..3304 "{"
          EOL@3304..3305 "\n"
          WHITESPACE@3305..3309 "    "
          PRE_ANNOTATION@3309..3325 "@ Init specifier"
          EOL@3325..3326 "\n"
          WHITESPACE@3326..3330 "    "
          SPEC_INIT@3330..3395
            PHASE_KW@3330..3335 "phase"
            WHITESPACE@3335..3336 " "
            EXPR@3336..3348
              EXPR_IDENT@3336..3348
                IDENT@3336..3348 "CONSTRUCTION"
            WHITESPACE@3348..3349 " "
            LITERAL_STRING@3349..3395 "\"\"\"\n    line 1\n       ..."
          EOL@3395..3396 "\n"
          WHITESPACE@3396..3400 "    "
          POST_ANNOTATION@3400..3417 "@< Init specifier"
          EOL@3417..3418 "\n"
          WHITESPACE@3418..3420 "  "
          RIGHT_CURLY@3420..3421 "}"
      EOL@3421..3422 "\n"
      WHITESPACE@3422..3424 "  "
      POST_ANNOTATION@3424..3456 "@< Component instance ..."
      EOL@3456..3458 "\n\n"
      WHITESPACE@3458..3460 "  "
      PRE_ANNOTATION@3460..3481 "@ Constant definition"
      EOL@3481..3482 "\n"
      WHITESPACE@3482..3484 "  "
      DEF_CONSTANT@3484..3498
        CONSTANT_KW@3484..3492 "constant"
        WHITESPACE@3492..3493 " "
        NAME@3493..3494
          IDENT@3493..3494 "x"
        WHITESPACE@3494..3495 " "
        EQUALS@3495..3496 "="
        WHITESPACE@3496..3497 " "
        EXPR@3497..3498
          EXPR_LITERAL@3497..3498
            LITERAL_INT@3497..3498 "0"
      EOL@3498..3499 "\n"
      WHITESPACE@3499..3501 "  "
      POST_ANNOTATION@3501..3523 "@< Constant definition"
      EOL@3523..3525 "\n\n"
      WHITESPACE@3525..3527 "  "
      PRE_ANNOTATION@3527..3544 "@ Enum definition"
      EOL@3544..3545 "\n"
      WHITESPACE@3545..3547 "  "
      DEF_ENUM@3547..3619
        ENUM_KW@3547..3551 "enum"
        WHITESPACE@3551..3552 " "
        NAME@3552..3553
          IDENT@3552..3553 "E"
        WHITESPACE@3553..3554 " "
        COLON@3554..3555 ":"
        WHITESPACE@3555..3556 " "
        TYPE_NAME@3556..3559
          I32_KW@3556..3559 "I32"
        WHITESPACE@3559..3560 " "
        ENUM_MEMBER_LIST@3560..3619
          LEFT_CURLY@3560..3561 "{"
          EOL@3561..3562 "\n"
          WHITESPACE@3562..3566 "    "
          PRE_ANNOTATION@3566..3569 "@ X"
          EOL@3569..3570 "\n"
          WHITESPACE@3570..3574 "    "
          DEF_ENUM_CONSTANT@3574..3579
            NAME@3574..3575
              IDENT@3574..3575 "X"
            WHITESPACE@3575..3576 " "
            EQUALS@3576..3577 "="
            WHITESPACE@3577..3578 " "
            EXPR@3578..3579
              EXPR_LITERAL@3578..3579
                LITERAL_INT@3578..3579 "1"
          EOL@3579..3580 "\n"
          WHITESPACE@3580..3584 "    "
          POST_ANNOTATION@3584..3588 "@< X"
          EOL@3588..3589 "\n"
          WHITESPACE@3589..3593 "    "
          PRE_ANNOTATION@3593..3596 "@ Y"
          EOL@3596..3597 "\n"
          WHITESPACE@3597..3601 "    "
          DEF_ENUM_CONSTANT@3601..3606
            NAME@3601..3602
              IDENT@3601..3602 "Y"
            WHITESPACE@3602..3603 " "
            EQUALS@3603..3604 "="
            WHITESPACE@3604..3605 " "
            EXPR@3605..3606
              EXPR_LITERAL@3605..3606
                LITERAL_INT@3605..3606 "2"
          EOL@3606..3607 "\n"
          WHITESPACE@3607..3611 "    "
          POST_ANNOTATION@3611..3615 "@< Y"
          EOL@3615..3616 "\n"
          WHITESPACE@3616..3618 "  "
          RIGHT_CURLY@3618..3619 "}"
      EOL@3619..3620 "\n"
      WHITESPACE@3620..3622 "  "
      POST_ANNOTATION@3622..3640 "@< Enum definition"
      EOL@3640..3642 "\n\n"
      WHITESPACE@3642..3644 "  "
      PRE_ANNOTATION@3644..3663 "@ Module definition"
      EOL@3663..3664 "\n"
      WHITESPACE@3664..3666 "  "
      DEF_MODULE@3666..3701
        MODULE_KW@3666..3672 "module"
        WHITESPACE@3672..3673 " "
        NAME@3673..3674
          IDENT@3673..3674 "M"
        WHITESPACE@3674..3675 " "
        MODULE_MEMBER_LIST@3675..3701
          LEFT_CURLY@3675..3676 "{"
          EOL@3676..3678 "\n\n"
          WHITESPACE@3678..3682 "    "
          DEF_CONSTANT@3682..3696
            CONSTANT_KW@3682..3690 "constant"
            WHITESPACE@3690..3691 " "
            NAME@3691..3692
              IDENT@3691..3692 "x"
            WHITESPACE@3692..3693 " "
            EQUALS@3693..3694 "="
            WHITESPACE@3694..3695 " "
            EXPR@3695..3696
              EXPR_LITERAL@3695..3696
                LITERAL_INT@3695..3696 "0"
          EOL@3696..3698 "\n\n"
          WHITESPACE@3698..3700 "  "
          RIGHT_CURLY@3700..3701 "}"
      EOL@3701..3702 "\n"
      WHITESPACE@3702..3704 "  "
      POST_ANNOTATION@3704..3724 "@< Module definition"
      EOL@3724..3726 "\n\n"
      WHITESPACE@3726..3728 "  "
      PRE_ANNOTATION@3728..3747 "@ Include specifier"
      EOL@3747..3748 "\n"
      WHITESPACE@3748..3750 "  "
      SPEC_INCLUDE@3750..3773
        INCLUDE_KW@3750..3757 "include"
        WHITESPACE@3757..3758 " "
        LITERAL_STRING@3758..3773 "\"constant.fppi\""
      EOL@3773..3774 "\n"
      WHITESPACE@3774..3776 "  "
      POST_ANNOTATION@3776..3796 "@< Include specifier"
      EOL@3796..3798 "\n\n"
      WHITESPACE@3798..3800 "  "
      PRE_ANNOTATION@3800..3817 "@ Port definition"
      EOL@3817..3818 "\n"
      WHITESPACE@3818..3820 "  "
      DEF_PORT@3820..3849
        PORT_KW@3820..3824 "port"
        WHITESPACE@3824..3825 " "
        NAME@3825..3826
          IDENT@3825..3826 "P"
        FORMAL_PARAM_LIST@3826..3842
          LEFT_PAREN@3826..3827 "("
          FORMAL_PARAM@3827..3833
            NAME@3827..3828
              IDENT@3827..3828 "a"
            COLON@3828..3829 ":"
            WHITESPACE@3829..3830 " "
            TYPE_NAME@3830..3833
              U32_KW@3830..3833 "U32"
          COMMA@3833..3834 ","
          WHITESPACE@3834..3835 " "
          FORMAL_PARAM@3835..3841
            NAME@3835..3836
              IDENT@3835..3836 "b"
            COLON@3836..3837 ":"
            WHITESPACE@3837..3838 " "
            TYPE_NAME@3838..3841
              F32_KW@3838..3841 "F32"
          RIGHT_PAREN@3841..3842 ")"
        WHITESPACE@3842..3843 " "
        RIGHT_ARROW@3843..3845 "->"
        WHITESPACE@3845..3846 " "
        TYPE_NAME@3846..3849
          U32_KW@3846..3849 "U32"
      EOL@3849..3850 "\n"
      WHITESPACE@3850..3852 "  "
      POST_ANNOTATION@3852..3870 "@< Port definition"
      EOL@3870..3872 "\n\n"
      WHITESPACE@3872..3874 "  "
      PRE_ANNOTATION@3874..3893 "@ Struct definition"
      EOL@3893..3894 "\n"
      WHITESPACE@3894..3896 "  "
      DEF_STRUCT@3896..3996
        STRUCT_KW@3896..3902 "struct"
        WHITESPACE@3902..3903 " "
        NAME@3903..3904
          IDENT@3903..3904 "S"
        WHITESPACE@3904..3905 " "
        STRUCT_MEMBER_LIST@3905..3996
          LEFT_CURLY@3905..3906 "{"
          EOL@3906..3907 "\n"
          WHITESPACE@3907..3911 "    "
          PRE_ANNOTATION@3911..3914 "@ x"
          EOL@3914..3915 "\n"
          WHITESPACE@3915..3919 "    "
          STRUCT_MEMBER@3919..3939
            NAME@3919..3920
              IDENT@3919..3920 "x"
            COLON@3920..3921 ":"
            WHITESPACE@3921..3922 " "
            TYPE_NAME@3922..3925
              U32_KW@3922..3925 "U32"
            WHITESPACE@3925..3926 " "
            FORMAT@3926..3939
              FORMAT_KW@3926..3932 "format"
              WHITESPACE@3932..3933 " "
              LITERAL_STRING@3933..3939 "\"{} s\""
          EOL@3939..3940 "\n"
          WHITESPACE@3940..3944 "    "
          POST_ANNOTATION@3944..3948 "@< x"
          EOL@3948..3949 "\n"
          WHITESPACE@3949..3953 "    "
          PRE_ANNOTATION@3953..3956 "@ y"
          EOL@3956..3957 "\n"
          WHITESPACE@3957..3961 "    "
          STRUCT_MEMBER@3961..3983
            NAME@3961..3962
              IDENT@3961..3962 "y"
            COLON@3962..3963 ":"
            WHITESPACE@3963..3964 " "
            TYPE_NAME@3964..3967
              F32_KW@3964..3967 "F32"
            WHITESPACE@3967..3968 " "
            FORMAT@3968..3983
              FORMAT_KW@3968..3974 "format"
              WHITESPACE@3974..3975 " "
              LITERAL_STRING@3975..3983 "\"{} m/s\""
          EOL@3983..3984 "\n"
          WHITESPACE@3984..3988 "    "
          POST_ANNOTATION@3988..3992 "@< y"
          EOL@3992..3993 "\n"
          WHITESPACE@3993..3995 "  "
          RIGHT_CURLY@3995..3996 "}"
      EOL@3996..3997 "\n"
      WHITESPACE@3997..3999 "  "
      POST_ANNOTATION@3999..4019 "@< Struct definition"
      EOL@4019..4021 "\n\n"
      WHITESPACE@4021..4023 "  "
      PRE_ANNOTATION@4023..4044 "@ Topology definition"
      EOL@4044..4045 "\n"
      WHITESPACE@4045..4047 "  "
      DEF_TOPOLOGY@4047..4941
        TOPOLOGY_KW@4047..4055 "topology"
        WHITESPACE@4055..4056 " "
        NAME@4056..4057
          IDENT@4056..4057 "T"
        WHITESPACE@4057..4058 " "
        TOPOLOGY_MEMBER_LIST@4058..4941
          LEFT_CURLY@4058..4059 "{"
          EOL@4059..4061 "\n\n"
          WHITESPACE@4061..4065 "    "
          PRE_ANNOTATION@4065..4092 "@ Public instance spe ..."
          EOL@4092..4093 "\n"
          WHITESPACE@4093..4097 "    "
          SPEC_INSTANCE@4097..4108
            INSTANCE_KW@4097..4105 "instance"
            WHITESPACE@4105..4106 " "
            QUAL_IDENT@4106..4108
              IDENT@4106..4108 "i1"
          EOL@4108..4109 "\n"
          WHITESPACE@4109..4113 "    "
          POST_ANNOTATION@4113..4141 "@< Public instance sp ..."
          EOL@4141..4143 "\n\n"
          WHITESPACE@4143..4147 "    "
          PRE_ANNOTATION@4147..4182 "@ Direct connection g ..."
          EOL@4182..4183 "\n"
          WHITESPACE@4183..4187 "    "
          SPEC_CONNECTION_GRAPH_DIRECT@4187..4301
            CONNECTIONS_KW@4187..4198 "connections"
            WHITESPACE@4198..4199 " "
            NAME@4199..4200
              IDENT@4199..4200 "C"
            WHITESPACE@4200..4201 " "
            CONNECTION_MEMBER_LIST@4201..4301
              LEFT_CURLY@4201..4202 "{"
              EOL@4202..4203 "\n"
              WHITESPACE@4203..4209 "      "
              CONNECTION@4209..4227
                CONNECTION_FROM@4209..4216
                  PORT_INSTANCE_IDENTIFIER@4209..4213
                    IDENT@4209..4211 "i1"
                    DOT@4211..4212 "."
                    IDENT@4212..4213 "p"
                  INDEX_OR_SIZE@4213..4216
                    LEFT_SQUARE@4213..4214 "["
                    EXPR@4214..4215
                      EXPR_LITERAL@4214..4215
                        LITERAL_INT@4214..4215 "0"
                    RIGHT_SQUARE@4215..4216 "]"
                WHITESPACE@4216..4217 " "
                RIGHT_ARROW@4217..4219 "->"
                WHITESPACE@4219..4220 " "
                CONNECTION_TO@4220..4227
                  PORT_INSTANCE_IDENTIFIER@4220..4224
                    IDENT@4220..4222 "i2"
                    DOT@4222..4223 "."
                    IDENT@4223..4224 "p"
                  INDEX_OR_SIZE@4224..4227
                    LEFT_SQUARE@4224..4225 "["
                    EXPR@4225..4226
                      EXPR_LITERAL@4225..4226
                        LITERAL_INT@4225..4226 "1"
                    RIGHT_SQUARE@4226..4227 "]"
              EOL@4227..4228 "\n"
              WHITESPACE@4228..4234 "      "
              CONNECTION@4234..4264
                UNMATCHED_KW@4234..4243 "unmatched"
                WHITESPACE@4243..4244 " "
                CONNECTION_FROM@4244..4252
                  PORT_INSTANCE_IDENTIFIER@4244..4249
                    IDENT@4244..4246 "i1"
                    DOT@4246..4247 "."
                    IDENT@4247..4249 "p1"
                  INDEX_OR_SIZE@4249..4252
                    LEFT_SQUARE@4249..4250 "["
                    EXPR@4250..4251
                      EXPR_LITERAL@4250..4251
                        LITERAL_INT@4250..4251 "0"
                    RIGHT_SQUARE@4251..4252 "]"
                WHITESPACE@4252..4253 " "
                RIGHT_ARROW@4253..4255 "->"
                WHITESPACE@4255..4256 " "
                CONNECTION_TO@4256..4264
                  PORT_INSTANCE_IDENTIFIER@4256..4261
                    IDENT@4256..4258 "i2"
                    DOT@4258..4259 "."
                    IDENT@4259..4261 "p2"
                  INDEX_OR_SIZE@4261..4264
                    LEFT_SQUARE@4261..4262 "["
                    EXPR@4262..4263
                      EXPR_LITERAL@4262..4263
                        LITERAL_INT@4262..4263 "0"
                    RIGHT_SQUARE@4263..4264 "]"
              EOL@4264..4265 "\n"
              WHITESPACE@4265..4271 "      "
              CONNECTION@4271..4295
                UNMATCHED_KW@4271..4280 "unmatched"
                WHITESPACE@4280..4281 " "
                CONNECTION_FROM@4281..4286
                  PORT_INSTANCE_IDENTIFIER@4281..4286
                    IDENT@4281..4283 "i1"
                    DOT@4283..4284 "."
                    IDENT@4284..4286 "p1"
                WHITESPACE@4286..4287 " "
                RIGHT_ARROW@4287..4289 "->"
                WHITESPACE@4289..4290 " "
                CONNECTION_TO@4290..4295
                  PORT_INSTANCE_IDENTIFIER@4290..4295
                    IDENT@4290..4292 "i2"
                    DOT@4292..4293 "."
                    IDENT@4293..4295 "p2"
              EOL@4295..4296 "\n"
              WHITESPACE@4296..4300 "    "
              RIGHT_CURLY@4300..4301 "}"
          EOL@4301..4302 "\n"
          WHITESPACE@4302..4306 "    "
          POST_ANNOTATION@4306..4342 "@< Direct connection  ..."
          EOL@4342..4344 "\n\n"
          WHITESPACE@4344..4348 "    "
          PRE_ANNOTATION@4348..4373 "@ Graph pattern speci ..."
          EOL@4373..4374 "\n"
          WHITESPACE@4374..4378 "    "
          SPEC_CONNECTION_GRAPH_PATTERN@4378..4424
            COMMAND_KW@4378..4385 "command"
            WHITESPACE@4385..4386 " "
            CONNECTIONS_KW@4386..4397 "connections"
            WHITESPACE@4397..4398 " "
            INSTANCE_KW@4398..4406 "instance"
            WHITESPACE@4406..4407 " "
            QUAL_IDENT@4407..4409
              IDENT@4407..4409 "i1"
            WHITESPACE@4409..4410 " "
            PATTERN_TARGET_MEMBER_LIST@4410..4424
              LEFT_CURLY@4410..4411 "{"
              WHITESPACE@4411..4412 " "
              QUAL_IDENT@4412..4414
                IDENT@4412..4414 "i2"
              COMMA@4414..4415 ","
              WHITESPACE@4415..4416 " "
              QUAL_IDENT@4416..4418
                IDENT@4416..4418 "i3"
              COMMA@4418..4419 ","
              WHITESPACE@4419..4420 " "
              QUAL_IDENT@4420..4422
                IDENT@4420..4422 "i4"
              WHITESPACE@4422..4423 " "
              RIGHT_CURLY@4423..4424 "}"
          EOL@4424..4425 "\n"
          WHITESPACE@4425..4429 "    "
          POST_ANNOTATION@4429..4455 "@< Graph pattern spec ..."
          EOL@4455..4457 "\n\n"
          WHITESPACE@4457..4461 "    "
          PRE_ANNOTATION@4461..4490 "@ Topology instance s ..."
          EOL@4490..4491 "\n"
          WHITESPACE@4491..4495 "    "
          SPEC_INSTANCE@4495..4504
            IMPORT_KW@4495..4501 "import"
            WHITESPACE@4501..4502 " "
            QUAL_IDENT@4502..4504
              IDENT@4502..4504 "T1"
          EOL@4504..4505 "\n"
          WHITESPACE@4505..4509 "    "
          POST_ANNOTATION@4509..4539 "@< Topology instance  ..."
          EOL@4539..4541 "\n\n"
          WHITESPACE@4541..4545 "    "
          PRE_ANNOTATION@4545..4569 "@ Telemetry packet group"
          EOL@4569..4570 "\n"
          WHITESPACE@4570..4574 "    "
          TLM_PACKET_SET@4574..4828
            TELEMETRY_KW@4574..4583 "telemetry"
            WHITESPACE@4583..4584 " "
            PACKETS_KW@4584..4591 "packets"
            WHITESPACE@4591..4592 " "
            NAME@4592..4593
              IDENT@4592..4593 "P"
            WHITESPACE@4593..4594 " "
            TLM_PACKET_SET_MEMBER_LIST@4594..4803
              LEFT_CURLY@4594..4595 "{"
              EOL@4595..4597 "\n\n"
              WHITESPACE@4597..4603 "      "
              PRE_ANNOTATION@4603..4621 "@ Telemetry packet"
              EOL@4621..4622 "\n"
              WHITESPACE@4622..4628 "      "
              SPEC_TLM_PACKET@4628..4688
                PACKET_KW@4628..4634 "packet"
                WHITESPACE@4634..4635 " "
                NAME@4635..4637
                  IDENT@4635..4637 "P1"
                WHITESPACE@4637..4638 " "
                ID@4638..4642
                  ID_KW@4638..4640 "id"
                  WHITESPACE@4640..4641 " "
                  EXPR@4641..4642
                    EXPR_LITERAL@4641..4642
                      LITERAL_INT@4641..4642 "0"
                WHITESPACE@4642..4643 " "
                GROUP@4643..4650
                  GROUP_KW@4643..4648 "group"
                  WHITESPACE@4648..4649 " "
                  EXPR@4649..4650
                    EXPR_LITERAL@4649..4650
                      LITERAL_INT@4649..4650 "0"
                WHITESPACE@4650..4651 " "
                TLM_PACKET_MEMBER_LIST@4651..4688
                  LEFT_CURLY@4651..4652 "{"
                  EOL@4652..4653 "\n"
                  WHITESPACE@4653..4661 "        "
                  TLM_CHANNEL_IDENTIFIER@4661..4666
                    IDENT@4661..4663 "i1"
                    DOT@4663..4664 "."
                    IDENT@4664..4666 "c1"
                  EOL@4666..4667 "\n"
                  WHITESPACE@4667..4675 "        "
                  TLM_CHANNEL_IDENTIFIER@4675..4680
                    IDENT@4675..4677 "i2"
                    DOT@4677..4678 "."
                    IDENT@4678..4680 "c2"
                  EOL@4680..4681 "\n"
                  WHITESPACE@4681..4687 "      "
                  RIGHT_CURLY@4687..4688 "}"
              EOL@4688..4689 "\n"
              WHITESPACE@4689..4695 "      "
              POST_ANNOTATION@4695..4714 "@< Telemetry packet"
              EOL@4714..4716 "\n\n"
              WHITESPACE@4716..4722 "      "
              PRE_ANNOTATION@4722..4741 "@ Include specifier"
              EOL@4741..4742 "\n"
              WHITESPACE@4742..4748 "      "
              SPEC_INCLUDE@4748..4769
                INCLUDE_KW@4748..4755 "include"
                WHITESPACE@4755..4756 " "
                LITERAL_STRING@4756..4769 "\"packet.fppi\""
              EOL@4769..4770 "\n"
              WHITESPACE@4770..4776 "      "
              POST_ANNOTATION@4776..4796 "@< Include specifier"
              EOL@4796..4798 "\n\n"
              WHITESPACE@4798..4802 "    "
              RIGHT_CURLY@4802..4803 "}"
            WHITESPACE@4803..4804 " "
            TLM_PACKET_OMIT@4804..4828
              OMIT_KW@4804..4808 "omit"
              WHITESPACE@4808..4809 " "
              TLM_PACKET_OMIT_MEMBER_LIST@4809..4828
                LEFT_CURLY@4809..4810 "{"
                EOL@4810..4811 "\n"
                WHITESPACE@4811..4817 "      "
                TLM_CHANNEL_IDENTIFIER@4817..4822
                  IDENT@4817..4819 "i3"
                  DOT@4819..4820 "."
                  IDENT@4820..4822 "c3"
                EOL@4822..4823 "\n"
                WHITESPACE@4823..4827 "    "
                RIGHT_CURLY@4827..4828 "}"
          EOL@4828..4829 "\n"
          WHITESPACE@4829..4833 "    "
          POST_ANNOTATION@4833..4858 "@< Telemetry packet g ..."
          EOL@4858..4860 "\n\n"
          WHITESPACE@4860..4864 "    "
          PRE_ANNOTATION@4864..4889 "@ Topology port speci ..."
          EOL@4889..4890 "\n"
          WHITESPACE@4890..4894 "    "
          SPEC_TOP_PORT@4894..4906
            PORT_KW@4894..4898 "port"
            WHITESPACE@4898..4899 " "
            NAME@4899..4900
              IDENT@4899..4900 "a"
            WHITESPACE@4900..4901 " "
            EQUALS@4901..4902 "="
            WHITESPACE@4902..4903 " "
            PORT_INSTANCE_IDENTIFIER@4903..4906
              IDENT@4903..4904 "b"
              DOT@4904..4905 "."
              IDENT@4905..4906 "a"
          EOL@4906..4907 "\n"
          WHITESPACE@4907..4911 "    "
          POST_ANNOTATION@4911..4937 "@< Topology port spec ..."
          EOL@4937..4938 "\n"
          WHITESPACE@4938..4940 "  "
          RIGHT_CURLY@4940..4941 "}"
      EOL@4941..4942 "\n"
      WHITESPACE@4942..4944 "  "
      POST_ANNOTATION@4944..4966 "@< Topology definition"
      EOL@4966..4968 "\n\n"
      WHITESPACE@4968..4970 "  "
      PRE_ANNOTATION@4970..5011 "@ Topology definition ..."
      EOL@5011..5012 "\n"
      WHITESPACE@5012..5014 "  "
      DEF_TOPOLOGY@5014..5040
        TOPOLOGY_KW@5014..5022 "topology"
        WHITESPACE@5022..5023 " "
        NAME@5023..5024
          IDENT@5023..5024 "T"
        WHITESPACE@5024..5025 " "
        IMPLEMENTS_CLAUSE@5025..5037
          IMPLEMENTS_KW@5025..5035 "implements"
          WHITESPACE@5035..5036 " "
          QUAL_IDENT@5036..5037
            IDENT@5036..5037 "I"
        WHITESPACE@5037..5038 " "
        TOPOLOGY_MEMBER_LIST@5038..5040
          LEFT_CURLY@5038..5039 "{"
          RIGHT_CURLY@5039..5040 "}"
      EOL@5040..5041 "\n"
      WHITESPACE@5041..5043 "  "
      POST_ANNOTATION@5043..5085 "@< Topology definitio ..."
      EOL@5085..5087 "\n\n"
      WHITESPACE@5087..5089 "  "
      PRE_ANNOTATION@5089..5130 "@ Topology definition ..."
      EOL@5130..5131 "\n"
      WHITESPACE@5131..5133 "  "
      DEF_TOPOLOGY@5133..5162
        TOPOLOGY_KW@5133..5141 "topology"
        WHITESPACE@5141..5142 " "
        NAME@5142..5143
          IDENT@5142..5143 "T"
        WHITESPACE@5143..5144 " "
        IMPLEMENTS_CLAUSE@5144..5159
          IMPLEMENTS_KW@5144..5154 "implements"
          WHITESPACE@5154..5155 " "
          QUAL_IDENT@5155..5156
            IDENT@5155..5156 "I"
          COMMA@5156..5157 ","
          WHITESPACE@5157..5158 " "
          QUAL_IDENT@5158..5159
            IDENT@5158..5159 "I"
        WHITESPACE@5159..5160 " "
        TOPOLOGY_MEMBER_LIST@5160..5162
          LEFT_CURLY@5160..5161 "{"
          RIGHT_CURLY@5161..5162 "}"
      EOL@5162..5163 "\n"
      WHITESPACE@5163..5165 "  "
      POST_ANNOTATION@5165..5207 "@< Topology definitio ..."
      EOL@5207..5209 "\n\n"
      WHITESPACE@5209..5211 "  "
      PRE_ANNOTATION@5211..5231 "@ Location specifier"
      EOL@5231..5232 "\n"
      WHITESPACE@5232..5234 "  "
      SPEC_LOC@5234..5270
        LOCATE_KW@5234..5240 "locate"
        WHITESPACE@5240..5241 " "
        INSTANCE_KW@5241..5249 "instance"
        WHITESPACE@5249..5250 " "
        QUAL_IDENT@5250..5251
          IDENT@5250..5251 "i"
        WHITESPACE@5251..5252 " "
        AT_KW@5252..5254 "at"
        WHITESPACE@5254..5255 " "
        LITERAL_STRING@5255..5270 "\"instances.fpp\""
      EOL@5270..5271 "\n"
      WHITESPACE@5271..5273 "  "
      POST_ANNOTATION@5273..5294 "@< Location specifier"
      EOL@5294..5296 "\n\n"
      RIGHT_CURLY@5296..5297 "}"
  EOL@5297..5298 "\n"
  POST_ANNOTATION@5298..5327 "@< Definitions and sp ..."
  EOL@5327..5329 "\n\n"
  PRE_ANNOTATION@5329..5341 "@ Type names"
  EOL@5341..5342 "\n"
  DEF_MODULE@5342..5538
    MODULE_KW@5342..5348 "module"
    WHITESPACE@5348..5349 " "
    NAME@5349..5358
      IDENT@5349..5358 "TypeNames"
    WHITESPACE@5358..5359 " "
    MODULE_MEMBER_LIST@5359..5538
      LEFT_CURLY@5359..5360 "{"
      EOL@5360..5362 "\n\n"
      WHITESPACE@5362..5364 "  "
      DEF_ARRAY@5364..5392
        ARRAY_KW@5364..5369 "array"
        WHITESPACE@5369..5370 " "
        NAME@5370..5381
          IDENT@5370..5381 "typeNameU32"
        WHITESPACE@5381..5382 " "
        EQUALS@5382..5383 "="
        WHITESPACE@5383..5384 " "
        INDEX_OR_SIZE@5384..5388
          LEFT_SQUARE@5384..5385 "["
          EXPR@5385..5387
            EXPR_LITERAL@5385..5387
              LITERAL_INT@5385..5387 "10"
          RIGHT_SQUARE@5387..5388 "]"
        WHITESPACE@5388..5389 " "
        TYPE_NAME@5389..5392
          U32_KW@5389..5392 "U32"
      EOL@5392..5393 "\n"
      WHITESPACE@5393..5395 "  "
      DEF_ARRAY@5395..5423
        ARRAY_KW@5395..5400 "array"
        WHITESPACE@5400..5401 " "
        NAME@5401..5412
          IDENT@5401..5412 "typeNameF32"
        WHITESPACE@5412..5413 " "
        EQUALS@5413..5414 "="
        WHITESPACE@5414..5415 " "
        INDEX_OR_SIZE@5415..5419
          LEFT_SQUARE@5415..5416 "["
          EXPR@5416..5418
            EXPR_LITERAL@5416..5418
              LITERAL_INT@5416..5418 "10"
          RIGHT_SQUARE@5418..5419 "]"
        WHITESPACE@5419..5420 " "
        TYPE_NAME@5420..5423
          F32_KW@5420..5423 "F32"
      EOL@5423..5424 "\n"
      WHITESPACE@5424..5426 "  "
      DEF_ARRAY@5426..5456
        ARRAY_KW@5426..5431 "array"
        WHITESPACE@5431..5432 " "
        NAME@5432..5444
          IDENT@5432..5444 "typeNameBool"
        WHITESPACE@5444..5445 " "
        EQUALS@5445..5446 "="
        WHITESPACE@5446..5447 " "
        INDEX_OR_SIZE@5447..5451
          LEFT_SQUARE@5447..5448 "["
          EXPR@5448..5450
            EXPR_LITERAL@5448..5450
              LITERAL_INT@5448..5450 "10"
          RIGHT_SQUARE@5450..5451 "]"
        WHITESPACE@5451..5452 " "
        TYPE_NAME@5452..5456
          BOOL_KW@5452..5456 "bool"
      EOL@5456..5457 "\n"
      WHITESPACE@5457..5459 "  "
      DEF_ARRAY@5459..5502
        ARRAY_KW@5459..5464 "array"
        WHITESPACE@5464..5465 " "
        NAME@5465..5479
          IDENT@5465..5479 "typeNameString"
        WHITESPACE@5479..5480 " "
        EQUALS@5480..5481 "="
        WHITESPACE@5481..5482 " "
        INDEX_OR_SIZE@5482..5486
          LEFT_SQUARE@5482..5483 "["
          EXPR@5483..5485
            EXPR_LITERAL@5483..5485
              LITERAL_INT@5483..5485 "10"
          RIGHT_SQUARE@5485..5486 "]"
        WHITESPACE@5486..5487 " "
        TYPE_NAME@5487..5502
          STRING_KW@5487..5493 "string"
          WHITESPACE@5493..5494 " "
          SIZE_KW@5494..5498 "size"
          WHITESPACE@5498..5499 " "
          EXPR@5499..5502
            EXPR_LITERAL@5499..5502
              LITERAL_INT@5499..5502 "256"
      EOL@5502..5503 "\n"
      WHITESPACE@5503..5505 "  "
      DEF_ARRAY@5505..5535
        ARRAY_KW@5505..5510 "array"
        WHITESPACE@5510..5511 " "
        NAME@5511..5522
          IDENT@5511..5522 "typeNameQID"
        WHITESPACE@5522..5523 " "
        EQUALS@5523..5524 "="
        WHITESPACE@5524..5525 " "
        INDEX_OR_SIZE@5525..5529
          LEFT_SQUARE@5525..5526 "["
          EXPR@5526..5528
            EXPR_LITERAL@5526..5528
              LITERAL_INT@5526..5528 "10"
          RIGHT_SQUARE@5528..5529 "]"
        WHITESPACE@5529..5530 " "
        TYPE_NAME@5530..5535
          QUAL_IDENT@5530..5535
            IDENT@5530..5531 "a"
            DOT@5531..5532 "."
            IDENT@5532..5533 "b"
            DOT@5533..5534 "."
            IDENT@5534..5535 "c"
      EOL@5535..5537 "\n\n"
      RIGHT_CURLY@5537..5538 "}"
  EOL@5538..5539 "\n"
  POST_ANNOTATION@5539..5552 "@< Type names"
  EOL@5552..5554 "\n\n"
  PRE_ANNOTATION@5554..5567 "@ Expressions"
  EOL@5567..5568 "\n"
  DEF_MODULE@5568..6790
    MODULE_KW@5568..5574 "module"
    WHITESPACE@5574..5575 " "
    NAME@5575..5586
      IDENT@5575..5586 "Expressions"
    WHITESPACE@5586..5587 " "
    MODULE_MEMBER_LIST@5587..6790
      LEFT_CURLY@5587..5588 "{"
      EOL@5588..5590 "\n\n"
      WHITESPACE@5590..5592 "  "
      PRE_ANNOTATION@5592..5604 "@ Arithmetic"
      EOL@5604..5605 "\n"
      WHITESPACE@5605..5607 "  "
      DEF_CONSTANT@5607..5649
        CONSTANT_KW@5607..5615 "constant"
        WHITESPACE@5615..5616 " "
        NAME@5616..5624
          IDENT@5616..5624 "arithExp"
        WHITESPACE@5624..5625 " "
        EQUALS@5625..5626 "="
        WHITESPACE@5626..5627 " "
        EXPR@5627..5649
          EXPR_BINARY@5627..5649
            EXPR_BINARY@5627..5645
              EXPR_BINARY@5627..5636
                EXPR_LITERAL@5627..5628
                  LITERAL_INT@5627..5628 "1"
                WHITESPACE@5628..5629 " "
                BINARY_OP@5629..5631
                  PLUS@5629..5630 "+"
                  WHITESPACE@5630..5631 " "
                EXPR_BINARY@5631..5636
                  EXPR_LITERAL@5631..5632
                    LITERAL_INT@5631..5632 "2"
                  WHITESPACE@5632..5633 " "
                  BINARY_OP@5633..5635
                    STAR@5633..5634 "*"
                    WHITESPACE@5634..5635 " "
                  EXPR_LITERAL@5635..5636
                    LITERAL_INT@5635..5636 "3"
              WHITESPACE@5636..5637 " "
              BINARY_OP@5637..5639
                MINUS@5637..5638 "-"
                WHITESPACE@5638..5639 " "
              EXPR_BINARY@5639..5645
                EXPR_UNARY@5639..5641
                  MINUS@5639..5640 "-"
                  EXPR_LITERAL@5640..5641
                    LITERAL_INT@5640..5641 "4"
                WHITESPACE@5641..5642 " "
                BINARY_OP@5642..5644
                  STAR@5642..5643 "*"
                  WHITESPACE@5643..5644 " "
                EXPR_LITERAL@5644..5645
                  LITERAL_INT@5644..5645 "5"
            WHITESPACE@5645..5646 " "
            BINARY_OP@5646..5648
              PLUS@5646..5647 "+"
              WHITESPACE@5647..5648 " "
            EXPR_LITERAL@5648..5649
              LITERAL_INT@5648..5649 "6"
      EOL@5649..5650 "\n"
      WHITESPACE@5650..5652 "  "
      POST_ANNOTATION@5652..5665 "@< Arithmetic"
      EOL@5665..5667 "\n\n"
      WHITESPACE@5667..5669 "  "
      PRE_ANNOTATION@5669..5676 "@ Array"
      EOL@5676..5677 "\n"
      WHITESPACE@5677..5679 "  "
      DEF_CONSTANT@5679..5710
        CONSTANT_KW@5679..5687 "constant"
        WHITESPACE@5687..5688 " "
        NAME@5688..5696
          IDENT@5688..5696 "arrayExp"
        WHITESPACE@5696..5697 " "
        EQUALS@5697..5698 "="
        WHITESPACE@5698..5699 " "
        EXPR@5699..5710
          EXPR_ARRAY@5699..5710
            EXPR_ARRAY_MEMBER_LIST@5699..5710
              LEFT_SQUARE@5699..5700 "["
              WHITESPACE@5700..5701 " "
              EXPR@5701..5702
                EXPR_LITERAL@5701..5702
                  LITERAL_INT@5701..5702 "1"
              COMMA@5702..5703 ","
              WHITESPACE@5703..5704 " "
              EXPR@5704..5705
                EXPR_LITERAL@5704..5705
                  LITERAL_INT@5704..5705 "2"
              COMMA@5705..5706 ","
              WHITESPACE@5706..5707 " "
              EXPR@5707..5708
                EXPR_LITERAL@5707..5708
                  LITERAL_INT@5707..5708 "3"
              WHITESPACE@5708..5709 " "
              RIGHT_SQUARE@5709..5710 "]"
      EOL@5710..5711 "\n"
      WHITESPACE@5711..5713 "  "
      POST_ANNOTATION@5713..5721 "@< Array"
      EOL@5721..5723 "\n\n"
      WHITESPACE@5723..5725 "  "
      PRE_ANNOTATION@5725..5742 "@ Array Subscript"
      EOL@5742..5743 "\n"
      WHITESPACE@5743..5745 "  "
      DEF_CONSTANT@5745..5783
        CONSTANT_KW@5745..5753 "constant"
        WHITESPACE@5753..5754 " "
        NAME@5754..5766
          IDENT@5754..5766 "arraySubExp1"
        WHITESPACE@5766..5767 " "
        EQUALS@5767..5768 "="
        WHITESPACE@5768..5769 " "
        EXPR@5769..5783
          EXPR_POSTFIX@5769..5783
            EXPR_SUBSCRIPT@5769..5783
              EXPR_ARRAY@5769..5780
                EXPR_ARRAY_MEMBER_LIST@5769..5780
                  LEFT_SQUARE@5769..5770 "["
                  WHITESPACE@5770..5771 " "
                  EXPR@5771..5772
                    EXPR_LITERAL@5771..5772
                      LITERAL_INT@5771..5772 "1"
                  COMMA@5772..5773 ","
                  WHITESPACE@5773..5774 " "
                  EXPR@5774..5775
                    EXPR_LITERAL@5774..5775
                      LITERAL_INT@5774..5775 "2"
                  COMMA@5775..5776 ","
                  WHITESPACE@5776..5777 " "
                  EXPR@5777..5778
                    EXPR_LITERAL@5777..5778
                      LITERAL_INT@5777..5778 "3"
                  WHITESPACE@5778..5779 " "
                  RIGHT_SQUARE@5779..5780 "]"
              INDEX_OR_SIZE@5780..5783
                LEFT_SQUARE@5780..5781 "["
                EXPR@5781..5782
                  EXPR_LITERAL@5781..5782
                    LITERAL_INT@5781..5782 "1"
                RIGHT_SQUARE@5782..5783 "]"
      EOL@5783..5784 "\n"
      WHITESPACE@5784..5786 "  "
      POST_ANNOTATION@5786..5804 "@< Array Subscript"
      EOL@5804..5806 "\n\n"
      WHITESPACE@5806..5808 "  "
      PRE_ANNOTATION@5808..5825 "@ Array Subscript"
      EOL@5825..5826 "\n"
      WHITESPACE@5826..5828 "  "
      DEF_CONSTANT@5828..5860
        CONSTANT_KW@5828..5836 "constant"
        WHITESPACE@5836..5837 " "
        NAME@5837..5849
          IDENT@5837..5849 "arraySubExp2"
        WHITESPACE@5849..5850 " "
        EQUALS@5850..5851 "="
        WHITESPACE@5851..5852 " "
        EXPR@5852..5860
          EXPR_POSTFIX@5852..5860
            EXPR_SUBSCRIPT@5852..5860
              EXPR_MEMBER@5852..5857
                EXPR_MEMBER@5852..5855
                  EXPR_IDENT@5852..5853
                    IDENT@5852..5853 "a"
                  DOT@5853..5854 "."
                  IDENT@5854..5855 "b"
                DOT@5855..5856 "."
                IDENT@5856..5857 "c"
              INDEX_OR_SIZE@5857..5860
                LEFT_SQUARE@5857..5858 "["
                EXPR@5858..5859
                  EXPR_LITERAL@5858..5859
                    LITERAL_INT@5858..5859 "1"
                RIGHT_SQUARE@5859..5860 "]"
      EOL@5860..5861 "\n"
      WHITESPACE@5861..5863 "  "
      POST_ANNOTATION@5863..5881 "@< Array Subscript"
      EOL@5881..5883 "\n\n"
      WHITESPACE@5883..5885 "  "
      PRE_ANNOTATION@5885..5924 "@ Array Subscript wit ..."
      EOL@5924..5925 "\n"
      WHITESPACE@5925..5927 "  "
      DEF_CONSTANT@5927..5968
        CONSTANT_KW@5927..5935 "constant"
        WHITESPACE@5935..5936 " "
        NAME@5936..5948
          IDENT@5936..5948 "arraySubExp2"
        WHITESPACE@5948..5949 " "
        EQUALS@5949..5950 "="
        WHITESPACE@5950..5951 " "
        EXPR@5951..5968
          EXPR_POSTFIX@5951..5968
            EXPR_SUBSCRIPT@5951..5968
              EXPR_MEMBER@5951..5964
                EXPR_SUBSCRIPT@5951..5962
                  EXPR_SUBSCRIPT@5951..5959
                    EXPR_MEMBER@5951..5956
                      EXPR_MEMBER@5951..5954
                        EXPR_IDENT@5951..5952
                          IDENT@5951..5952 "a"
                        DOT@5952..5953 "."
                        IDENT@5953..5954 "b"
                      DOT@5954..5955 "."
                      IDENT@5955..5956 "c"
                    INDEX_OR_SIZE@5956..5959
                      LEFT_SQUARE@5956..5957 "["
                      EXPR@5957..5958
                        EXPR_LITERAL@5957..5958
                          LITERAL_INT@5957..5958 "1"
                      RIGHT_SQUARE@5958..5959 "]"
                  INDEX_OR_SIZE@5959..5962
                    LEFT_SQUARE@5959..5960 "["
                    EXPR@5960..5961
                      EXPR_LITERAL@5960..5961
                        LITERAL_INT@5960..5961 "2"
                    RIGHT_SQUARE@5961..5962 "]"
                DOT@5962..5963 "."
                IDENT@5963..5964 "s"
              INDEX_OR_SIZE@5964..5968
                LEFT_SQUARE@5964..5965 "["
                EXPR@5965..5967
                  EXPR_LITERAL@5965..5967
                    LITERAL_INT@5965..5967 "12"
                RIGHT_SQUARE@5967..5968 "]"
      EOL@5968..5969 "\n"
      WHITESPACE@5969..5971 "  "
      POST_ANNOTATION@5971..5990 "@< Array Subscript "
      EOL@5990..5992 "\n\n"
      WHITESPACE@5992..5994 "  "
      PRE_ANNOTATION@5994..6011 "@ Boolean literal"
      EOL@6011..6012 "\n"
      WHITESPACE@6012..6014 "  "
      DEF_CONSTANT@6014..6047
        CONSTANT_KW@6014..6022 "constant"
        WHITESPACE@6022..6023 " "
        NAME@6023..6040
          IDENT@6023..6040 "booleanLiteralExp"
        WHITESPACE@6040..6041 " "
        EQUALS@6041..6042 "="
        WHITESPACE@6042..6043 " "
        EXPR@6043..6047
          EXPR_LITERAL@6043..6047
            TRUE_KW@6043..6047 "true"
      EOL@6047..6048 "\n"
      WHITESPACE@6048..6050 "  "
      POST_ANNOTATION@6050..6068 "@< Boolean literal"
      EOL@6068..6070 "\n\n"
      WHITESPACE@6070..6072 "  "
      PRE_ANNOTATION@6072..6077 "@ Dot"
      EOL@6077..6078 "\n"
      WHITESPACE@6078..6080 "  "
      DEF_CONSTANT@6080..6103
        CONSTANT_KW@6080..6088 "constant"
        WHITESPACE@6088..6089 " "
        NAME@6089..6095
          IDENT@6089..6095 "dotExp"
        WHITESPACE@6095..6096 " "
        EQUALS@6096..6097 "="
        WHITESPACE@6097..6098 " "
        EXPR@6098..6103
          EXPR_POSTFIX@6098..6103
            EXPR_MEMBER@6098..6103
              EXPR_MEMBER@6098..6101
                EXPR_IDENT@6098..6099
                  IDENT@6098..6099 "a"
                DOT@6099..6100 "."
                IDENT@6100..6101 "b"
              DOT@6101..6102 "."
              IDENT@6102..6103 "c"
      EOL@6103..6104 "\n"
      WHITESPACE@6104..6106 "  "
      POST_ANNOTATION@6106..6112 "@< Dot"
      EOL@6112..6114 "\n\n"
      WHITESPACE@6114..6116 "  "
      PRE_ANNOTATION@6116..6128 "@ FP literal"
      EOL@6128..6129 "\n"
      WHITESPACE@6129..6131 "  "
      DEF_CONSTANT@6131..6161
        CONSTANT_KW@6131..6139 "constant"
        WHITESPACE@6139..6140 " "
        NAME@6140..6152
          IDENT@6140..6152 "fpLiteralExp"
        WHITESPACE@6152..6153 " "
        EQUALS@6153..6154 "="
        WHITESPACE@6154..6155 " "
        EXPR@6155..6161
          EXPR_LITERAL@6155..6161
            LITERAL_FLOAT@6155..6161 "0.1234"
      EOL@6161..6162 "\n"
      WHITESPACE@6162..6164 "  "
      POST_ANNOTATION@6164..6177 "@< FP literal"
      EOL@6177..6179 "\n\n"
      WHITESPACE@6179..6181 "  "
      PRE_ANNOTATION@6181..6193 "@ Identifier"
      EOL@6193..6194 "\n"
      WHITESPACE@6194..6196 "  "
      DEF_CONSTANT@6196..6217
        CONSTANT_KW@6196..6204 "constant"
        WHITESPACE@6204..6205 " "
        NAME@6205..6213
          IDENT@6205..6213 "identExp"
        WHITESPACE@6213..6214 " "
        EQUALS@6214..6215 "="
        WHITESPACE@6215..6216 " "
        EXPR@6216..6217
          EXPR_IDENT@6216..6217
            IDENT@6216..6217 "x"
      EOL@6217..6218 "\n"
      WHITESPACE@6218..6220 "  "
      POST_ANNOTATION@6220..6233 "@< Identifier"
      EOL@6233..6235 "\n\n"
      WHITESPACE@6235..6237 "  "
      PRE_ANNOTATION@6237..6250 "@ Int literal"
      EOL@6250..6251 "\n"
      WHITESPACE@6251..6253 "  "
      DEF_CONSTANT@6253..6282
        CONSTANT_KW@6253..6261 "constant"
        WHITESPACE@6261..6262 " "
        NAME@6262..6275
          IDENT@6262..6275 "intLiteralExp"
        WHITESPACE@6275..6276 " "
        EQUALS@6276..6277 "="
        WHITESPACE@6277..6278 " "
        EXPR@6278..6282
          EXPR_LITERAL@6278..6282
            LITERAL_INT@6278..6282 "1234"
      EOL@6282..6283 "\n"
      WHITESPACE@6283..6285 "  "
      POST_ANNOTATION@6285..6299 "@< Int literal"
      EOL@6299..6301 "\n\n"
      WHITESPACE@6301..6303 "  "
      PRE_ANNOTATION@6303..6310 "@ Paren"
      EOL@6310..6311 "\n"
      WHITESPACE@6311..6313 "  "
      DEF_CONSTANT@6313..6344
        CONSTANT_KW@6313..6321 "constant"
        WHITESPACE@6321..6322 " "
        NAME@6322..6330
          IDENT@6322..6330 "parenExp"
        WHITESPACE@6330..6331 " "
        EQUALS@6331..6332 "="
        WHITESPACE@6332..6333 " "
        EXPR@6333..6344
          EXPR_BINARY@6333..6344
            EXPR@6333..6340
              LEFT_PAREN@6333..6334 "("
              EXPR@6334..6339
                EXPR_BINARY@6334..6339
                  EXPR_LITERAL@6334..6335
                    LITERAL_INT@6334..6335 "1"
                  WHITESPACE@6335..6336 " "
                  BINARY_OP@6336..6338
                    PLUS@6336..6337 "+"
                    WHITESPACE@6337..6338 " "
                  EXPR_LITERAL@6338..6339
                    LITERAL_INT@6338..6339 "2"
              RIGHT_PAREN@6339..6340 ")"
            WHITESPACE@6340..6341 " "
            BINARY_OP@6341..6343
              STAR@6341..6342 "*"
              WHITESPACE@6342..6343 " "
            EXPR_LITERAL@6343..6344
              LITERAL_INT@6343..6344 "3"
      EOL@6344..6345 "\n"
      WHITESPACE@6345..6347 "  "
      POST_ANNOTATION@6347..6355 "@< Paren"
      EOL@6355..6357 "\n\n"
      WHITESPACE@6357..6359 "  "
      PRE_ANNOTATION@6359..6382 "@ String literal single"
      EOL@6382..6383 "\n"
      WHITESPACE@6383..6385 "  "
      DEF_CONSTANT@6385..6438
        CONSTANT_KW@6385..6393 "constant"
        WHITESPACE@6393..6394 " "
        NAME@6394..6416
          IDENT@6394..6416 "stringLiteralSingleExp"
        WHITESPACE@6416..6417 " "
        EQUALS@6417..6418 "="
        WHITESPACE@6418..6419 " "
        EXPR@6419..6438
          EXPR_LITERAL@6419..6438
            LITERAL_STRING@6419..6438 "\"This is a string.\""
      EOL@6438..6439 "\n"
      WHITESPACE@6439..6441 "  "
      POST_ANNOTATION@6441..6465 "@< String literal single"
      EOL@6465..6467 "\n\n"
      WHITESPACE@6467..6469 "  "
      PRE_ANNOTATION@6469..6491 "@ String literal multi"
      EOL@6491..6492 "\n"
      WHITESPACE@6492..6494 "  "
      DEF_CONSTANT@6494..6690
        CONSTANT_KW@6494..6502 "constant"
        WHITESPACE@6502..6503 " "
        NAME@6503..6523
          IDENT@6503..6523 "stringLiteralMultExp"
        WHITESPACE@6523..6524 " "
        EQUALS@6524..6525 "="
        WHITESPACE@6525..6526 " "
        EXPR@6526..6690
          EXPR_LITERAL@6526..6690
            LITERAL_STRING@6526..6690 "\"\"\"\n                  ..."
      EOL@6690..6691 "\n"
      WHITESPACE@6691..6693 "  "
      POST_ANNOTATION@6693..6716 "@< String literal multi"
      EOL@6716..6718 "\n\n"
      WHITESPACE@6718..6720 "  "
      PRE_ANNOTATION@6720..6728 "@ Struct"
      EOL@6728..6729 "\n"
      WHITESPACE@6729..6731 "  "
      DEF_CONSTANT@6731..6775
        CONSTANT_KW@6731..6739 "constant"
        WHITESPACE@6739..6740 " "
        NAME@6740..6749
          IDENT@6740..6749 "structExp"
        WHITESPACE@6749..6750 " "
        EQUALS@6750..6751 "="
        WHITESPACE@6751..6752 " "
        EXPR@6752..6775
          EXPR_STRUCT@6752..6775
            EXPR_STRUCT_MEMBER_LIST@6752..6775
              LEFT_CURLY@6752..6753 "{"
              WHITESPACE@6753..6754 " "
              EXPR_STRUCT_MEMBER@6754..6759
                IDENT@6754..6755 "a"
                WHITESPACE@6755..6756 " "
                EQUALS@6756..6757 "="
                WHITESPACE@6757..6758 " "
                EXPR@6758..6759
                  EXPR_LITERAL@6758..6759
                    LITERAL_INT@6758..6759 "1"
              COMMA@6759..6760 ","
              WHITESPACE@6760..6761 " "
              EXPR_STRUCT_MEMBER@6761..6766
                IDENT@6761..6762 "b"
                WHITESPACE@6762..6763 " "
                EQUALS@6763..6764 "="
                WHITESPACE@6764..6765 " "
                EXPR@6765..6766
                  EXPR_LITERAL@6765..6766
                    LITERAL_INT@6765..6766 "2"
              COMMA@6766..6767 ","
              WHITESPACE@6767..6768 " "
              EXPR_STRUCT_MEMBER@6768..6773
                IDENT@6768..6769 "c"
                WHITESPACE@6769..6770 " "
                EQUALS@6770..6771 "="
                WHITESPACE@6771..6772 " "
                EXPR@6772..6773
                  EXPR_LITERAL@6772..6773
                    LITERAL_INT@6772..6773 "3"
              WHITESPACE@6773..6774 " "
              RIGHT_CURLY@6774..6775 "}"
      EOL@6775..6776 "\n"
      WHITESPACE@6776..6778 "  "
      POST_ANNOTATION@6778..6787 "@< Struct"
      EOL@6787..6789 "\n\n"
      RIGHT_CURLY@6789..6790 "}"
  EOL@6790..6791 "\n"
  POST_ANNOTATION@6791..6805 "@< Expressions"
  EOL@6805..6806 "\n"
