ROOT@0..9143
  PRE_ANNOTATION@0..28 "@ Definitions and spe ..."
  EOL@28..29 "\n"
  DEF_MODULE@29..7086
    MODULE_KW@29..35 "module"
    WHITESPACE@35..36 " "
    NAME@36..60
      IDENT@36..60 "DefinitionsAndSpecifiers"
    WHITESPACE@60..61 " "
    MODULE_MEMBER_LIST@61..7086
      LEFT_CURLY@61..62 "{"
      EOL@62..64 "\n\n"
      WHITESPACE@64..66 "  "
      DEF_ALIAS_TYPE@66..92
        TYPE_KW@66..70 "type"
        WHITESPACE@70..71 " "
        NAME@71..86
          IDENT@71..86 "FwSizeStoreType"
        WHITESPACE@86..87 " "
        EQUALS@87..88 "="
        WHITESPACE@88..89 " "
        TYPE_NAME@89..92
          U16_KW@89..92 "U16"
      EOL@92..93 "\n"
      WHITESPACE@93..95 "  "
      DEF_CONSTANT@95..137
        CONSTANT_KW@95..103 "constant"
        WHITESPACE@103..104 " "
        NAME@104..131
          IDENT@104..131 "FW_FIXED_LENGTH_STRIN ..."
        WHITESPACE@131..132 " "
        EQUALS@132..133 "="
        WHITESPACE@133..134 " "
        EXPR@134..137
          EXPR_LITERAL@134..137
            LITERAL_INT@134..137 "256"
      EOL@137..139 "\n\n"
      WHITESPACE@139..141 "  "
      PRE_ANNOTATION@141..167 "@ Abstract type defin ..."
      EOL@167..168 "\n"
      WHITESPACE@168..170 "  "
      DEF_ABSTRACT_TYPE@170..176
        TYPE_KW@170..174 "type"
        WHITESPACE@174..175 " "
        NAME@175..176
          IDENT@175..176 "T"
      EOL@176..177 "\n"
      WHITESPACE@177..179 "  "
      POST_ANNOTATION@179..206 "@< Abstract type defi ..."
      EOL@206..208 "\n\n"
      WHITESPACE@208..210 "  "
      PRE_ANNOTATION@210..233 "@ Type alias definition"
      EOL@233..234 "\n"
      WHITESPACE@234..236 "  "
      DEF_ALIAS_TYPE@236..247
        TYPE_KW@236..240 "type"
        WHITESPACE@240..241 " "
        NAME@241..243
          IDENT@241..243 "TA"
        WHITESPACE@243..244 " "
        EQUALS@244..245 "="
        WHITESPACE@245..246 " "
        TYPE_NAME@246..247
          QUAL_IDENT@246..247
            IDENT@246..247 "T"
      EOL@247..248 "\n"
      WHITESPACE@248..250 "  "
      POST_ANNOTATION@250..274 "@< Type alias definition"
      EOL@274..276 "\n\n"
      WHITESPACE@276..278 "  "
      PRE_ANNOTATION@278..296 "@ Array definition"
      EOL@296..297 "\n"
      WHITESPACE@297..299 "  "
      DEF_ARRAY@299..346
        ARRAY_KW@299..304 "array"
        WHITESPACE@304..305 " "
        NAME@305..306
          IDENT@305..306 "A"
        WHITESPACE@306..307 " "
        EQUALS@307..308 "="
        WHITESPACE@308..309 " "
        INDEX_OR_SIZE@309..313
          LEFT_SQUARE@309..310 "["
          EXPR@310..312
            EXPR_LITERAL@310..312
              LITERAL_INT@310..312 "10"
          RIGHT_SQUARE@312..313 "]"
        WHITESPACE@313..314 " "
        TYPE_NAME@314..317
          U32_KW@314..317 "U32"
        WHITESPACE@317..318 " "
        DEFAULT@318..327
          DEFAULT_KW@318..325 "default"
          WHITESPACE@325..326 " "
          EXPR@326..327
            EXPR_LITERAL@326..327
              LITERAL_INT@326..327 "0"
        WHITESPACE@327..328 " "
        FORMAT@328..346
          FORMAT_KW@328..334 "format"
          WHITESPACE@334..335 " "
          LITERAL_STRING@335..346 "\"{} counts\""
      EOL@346..347 "\n"
      WHITESPACE@347..349 "  "
      POST_ANNOTATION@349..368 "@< Array definition"
      EOL@368..370 "\n\n"
      WHITESPACE@370..372 "  "
      PRE_ANNOTATION@372..407 "@ State machine outsi ..."
      EOL@407..408 "\n"
      WHITESPACE@408..410 "  "
      DEF_STATE_MACHINE@410..426
        STATE_KW@410..415 "state"
        WHITESPACE@415..416 " "
        MACHINE_KW@416..423 "machine"
        WHITESPACE@423..424 " "
        NAME@424..426
          IDENT@424..426 "SO"
      EOL@426..427 "\n"
      WHITESPACE@427..429 "  "
      POST_ANNOTATION@429..465 "@< State machine outs ..."
      EOL@465..467 "\n\n"
      WHITESPACE@467..469 "  "
      PRE_ANNOTATION@469..491 "@ Interface definition"
      EOL@491..492 "\n"
      WHITESPACE@492..494 "  "
      DEF_INTERFACE@494..825
        INTERFACE_KW@494..503 "interface"
        WHITESPACE@503..504 " "
        NAME@504..505
          IDENT@504..505 "I"
        WHITESPACE@505..506 " "
        INTERFACE_MEMBER_LIST@506..825
          LEFT_CURLY@506..507 "{"
          EOL@507..508 "\n"
          WHITESPACE@508..512 "    "
          PRE_ANNOTATION@512..545 "@ General port instan ..."
          EOL@545..546 "\n"
          WHITESPACE@546..550 "    "
          SPEC_PORT_INSTANCE_GENERAL@550..595
            SYNC_KW@550..554 "sync"
            WHITESPACE@554..555 " "
            INPUT_KW@555..560 "input"
            WHITESPACE@560..561 " "
            PORT_KW@561..565 "port"
            WHITESPACE@565..566 " "
            NAME@566..568
              IDENT@566..568 "pI"
            COLON@568..569 ":"
            WHITESPACE@569..570 " "
            INDEX_OR_SIZE@570..574
              LEFT_SQUARE@570..571 "["
              EXPR@571..573
                EXPR_LITERAL@571..573
                  LITERAL_INT@571..573 "10"
              RIGHT_SQUARE@573..574 "]"
            WHITESPACE@574..575 " "
            QUAL_IDENT@575..576
              IDENT@575..576 "P"
            WHITESPACE@576..577 " "
            PRIORITY@577..588
              PRIORITY_KW@577..585 "priority"
              WHITESPACE@585..586 " "
              EXPR@586..588
                EXPR_LITERAL@586..588
                  LITERAL_INT@586..588 "10"
            WHITESPACE@588..589 " "
            QUEUE_FULL@589..595
              ASSERT_KW@589..595 "assert"
          EOL@595..596 "\n"
          WHITESPACE@596..600 "    "
          POST_ANNOTATION@600..634 "@< General port insta ..."
          EOL@634..636 "\n\n"
          WHITESPACE@636..640 "    "
          PRE_ANNOTATION@640..673 "@ Special port instan ..."
          EOL@673..674 "\n"
          WHITESPACE@674..678 "    "
          SPEC_PORT_INSTANCE_SPECIAL@678..701
            COMMAND_KW@678..685 "command"
            WHITESPACE@685..686 " "
            RECV_KW@686..690 "recv"
            WHITESPACE@690..691 " "
            PORT_KW@691..695 "port"
            WHITESPACE@695..696 " "
            NAME@696..701
              IDENT@696..701 "cmdIn"
          EOL@701..702 "\n"
          WHITESPACE@702..706 "    "
          POST_ANNOTATION@706..740 "@< Special port insta ..."
          EOL@740..742 "\n\n"
          WHITESPACE@742..746 "    "
          PRE_ANNOTATION@746..774 "@ Interface import sp ..."
          EOL@774..775 "\n"
          WHITESPACE@775..779 "    "
          SPEC_INTERFACE_IMPORT@779..787
            IMPORT_KW@779..785 "import"
            WHITESPACE@785..786 " "
            QUAL_IDENT@786..787
              IDENT@786..787 "J"
          EOL@787..788 "\n"
          WHITESPACE@788..792 "    "
          POST_ANNOTATION@792..821 "@< Interface import s ..."
          EOL@821..822 "\n"
          WHITESPACE@822..824 "  "
          RIGHT_CURLY@824..825 "}"
      EOL@825..826 "\n"
      WHITESPACE@826..828 "  "
      POST_ANNOTATION@828..851 "@< Interface definition"
      EOL@851..853 "\n\n"
      WHITESPACE@853..855 "  "
      PRE_ANNOTATION@855..877 "@ Component definition"
      EOL@877..878 "\n"
      WHITESPACE@878..880 "  "
      DEF_COMPONENT@880..3101
        ACTIVE_KW@880..886 "active"
        WHITESPACE@886..887 " "
        COMPONENT_KW@887..896 "component"
        WHITESPACE@896..897 " "
        NAME@897..898
          IDENT@897..898 "C"
        WHITESPACE@898..899 " "
        COMPONENT_MEMBER_LIST@899..3101
          LEFT_CURLY@899..900 "{"
          EOL@900..902 "\n\n"
          WHITESPACE@902..906 "    "
          DEF_ABSTRACT_TYPE@906..912
            TYPE_KW@906..910 "type"
            WHITESPACE@910..911 " "
            NAME@911..912
              IDENT@911..912 "T"
          EOL@912..913 "\n"
          WHITESPACE@913..917 "    "
          DEF_ARRAY@917..934
            ARRAY_KW@917..922 "array"
            WHITESPACE@922..923 " "
            NAME@923..924
              IDENT@923..924 "A"
            WHITESPACE@924..925 " "
            EQUALS@925..926 "="
            WHITESPACE@926..927 " "
            INDEX_OR_SIZE@927..930
              LEFT_SQUARE@927..928 "["
              EXPR@928..929
                EXPR_LITERAL@928..929
                  LITERAL_INT@928..929 "3"
              RIGHT_SQUARE@929..930 "]"
            WHITESPACE@930..931 " "
            TYPE_NAME@931..934
              U32_KW@931..934 "U32"
          EOL@934..935 "\n"
          WHITESPACE@935..939 "    "
          DEF_STRUCT@939..981
            STRUCT_KW@939..945 "struct"
            WHITESPACE@945..946 " "
            NAME@946..947
              IDENT@946..947 "S"
            WHITESPACE@947..948 " "
            STRUCT_MEMBER_LIST@948..981
              LEFT_CURLY@948..949 "{"
              WHITESPACE@949..950 " "
              STRUCT_MEMBER@950..960
                NAME@950..951
                  IDENT@950..951 "x"
                COLON@951..952 ":"
                WHITESPACE@952..953 " "
                INDEX_OR_SIZE@953..956
                  LEFT_SQUARE@953..954 "["
                  EXPR@954..955
                    EXPR_LITERAL@954..955
                      LITERAL_INT@954..955 "3"
                  RIGHT_SQUARE@955..956 "]"
                WHITESPACE@956..957 " "
                TYPE_NAME@957..960
                  U32_KW@957..960 "U32"
              COMMA@960..961 ","
              WHITESPACE@961..962 " "
              STRUCT_MEMBER@962..968
                NAME@962..963
                  IDENT@962..963 "y"
                COLON@963..964 ":"
                WHITESPACE@964..965 " "
                TYPE_NAME@965..968
                  F32_KW@965..968 "F32"
              COMMA@968..969 ","
              WHITESPACE@969..970 " "
              STRUCT_MEMBER@970..979
                NAME@970..971
                  IDENT@970..971 "z"
                COLON@971..972 ":"
                WHITESPACE@972..973 " "
                TYPE_NAME@973..979
                  STRING_KW@973..979 "string"
              WHITESPACE@979..980 " "
              RIGHT_CURLY@980..981 "}"
          EOL@981..982 "\n"
          WHITESPACE@982..986 "    "
          DEF_ENUM@986..1014
            ENUM_KW@986..990 "enum"
            WHITESPACE@990..991 " "
            NAME@991..992
              IDENT@991..992 "E"
            WHITESPACE@992..993 " "
            ENUM_MEMBER_LIST@993..1004
              LEFT_CURLY@993..994 "{"
              WHITESPACE@994..995 " "
              DEF_ENUM_CONSTANT@995..996
                NAME@995..996
                  IDENT@995..996 "X"
              COMMA@996..997 ","
              WHITESPACE@997..998 " "
              DEF_ENUM_CONSTANT@998..999
                NAME@998..999
                  IDENT@998..999 "Y"
              COMMA@999..1000 ","
              WHITESPACE@1000..1001 " "
              DEF_ENUM_CONSTANT@1001..1002
                NAME@1001..1002
                  IDENT@1001..1002 "Z"
              WHITESPACE@1002..1003 " "
              RIGHT_CURLY@1003..1004 "}"
            WHITESPACE@1004..1005 " "
            DEFAULT@1005..1014
              DEFAULT_KW@1005..1012 "default"
              WHITESPACE@1012..1013 " "
              EXPR@1013..1014
                EXPR_IDENT@1013..1014
                  IDENT@1013..1014 "X"
          EOL@1014..1016 "\n\n"
          WHITESPACE@1016..1020 "    "
          PRE_ANNOTATION@1020..1041 "@ Container specifier"
          EOL@1041..1042 "\n"
          WHITESPACE@1042..1046 "    "
          SPEC_CONTAINER@1046..1093
            PRODUCT_KW@1046..1053 "product"
            WHITESPACE@1053..1054 " "
            CONTAINER_KW@1054..1063 "container"
            WHITESPACE@1063..1064 " "
            NAME@1064..1065
              IDENT@1064..1065 "C"
            WHITESPACE@1065..1066 " "
            ID@1066..1073
              ID_KW@1066..1068 "id"
              WHITESPACE@1068..1069 " "
              EXPR@1069..1073
                EXPR_LITERAL@1069..1073
                  LITERAL_INT@1069..1073 "0x00"
            WHITESPACE@1073..1074 " "
            DEFAULT_KW@1074..1081 "default"
            WHITESPACE@1081..1082 " "
            PRIORITY_KW@1082..1090 "priority"
            WHITESPACE@1090..1091 " "
            DEFAULT_PRIORITY@1091..1093
              EXPR@1091..1093
                EXPR_LITERAL@1091..1093
                  LITERAL_INT@1091..1093 "10"
          EOL@1093..1094 "\n"
          WHITESPACE@1094..1098 "    "
          POST_ANNOTATION@1098..1120 "@< Container specifier"
          EOL@1120..1122 "\n\n"
          WHITESPACE@1122..1126 "    "
          PRE_ANNOTATION@1126..1144 "@ Record specifier"
          EOL@1144..1145 "\n"
          WHITESPACE@1145..1149 "    "
          SPEC_RECORD@1149..1184
            PRODUCT_KW@1149..1156 "product"
            WHITESPACE@1156..1157 " "
            RECORD_KW@1157..1163 "record"
            WHITESPACE@1163..1164 " "
            NAME@1164..1165
              IDENT@1164..1165 "R"
            COLON@1165..1166 ":"
            WHITESPACE@1166..1167 " "
            TYPE_NAME@1167..1170
              U32_KW@1167..1170 "U32"
            WHITESPACE@1170..1171 " "
            ARRAY_KW@1171..1176 "array"
            WHITESPACE@1176..1177 " "
            ID@1177..1184
              ID_KW@1177..1179 "id"
              WHITESPACE@1179..1180 " "
              EXPR@1180..1184
                EXPR_LITERAL@1180..1184
                  LITERAL_INT@1180..1184 "0x00"
          EOL@1184..1185 "\n"
          WHITESPACE@1185..1189 "    "
          POST_ANNOTATION@1189..1208 "@< Record specifier"
          EOL@1208..1210 "\n\n"
          WHITESPACE@1210..1214 "    "
          PRE_ANNOTATION@1214..1233 "@ Command specifier"
          EOL@1233..1234 "\n"
          WHITESPACE@1234..1238 "    "
          SPEC_COMMAND@1238..1300
            ASYNC_KW@1238..1243 "async"
            WHITESPACE@1243..1244 " "
            COMMAND_KW@1244..1251 "command"
            WHITESPACE@1251..1252 " "
            NAME@1252..1253
              IDENT@1252..1253 "C"
            FORMAL_PARAM_LIST@1253..1269
              LEFT_PAREN@1253..1254 "("
              FORMAL_PARAM@1254..1260
                NAME@1254..1255
                  IDENT@1254..1255 "a"
                COLON@1255..1256 ":"
                WHITESPACE@1256..1257 " "
                TYPE_NAME@1257..1260
                  U32_KW@1257..1260 "U32"
              COMMA@1260..1261 ","
              WHITESPACE@1261..1262 " "
              FORMAL_PARAM@1262..1268
                NAME@1262..1263
                  IDENT@1262..1263 "b"
                COLON@1263..1264 ":"
                WHITESPACE@1264..1265 " "
                TYPE_NAME@1265..1268
                  F32_KW@1265..1268 "F32"
              RIGHT_PAREN@1268..1269 ")"
            WHITESPACE@1269..1270 " "
            OPCODE@1270..1281
              OPCODE_KW@1270..1276 "opcode"
              WHITESPACE@1276..1277 " "
              EXPR@1277..1281
                EXPR_LITERAL@1277..1281
                  LITERAL_INT@1277..1281 "0x00"
            WHITESPACE@1281..1282 " "
            PRIORITY@1282..1293
              PRIORITY_KW@1282..1290 "priority"
              WHITESPACE@1290..1291 " "
              EXPR@1291..1293
                EXPR_LITERAL@1291..1293
                  LITERAL_INT@1291..1293 "10"
            WHITESPACE@1293..1294 " "
            QUEUE_FULL@1294..1300
              ASSERT_KW@1294..1300 "assert"
          EOL@1300..1301 "\n"
          WHITESPACE@1301..1305 "    "
          POST_ANNOTATION@1305..1325 "@< Command specifier"
          EOL@1325..1327 "\n\n"
          WHITESPACE@1327..1331 "    "
          PRE_ANNOTATION@1331..1352 "@ Parameter specifier"
          EOL@1352..1353 "\n"
          WHITESPACE@1353..1357 "    "
          SPEC_PARAM@1357..1429
            EXTERNAL_KW@1357..1365 "external"
            WHITESPACE@1365..1366 " "
            PARAM_KW@1366..1371 "param"
            WHITESPACE@1371..1372 " "
            NAME@1372..1373
              IDENT@1372..1373 "P"
            COLON@1373..1374 ":"
            WHITESPACE@1374..1375 " "
            TYPE_NAME@1375..1378
              U32_KW@1375..1378 "U32"
            WHITESPACE@1378..1379 " "
            DEFAULT@1379..1388
              DEFAULT_KW@1379..1386 "default"
              WHITESPACE@1386..1387 " "
              EXPR@1387..1388
                EXPR_LITERAL@1387..1388
                  LITERAL_INT@1387..1388 "0"
            WHITESPACE@1388..1389 " "
            ID@1389..1396
              ID_KW@1389..1391 "id"
              WHITESPACE@1391..1392 " "
              EXPR@1392..1396
                EXPR_LITERAL@1392..1396
                  LITERAL_INT@1392..1396 "0x00"
            WHITESPACE@1396..1397 " "
            SET_KW@1397..1400 "set"
            WHITESPACE@1400..1401 " "
            OPCODE_KW@1401..1407 "opcode"
            WHITESPACE@1407..1408 " "
            SET_OPCODE@1408..1412
              EXPR@1408..1412
                EXPR_LITERAL@1408..1412
                  LITERAL_INT@1408..1412 "0x01"
            WHITESPACE@1412..1413 " "
            SAVE_KW@1413..1417 "save"
            WHITESPACE@1417..1418 " "
            OPCODE_KW@1418..1424 "opcode"
            WHITESPACE@1424..1425 " "
            SAVE_OPCODE@1425..1429
              EXPR@1425..1429
                EXPR_LITERAL@1425..1429
                  LITERAL_INT@1425..1429 "0x02"
          EOL@1429..1430 "\n"
          WHITESPACE@1430..1434 "    "
          POST_ANNOTATION@1434..1456 "@< Parameter specifier"
          EOL@1456..1458 "\n\n"
          WHITESPACE@1458..1462 "    "
          PRE_ANNOTATION@1462..1495 "@ General port instan ..."
          EOL@1495..1496 "\n"
          WHITESPACE@1496..1500 "    "
          SPEC_PORT_INSTANCE_GENERAL@1500..1545
            SYNC_KW@1500..1504 "sync"
            WHITESPACE@1504..1505 " "
            INPUT_KW@1505..1510 "input"
            WHITESPACE@1510..1511 " "
            PORT_KW@1511..1515 "port"
            WHITESPACE@1515..1516 " "
            NAME@1516..1518
              IDENT@1516..1518 "p1"
            COLON@1518..1519 ":"
            WHITESPACE@1519..1520 " "
            INDEX_OR_SIZE@1520..1524
              LEFT_SQUARE@1520..1521 "["
              EXPR@1521..1523
                EXPR_LITERAL@1521..1523
                  LITERAL_INT@1521..1523 "10"
              RIGHT_SQUARE@1523..1524 "]"
            WHITESPACE@1524..1525 " "
            QUAL_IDENT@1525..1526
              IDENT@1525..1526 "P"
            WHITESPACE@1526..1527 " "
            PRIORITY@1527..1538
              PRIORITY_KW@1527..1535 "priority"
              WHITESPACE@1535..1536 " "
              EXPR@1536..1538
                EXPR_LITERAL@1536..1538
                  LITERAL_INT@1536..1538 "10"
            WHITESPACE@1538..1539 " "
            QUEUE_FULL@1539..1545
              ASSERT_KW@1539..1545 "assert"
          EOL@1545..1546 "\n"
          WHITESPACE@1546..1550 "    "
          POST_ANNOTATION@1550..1584 "@< General port insta ..."
          EOL@1584..1586 "\n\n"
          WHITESPACE@1586..1590 "    "
          PRE_ANNOTATION@1590..1623 "@ Special port instan ..."
          EOL@1623..1624 "\n"
          WHITESPACE@1624..1628 "    "
          SPEC_PORT_INSTANCE_SPECIAL@1628..1651
            COMMAND_KW@1628..1635 "command"
            WHITESPACE@1635..1636 " "
            RECV_KW@1636..1640 "recv"
            WHITESPACE@1640..1641 " "
            PORT_KW@1641..1645 "port"
            WHITESPACE@1645..1646 " "
            NAME@1646..1651
              IDENT@1646..1651 "cmdIn"
          EOL@1651..1652 "\n"
          WHITESPACE@1652..1656 "    "
          POST_ANNOTATION@1656..1690 "@< Special port insta ..."
          EOL@1690..1692 "\n\n"
          WHITESPACE@1692..1696 "    "
          PRE_ANNOTATION@1696..1724 "@ Async product recei ..."
          EOL@1724..1725 "\n"
          WHITESPACE@1725..1729 "    "
          SPEC_PORT_INSTANCE_SPECIAL@1729..1785
            ASYNC_KW@1729..1734 "async"
            WHITESPACE@1734..1735 " "
            PRODUCT_KW@1735..1742 "product"
            WHITESPACE@1742..1743 " "
            RECV_KW@1743..1747 "recv"
            WHITESPACE@1747..1748 " "
            PORT_KW@1748..1752 "port"
            WHITESPACE@1752..1753 " "
            NAME@1753..1766
              IDENT@1753..1766 "productRecvIn"
            WHITESPACE@1766..1767 " "
            PRIORITY@1767..1778
              PRIORITY_KW@1767..1775 "priority"
              WHITESPACE@1775..1776 " "
              EXPR@1776..1778
                EXPR_LITERAL@1776..1778
                  LITERAL_INT@1776..1778 "10"
            WHITESPACE@1778..1779 " "
            QUEUE_FULL@1779..1785
              ASSERT_KW@1779..1785 "assert"
          EOL@1785..1786 "\n"
          WHITESPACE@1786..1790 "    "
          POST_ANNOTATION@1790..1819 "@< Async product rece ..."
          EOL@1819..1821 "\n\n"
          WHITESPACE@1821..1825 "    "
          PRE_ANNOTATION@1825..1870 "@ Internal Component  ..."
          EOL@1870..1871 "\n"
          WHITESPACE@1871..1875 "    "
          DEF_STATE_MACHINE@1875..1891
            STATE_KW@1875..1880 "state"
            WHITESPACE@1880..1881 " "
            MACHINE_KW@1881..1888 "machine"
            WHITESPACE@1888..1889 " "
            NAME@1889..1891
              IDENT@1889..1891 "SM"
          EOL@1891..1892 "\n"
          WHITESPACE@1892..1896 "    "
          POST_ANNOTATION@1896..1923 "@< State machine defi ..."
          EOL@1923..1925 "\n\n"
          WHITESPACE@1925..1929 "    "
          PRE_ANNOTATION@1929..1955 "@ State machine insta ..."
          EOL@1955..1956 "\n"
          WHITESPACE@1956..1960 "    "
          SPEC_STATE_MACHINE_INSTANCE@1960..2006
            STATE_KW@1960..1965 "state"
            WHITESPACE@1965..1966 " "
            MACHINE_KW@1966..1973 "machine"
            WHITESPACE@1973..1974 " "
            INSTANCE_KW@1974..1982 "instance"
            WHITESPACE@1982..1983 " "
            NAME@1983..1985
              IDENT@1983..1985 "s1"
            COLON@1985..1986 ":"
            WHITESPACE@1986..1987 " "
            QUAL_IDENT@1987..1989
              IDENT@1987..1989 "SM"
            WHITESPACE@1989..1990 " "
            PRIORITY@1990..2001
              PRIORITY_KW@1990..1998 "priority"
              WHITESPACE@1998..1999 " "
              EXPR@1999..2001
                EXPR_LITERAL@1999..2001
                  LITERAL_INT@1999..2001 "10"
            WHITESPACE@2001..2002 " "
            QUEUE_FULL@2002..2006
              DROP_KW@2002..2006 "drop"
          EOL@2006..2007 "\n"
          WHITESPACE@2007..2011 "    "
          POST_ANNOTATION@2011..2038 "@< State machine inst ..."
          EOL@2038..2040 "\n\n"
          WHITESPACE@2040..2044 "    "
          PRE_ANNOTATION@2044..2070 "@ State machine insta ..."
          EOL@2070..2071 "\n"
          WHITESPACE@2071..2075 "    "
          SPEC_STATE_MACHINE_INSTANCE@2075..2104
            STATE_KW@2075..2080 "state"
            WHITESPACE@2080..2081 " "
            MACHINE_KW@2081..2088 "machine"
            WHITESPACE@2088..2089 " "
            INSTANCE_KW@2089..2097 "instance"
            WHITESPACE@2097..2098 " "
            NAME@2098..2100
              IDENT@2098..2100 "s2"
            COLON@2100..2101 ":"
            WHITESPACE@2101..2102 " "
            QUAL_IDENT@2102..2104
              IDENT@2102..2104 "SM"
          EOL@2104..2105 "\n"
          WHITESPACE@2105..2109 "    "
          POST_ANNOTATION@2109..2136 "@< State machine inst ..."
          EOL@2136..2138 "\n\n"
          WHITESPACE@2138..2142 "    "
          PRE_ANNOTATION@2142..2180 "@ State machine for o ..."
          EOL@2180..2181 "\n"
          WHITESPACE@2181..2185 "    "
          SPEC_STATE_MACHINE_INSTANCE@2185..2214
            STATE_KW@2185..2190 "state"
            WHITESPACE@2190..2191 " "
            MACHINE_KW@2191..2198 "machine"
            WHITESPACE@2198..2199 " "
            INSTANCE_KW@2199..2207 "instance"
            WHITESPACE@2207..2208 " "
            NAME@2208..2210
              IDENT@2208..2210 "so"
            COLON@2210..2211 ":"
            WHITESPACE@2211..2212 " "
            QUAL_IDENT@2212..2214
              IDENT@2212..2214 "SO"
          EOL@2214..2215 "\n"
          WHITESPACE@2215..2219 "    "
          POST_ANNOTATION@2219..2258 "@< State machine for  ..."
          EOL@2258..2260 "\n\n"
          WHITESPACE@2260..2264 "    "
          SPEC_PORT_INSTANCE_GENERAL@2264..2286
            OUTPUT_KW@2264..2270 "output"
            WHITESPACE@2270..2271 " "
            PORT_KW@2271..2275 "port"
            WHITESPACE@2275..2276 " "
            NAME@2276..2278
              IDENT@2276..2278 "p2"
            COLON@2278..2279 ":"
            WHITESPACE@2279..2280 " "
            INDEX_OR_SIZE@2280..2284
              LEFT_SQUARE@2280..2281 "["
              EXPR@2281..2283
                EXPR_LITERAL@2281..2283
                  LITERAL_INT@2281..2283 "10"
              RIGHT_SQUARE@2283..2284 "]"
            WHITESPACE@2284..2285 " "
            QUAL_IDENT@2285..2286
              IDENT@2285..2286 "P"
          EOL@2286..2287 "\n"
          WHITESPACE@2287..2291 "    "
          PRE_ANNOTATION@2291..2316 "@ Port matching speci ..."
          EOL@2316..2317 "\n"
          WHITESPACE@2317..2321 "    "
          MATCH_KW@2321..2337
            MATCH_KW@2321..2326 "match"
            WHITESPACE@2326..2327 " "
            NAME_REF@2327..2329
              IDENT@2327..2329 "p1"
            WHITESPACE@2329..2330 " "
            WITH_KW@2330..2334 "with"
            WHITESPACE@2334..2335 " "
            NAME_REF@2335..2337
              IDENT@2335..2337 "p2"
          EOL@2337..2338 "\n"
          WHITESPACE@2338..2342 "    "
          POST_ANNOTATION@2342..2368 "@< Port matching spec ..."
          EOL@2368..2370 "\n\n"
          WHITESPACE@2370..2374 "    "
          PRE_ANNOTATION@2374..2403 "@ Telemetry channel s ..."
          EOL@2403..2404 "\n"
          WHITESPACE@2404..2408 "    "
          SPEC_TELEMETRY@2408..2551
            TELEMETRY_KW@2408..2417 "telemetry"
            WHITESPACE@2417..2418 " "
            NAME@2418..2419
              IDENT@2418..2419 "T"
            COLON@2419..2420 ":"
            WHITESPACE@2420..2421 " "
            TYPE_NAME@2421..2424
              U32_KW@2421..2424 "U32"
            WHITESPACE@2424..2425 " "
            ID@2425..2432
              ID_KW@2425..2427 "id"
              WHITESPACE@2427..2428 " "
              EXPR@2428..2432
                EXPR_LITERAL@2428..2432
                  LITERAL_INT@2428..2432 "0x00"
            WHITESPACE@2432..2433 " "
            UPDATE_KW@2433..2439 "update"
            WHITESPACE@2439..2440 " "
            ON_KW@2440..2442 "on"
            WHITESPACE@2442..2443 " "
            CHANGE_KW@2443..2449 "change"
            WHITESPACE@2449..2450 " "
            FORMAT@2450..2463
              FORMAT_KW@2450..2456 "format"
              WHITESPACE@2456..2457 " "
              LITERAL_STRING@2457..2463 "\"{} s\""
            WHITESPACE@2463..2464 " "
            WHITESPACE@2464..2466 "\\\n"
            WHITESPACE@2466..2472 "      "
            LOW_KW@2472..2475 "low"
            WHITESPACE@2475..2476 " "
            LIMIT_SEQUENCE@2476..2505
              LEFT_CURLY@2476..2477 "{"
              WHITESPACE@2477..2478 " "
              LIMIT@2478..2483
                RED_KW@2478..2481 "red"
                WHITESPACE@2481..2482 " "
                EXPR@2482..2483
                  EXPR_LITERAL@2482..2483
                    LITERAL_INT@2482..2483 "0"
              COMMA@2483..2484 ","
              WHITESPACE@2484..2485 " "
              LIMIT@2485..2493
                ORANGE_KW@2485..2491 "orange"
                WHITESPACE@2491..2492 " "
                EXPR@2492..2493
                  EXPR_LITERAL@2492..2493
                    LITERAL_INT@2492..2493 "1"
              COMMA@2493..2494 ","
              WHITESPACE@2494..2495 " "
              LIMIT@2495..2503
                YELLOW_KW@2495..2501 "yellow"
                WHITESPACE@2501..2502 " "
                EXPR@2502..2503
                  EXPR_LITERAL@2502..2503
                    LITERAL_INT@2502..2503 "2"
              WHITESPACE@2503..2504 " "
              RIGHT_CURLY@2504..2505 "}"
            WHITESPACE@2505..2506 " "
            WHITESPACE@2506..2508 "\\\n"
            WHITESPACE@2508..2514 "      "
            HIGH_KW@2514..2518 "high"
            WHITESPACE@2518..2519 " "
            LIMIT_SEQUENCE@2519..2551
              LEFT_CURLY@2519..2520 "{"
              WHITESPACE@2520..2521 " "
              LIMIT@2521..2530
                YELLOW_KW@2521..2527 "yellow"
                WHITESPACE@2527..2528 " "
                EXPR@2528..2530
                  EXPR_LITERAL@2528..2530
                    LITERAL_INT@2528..2530 "10"
              COMMA@2530..2531 ","
              WHITESPACE@2531..2532 " "
              LIMIT@2532..2541
                ORANGE_KW@2532..2538 "orange"
                WHITESPACE@2538..2539 " "
                EXPR@2539..2541
                  EXPR_LITERAL@2539..2541
                    LITERAL_INT@2539..2541 "11"
              COMMA@2541..2542 ","
              WHITESPACE@2542..2543 " "
              LIMIT@2543..2549
                RED_KW@2543..2546 "red"
                WHITESPACE@2546..2547 " "
                EXPR@2547..2549
                  EXPR_LITERAL@2547..2549
                    LITERAL_INT@2547..2549 "12"
              WHITESPACE@2549..2550 " "
              RIGHT_CURLY@2550..2551 "}"
          EOL@2551..2552 "\n"
          WHITESPACE@2552..2556 "    "
          POST_ANNOTATION@2556..2586 "@< Telemetry channel  ..."
          EOL@2586..2588 "\n\n"
          WHITESPACE@2588..2592 "    "
          PRE_ANNOTATION@2592..2609 "@ Event specifier"
          EOL@2609..2610 "\n"
          WHITESPACE@2610..2614 "    "
          SPEC_EVENT@2614..2698
            EVENT_KW@2614..2619 "event"
            WHITESPACE@2619..2620 " "
            NAME@2620..2621
              IDENT@2620..2621 "E"
            FORMAL_PARAM_LIST@2621..2637
              LEFT_PAREN@2621..2622 "("
              FORMAL_PARAM@2622..2628
                NAME@2622..2623
                  IDENT@2622..2623 "a"
                COLON@2623..2624 ":"
                WHITESPACE@2624..2625 " "
                TYPE_NAME@2625..2628
                  U32_KW@2625..2628 "U32"
              COMMA@2628..2629 ","
              WHITESPACE@2629..2630 " "
              FORMAL_PARAM@2630..2636
                NAME@2630..2631
                  IDENT@2630..2631 "b"
                COLON@2631..2632 ":"
                WHITESPACE@2632..2633 " "
                TYPE_NAME@2633..2636
                  F32_KW@2633..2636 "F32"
              RIGHT_PAREN@2636..2637 ")"
            WHITESPACE@2637..2638 " "
            EVENT_SEVERITY@2638..2659
              SEVERITY_KW@2638..2646 "severity"
              WHITESPACE@2646..2647 " "
              ACTIVITY_KW@2647..2655 "activity"
              WHITESPACE@2655..2656 " "
              LOW_KW@2656..2659 "low"
            WHITESPACE@2659..2660 " "
            ID@2660..2667
              ID_KW@2660..2662 "id"
              WHITESPACE@2662..2663 " "
              EXPR@2663..2667
                EXPR_LITERAL@2663..2667
                  LITERAL_INT@2663..2667 "0x00"
            WHITESPACE@2667..2668 " "
            FORMAT@2668..2686
              FORMAT_KW@2668..2674 "format"
              WHITESPACE@2674..2675 " "
              LITERAL_STRING@2675..2686 "\"{} counts\""
            WHITESPACE@2686..2687 " "
            EVENT_THROTTLE@2687..2698
              THROTTLE_KW@2687..2695 "throttle"
              WHITESPACE@2695..2696 " "
              EXPR@2696..2698
                EXPR_LITERAL@2696..2698
                  LITERAL_INT@2696..2698 "10"
          EOL@2698..2699 "\n"
          WHITESPACE@2699..2703 "    "
          POST_ANNOTATION@2703..2721 "@< Event specifier"
          EOL@2721..2723 "\n\n"
          WHITESPACE@2723..2727 "    "
          PRE_ANNOTATION@2727..2766 "@ Event specifier wit ..."
          EOL@2766..2767 "\n"
          WHITESPACE@2767..2771 "    "
          SPEC_EVENT@2771..2876
            EVENT_KW@2771..2776 "event"
            WHITESPACE@2776..2777 " "
            NAME@2777..2779
              IDENT@2777..2779 "ET"
            FORMAL_PARAM_LIST@2779..2795
              LEFT_PAREN@2779..2780 "("
              FORMAL_PARAM@2780..2786
                NAME@2780..2781
                  IDENT@2780..2781 "a"
                COLON@2781..2782 ":"
                WHITESPACE@2782..2783 " "
                TYPE_NAME@2783..2786
                  U32_KW@2783..2786 "U32"
              COMMA@2786..2787 ","
              WHITESPACE@2787..2788 " "
              FORMAL_PARAM@2788..2794
                NAME@2788..2789
                  IDENT@2788..2789 "b"
                COLON@2789..2790 ":"
                WHITESPACE@2790..2791 " "
                TYPE_NAME@2791..2794
                  F32_KW@2791..2794 "F32"
              RIGHT_PAREN@2794..2795 ")"
            WHITESPACE@2795..2796 " "
            EVENT_SEVERITY@2796..2818
              SEVERITY_KW@2796..2804 "severity"
              WHITESPACE@2804..2805 " "
              ACTIVITY_KW@2805..2813 "activity"
              WHITESPACE@2813..2814 " "
              HIGH_KW@2814..2818 "high"
            WHITESPACE@2818..2819 " "
            ID@2819..2826
              ID_KW@2819..2821 "id"
              WHITESPACE@2821..2822 " "
              EXPR@2822..2826
                EXPR_LITERAL@2822..2826
                  LITERAL_INT@2822..2826 "0x00"
            WHITESPACE@2826..2827 " "
            FORMAT@2827..2845
              FORMAT_KW@2827..2833 "format"
              WHITESPACE@2833..2834 " "
              LITERAL_STRING@2834..2845 "\"{} counts\""
            WHITESPACE@2845..2846 " "
            EVENT_THROTTLE@2846..2876
              THROTTLE_KW@2846..2854 "throttle"
              WHITESPACE@2854..2855 " "
              EXPR@2855..2857
                EXPR_LITERAL@2855..2857
                  LITERAL_INT@2855..2857 "10"
              WHITESPACE@2857..2858 " "
              EVERY@2858..2876
                EVERY_KW@2858..2863 "every"
                WHITESPACE@2863..2864 " "
                EXPR@2864..2876
                  EXPR_STRUCT@2864..2876
                    EXPR_STRUCT_MEMBER_LIST@2864..2876
                      LEFT_CURLY@2864..2865 "{"
                      EXPR_STRUCT_MEMBER@2865..2875
                        NAME@2865..2872
                          IDENT@2865..2872 "seconds"
                        EQUALS@2872..2873 "="
                        EXPR@2873..2875
                          EXPR_LITERAL@2873..2875
                            LITERAL_INT@2873..2875 "10"
                      RIGHT_CURLY@2875..2876 "}"
          EOL@2876..2877 "\n"
          WHITESPACE@2877..2881 "    "
          POST_ANNOTATION@2881..2899 "@< Event specifier"
          EOL@2899..2901 "\n\n"
          WHITESPACE@2901..2905 "    "
          PRE_ANNOTATION@2905..2930 "@ Internal port speci ..."
          EOL@2930..2931 "\n"
          WHITESPACE@2931..2935 "    "
          SPEC_PORT_INSTANCE_INTERNAL@2935..2985
            INTERNAL_KW@2935..2943 "internal"
            WHITESPACE@2943..2944 " "
            PORT_KW@2944..2948 "port"
            WHITESPACE@2948..2949 " "
            NAME@2949..2950
              IDENT@2949..2950 "I"
            FORMAL_PARAM_LIST@2950..2966
              LEFT_PAREN@2950..2951 "("
              FORMAL_PARAM@2951..2957
                NAME@2951..2952
                  IDENT@2951..2952 "a"
                COLON@2952..2953 ":"
                WHITESPACE@2953..2954 " "
                TYPE_NAME@2954..2957
                  U32_KW@2954..2957 "U32"
              COMMA@2957..2958 ","
              WHITESPACE@2958..2959 " "
              FORMAL_PARAM@2959..2965
                NAME@2959..2960
                  IDENT@2959..2960 "b"
                COLON@2960..2961 ":"
                WHITESPACE@2961..2962 " "
                TYPE_NAME@2962..2965
                  F32_KW@2962..2965 "F32"
              RIGHT_PAREN@2965..2966 ")"
            WHITESPACE@2966..2967 " "
            PRIORITY@2967..2978
              PRIORITY_KW@2967..2975 "priority"
              WHITESPACE@2975..2976 " "
              EXPR@2976..2978
                EXPR_LITERAL@2976..2978
                  LITERAL_INT@2976..2978 "10"
            WHITESPACE@2978..2979 " "
            QUEUE_FULL@2979..2985
              ASSERT_KW@2979..2985 "assert"
          EOL@2985..2986 "\n"
          WHITESPACE@2986..2990 "    "
          POST_ANNOTATION@2990..3016 "@< Internal port spec ..."
          EOL@3016..3018 "\n\n"
          WHITESPACE@3018..3022 "    "
          PRE_ANNOTATION@3022..3050 "@ Interface import sp ..."
          EOL@3050..3051 "\n"
          WHITESPACE@3051..3055 "    "
          SPEC_INTERFACE_IMPORT@3055..3063
            IMPORT_KW@3055..3061 "import"
            WHITESPACE@3061..3062 " "
            QUAL_IDENT@3062..3063
              IDENT@3062..3063 "I"
          EOL@3063..3064 "\n"
          WHITESPACE@3064..3068 "    "
          POST_ANNOTATION@3068..3097 "@< Interface import s ..."
          EOL@3097..3098 "\n"
          WHITESPACE@3098..3100 "  "
          RIGHT_CURLY@3100..3101 "}"
      EOL@3101..3102 "\n"
      WHITESPACE@3102..3104 "  "
      POST_ANNOTATION@3104..3127 "@< Component definition"
      EOL@3127..3129 "\n\n"
      WHITESPACE@3129..3131 "  "
      PRE_ANNOTATION@3131..3169 "@ Simple component in ..."
      EOL@3169..3170 "\n"
      WHITESPACE@3170..3172 "  "
      DEF_COMPONENT_INSTANCE@3172..3201
        INSTANCE_KW@3172..3180 "instance"
        WHITESPACE@3180..3181 " "
        NAME@3181..3183
          IDENT@3181..3183 "c1"
        COLON@3183..3184 ":"
        WHITESPACE@3184..3185 " "
        QUAL_IDENT@3185..3187
          IDENT@3185..3187 "C1"
        WHITESPACE@3187..3188 " "
        BASE_ID@3188..3201
          BASE_KW@3188..3192 "base"
          WHITESPACE@3192..3193 " "
          ID_KW@3193..3195 "id"
          WHITESPACE@3195..3196 " "
          EXPR@3196..3201
            EXPR_LITERAL@3196..3201
              LITERAL_INT@3196..3201 "0x100"
      EOL@3201..3202 "\n"
      WHITESPACE@3202..3204 "  "
      POST_ANNOTATION@3204..3243 "@< Simple component i ..."
      EOL@3243..3245 "\n\n"
      WHITESPACE@3245..3247 "  "
      PRE_ANNOTATION@3247..3278 "@ Component instance  ..."
      EOL@3278..3279 "\n"
      WHITESPACE@3279..3281 "  "
      DEF_COMPONENT_INSTANCE@3281..3499
        INSTANCE_KW@3281..3289 "instance"
        WHITESPACE@3289..3290 " "
        NAME@3290..3292
          IDENT@3290..3292 "c2"
        COLON@3292..3293 ":"
        WHITESPACE@3293..3294 " "
        QUAL_IDENT@3294..3296
          IDENT@3294..3296 "C2"
        WHITESPACE@3296..3297 " "
        BASE_ID@3297..3310
          BASE_KW@3297..3301 "base"
          WHITESPACE@3301..3302 " "
          ID_KW@3302..3304 "id"
          WHITESPACE@3304..3305 " "
          EXPR@3305..3310
            EXPR_LITERAL@3305..3310
              LITERAL_INT@3305..3310 "0x200"
        WHITESPACE@3310..3311 " "
        COMPONENT_INSTANCE_TYPE@3311..3319
          TYPE_KW@3311..3315 "type"
          WHITESPACE@3315..3316 " "
          LITERAL_STRING@3316..3319 "\"T\""
        WHITESPACE@3319..3320 " "
        COMPONENT_INSTANCE_FILE@3320..3331
          AT_KW@3320..3322 "at"
          WHITESPACE@3322..3323 " "
          LITERAL_STRING@3323..3331 "\"C2.hpp\""
        WHITESPACE@3331..3332 " "
        QUEUE_SIZE@3332..3346
          QUEUE_KW@3332..3337 "queue"
          WHITESPACE@3337..3338 " "
          SIZE_KW@3338..3342 "size"
          WHITESPACE@3342..3343 " "
          EXPR@3343..3346
            EXPR_LITERAL@3343..3346
              LITERAL_INT@3343..3346 "100"
        WHITESPACE@3346..3347 " "
        STACK_SIZE@3347..3362
          STACK_KW@3347..3352 "stack"
          WHITESPACE@3352..3353 " "
          SIZE_KW@3353..3357 "size"
          WHITESPACE@3357..3358 " "
          EXPR@3358..3362
            EXPR_LITERAL@3358..3362
              LITERAL_INT@3358..3362 "1024"
        WHITESPACE@3362..3363 " "
        PRIORITY@3363..3374
          PRIORITY_KW@3363..3371 "priority"
          WHITESPACE@3371..3372 " "
          EXPR@3372..3374
            EXPR_LITERAL@3372..3374
              LITERAL_INT@3372..3374 "10"
        WHITESPACE@3374..3375 " "
        CPU@3375..3380
          CPU_KW@3375..3378 "cpu"
          WHITESPACE@3378..3379 " "
          EXPR@3379..3380
            EXPR_LITERAL@3379..3380
              LITERAL_INT@3379..3380 "0"
        WHITESPACE@3380..3381 " "
        INIT_SPEC_LIST@3381..3499
          LEFT_CURLY@3381..3382 "{"
          EOL@3382..3383 "\n"
          WHITESPACE@3383..3387 "    "
          PRE_ANNOTATION@3387..3403 "@ Init specifier"
          EOL@3403..3404 "\n"
          WHITESPACE@3404..3408 "    "
          SPEC_INIT@3408..3473
            PHASE_KW@3408..3413 "phase"
            WHITESPACE@3413..3414 " "
            EXPR@3414..3426
              EXPR_IDENT@3414..3426
                IDENT@3414..3426 "CONSTRUCTION"
            WHITESPACE@3426..3427 " "
            LITERAL_STRING@3427..3473 "\"\"\"\n    line 1\n       ..."
          EOL@3473..3474 "\n"
          WHITESPACE@3474..3478 "    "
          POST_ANNOTATION@3478..3495 "@< Init specifier"
          EOL@3495..3496 "\n"
          WHITESPACE@3496..3498 "  "
          RIGHT_CURLY@3498..3499 "}"
      EOL@3499..3500 "\n"
      WHITESPACE@3500..3502 "  "
      POST_ANNOTATION@3502..3534 "@< Component instance ..."
      EOL@3534..3536 "\n\n"
      WHITESPACE@3536..3538 "  "
      PRE_ANNOTATION@3538..3559 "@ Constant definition"
      EOL@3559..3560 "\n"
      WHITESPACE@3560..3562 "  "
      DEF_CONSTANT@3562..3576
        CONSTANT_KW@3562..3570 "constant"
        WHITESPACE@3570..3571 " "
        NAME@3571..3572
          IDENT@3571..3572 "x"
        WHITESPACE@3572..3573 " "
        EQUALS@3573..3574 "="
        WHITESPACE@3574..3575 " "
        EXPR@3575..3576
          EXPR_LITERAL@3575..3576
            LITERAL_INT@3575..3576 "0"
      EOL@3576..3577 "\n"
      WHITESPACE@3577..3579 "  "
      POST_ANNOTATION@3579..3601 "@< Constant definition"
      EOL@3601..3603 "\n\n"
      WHITESPACE@3603..3605 "  "
      PRE_ANNOTATION@3605..3622 "@ Enum definition"
      EOL@3622..3623 "\n"
      WHITESPACE@3623..3625 "  "
      DEF_ENUM@3625..3697
        ENUM_KW@3625..3629 "enum"
        WHITESPACE@3629..3630 " "
        NAME@3630..3631
          IDENT@3630..3631 "E"
        WHITESPACE@3631..3632 " "
        COLON@3632..3633 ":"
        WHITESPACE@3633..3634 " "
        TYPE_NAME@3634..3637
          I32_KW@3634..3637 "I32"
        WHITESPACE@3637..3638 " "
        ENUM_MEMBER_LIST@3638..3697
          LEFT_CURLY@3638..3639 "{"
          EOL@3639..3640 "\n"
          WHITESPACE@3640..3644 "    "
          PRE_ANNOTATION@3644..3647 "@ X"
          EOL@3647..3648 "\n"
          WHITESPACE@3648..3652 "    "
          DEF_ENUM_CONSTANT@3652..3657
            NAME@3652..3653
              IDENT@3652..3653 "X"
            WHITESPACE@3653..3654 " "
            EQUALS@3654..3655 "="
            WHITESPACE@3655..3656 " "
            EXPR@3656..3657
              EXPR_LITERAL@3656..3657
                LITERAL_INT@3656..3657 "1"
          EOL@3657..3658 "\n"
          WHITESPACE@3658..3662 "    "
          POST_ANNOTATION@3662..3666 "@< X"
          EOL@3666..3667 "\n"
          WHITESPACE@3667..3671 "    "
          PRE_ANNOTATION@3671..3674 "@ Y"
          EOL@3674..3675 "\n"
          WHITESPACE@3675..3679 "    "
          DEF_ENUM_CONSTANT@3679..3684
            NAME@3679..3680
              IDENT@3679..3680 "Y"
            WHITESPACE@3680..3681 " "
            EQUALS@3681..3682 "="
            WHITESPACE@3682..3683 " "
            EXPR@3683..3684
              EXPR_LITERAL@3683..3684
                LITERAL_INT@3683..3684 "2"
          EOL@3684..3685 "\n"
          WHITESPACE@3685..3689 "    "
          POST_ANNOTATION@3689..3693 "@< Y"
          EOL@3693..3694 "\n"
          WHITESPACE@3694..3696 "  "
          RIGHT_CURLY@3696..3697 "}"
      EOL@3697..3698 "\n"
      WHITESPACE@3698..3700 "  "
      POST_ANNOTATION@3700..3718 "@< Enum definition"
      EOL@3718..3720 "\n\n"
      WHITESPACE@3720..3722 "  "
      PRE_ANNOTATION@3722..3741 "@ Module definition"
      EOL@3741..3742 "\n"
      WHITESPACE@3742..3744 "  "
      DEF_MODULE@3744..3779
        MODULE_KW@3744..3750 "module"
        WHITESPACE@3750..3751 " "
        NAME@3751..3752
          IDENT@3751..3752 "M"
        WHITESPACE@3752..3753 " "
        MODULE_MEMBER_LIST@3753..3779
          LEFT_CURLY@3753..3754 "{"
          EOL@3754..3756 "\n\n"
          WHITESPACE@3756..3760 "    "
          DEF_CONSTANT@3760..3774
            CONSTANT_KW@3760..3768 "constant"
            WHITESPACE@3768..3769 " "
            NAME@3769..3770
              IDENT@3769..3770 "x"
            WHITESPACE@3770..3771 " "
            EQUALS@3771..3772 "="
            WHITESPACE@3772..3773 " "
            EXPR@3773..3774
              EXPR_LITERAL@3773..3774
                LITERAL_INT@3773..3774 "0"
          EOL@3774..3776 "\n\n"
          WHITESPACE@3776..3778 "  "
          RIGHT_CURLY@3778..3779 "}"
      EOL@3779..3780 "\n"
      WHITESPACE@3780..3782 "  "
      POST_ANNOTATION@3782..3802 "@< Module definition"
      EOL@3802..3804 "\n\n"
      WHITESPACE@3804..3806 "  "
      DEF_MODULE@3806..3905
        MODULE_KW@3806..3812 "module"
        WHITESPACE@3812..3813 " "
        NAME@3813..3822
          IDENT@3813..3822 "Constants"
        WHITESPACE@3822..3823 " "
        MODULE_MEMBER_LIST@3823..3905
          LEFT_CURLY@3823..3824 "{"
          EOL@3824..3825 "\n"
          WHITESPACE@3825..3829 "    "
          PRE_ANNOTATION@3829..3848 "@ Include specifier"
          EOL@3848..3849 "\n"
          WHITESPACE@3849..3853 "    "
          SPEC_INCLUDE@3853..3876
            INCLUDE_KW@3853..3860 "include"
            WHITESPACE@3860..3861 " "
            LITERAL_STRING@3861..3876 "\"constant.fppi\""
          EOL@3876..3877 "\n"
          WHITESPACE@3877..3881 "    "
          POST_ANNOTATION@3881..3901 "@< Include specifier"
          EOL@3901..3902 "\n"
          WHITESPACE@3902..3904 "  "
          RIGHT_CURLY@3904..3905 "}"
      EOL@3905..3907 "\n\n"
      WHITESPACE@3907..3909 "  "
      PRE_ANNOTATION@3909..3937 "@ Module template def ..."
      EOL@3937..3938 "\n"
      WHITESPACE@3938..3940 "  "
      DEF_MODULE_TEMPLATE@3940..4259
        MODULE_KW@3940..3946 "module"
        WHITESPACE@3946..3947 " "
        TEMPLATE_KW@3947..3955 "template"
        WHITESPACE@3955..3956 " "
        NAME@3956..3958
          IDENT@3956..3958 "MT"
        TEMPLATE_PARAM_LIST@3958..4232
          LEFT_PAREN@3958..3959 "("
          EOL@3959..3960 "\n"
          WHITESPACE@3960..3964 "    "
          PRE_ANNOTATION@3964..3993 "@ Constant template p ..."
          EOL@3993..3994 "\n"
          WHITESPACE@3994..3998 "    "
          TEMPLATE_PARAM@3998..4013
            CONSTANT_KW@3998..4006 "constant"
            WHITESPACE@4006..4007 " "
            NAME@4007..4008
              IDENT@4007..4008 "c"
            COLON@4008..4009 ":"
            WHITESPACE@4009..4010 " "
            TYPE_NAME@4010..4013
              U32_KW@4010..4013 "U32"
          EOL@4013..4014 "\n"
          WHITESPACE@4014..4018 "    "
          POST_ANNOTATION@4018..4048 "@< Constant template  ..."
          EOL@4048..4049 "\n"
          WHITESPACE@4049..4053 "    "
          PRE_ANNOTATION@4053..4078 "@ Type template param ..."
          EOL@4078..4079 "\n"
          WHITESPACE@4079..4083 "    "
          TEMPLATE_PARAM@4083..4090
            TYPE_KW@4083..4087 "type"
            WHITESPACE@4087..4088 " "
            NAME@4088..4090
              IDENT@4088..4090 "Ty"
          EOL@4090..4091 "\n"
          WHITESPACE@4091..4095 "    "
          POST_ANNOTATION@4095..4121 "@< Type template para ..."
          EOL@4121..4122 "\n"
          WHITESPACE@4122..4126 "    "
          PRE_ANNOTATION@4126..4165 "@ Interface instance  ..."
          EOL@4165..4166 "\n"
          WHITESPACE@4166..4170 "    "
          TEMPLATE_PARAM@4170..4183
            INSTANCE_KW@4170..4178 "instance"
            WHITESPACE@4178..4179 " "
            NAME@4179..4180
              IDENT@4179..4180 "i"
            COLON@4180..4181 ":"
            WHITESPACE@4181..4182 " "
            QUAL_IDENT@4182..4183
              IDENT@4182..4183 "I"
          EOL@4183..4184 "\n"
          WHITESPACE@4184..4188 "    "
          POST_ANNOTATION@4188..4228 "@< Interface instance ..."
          EOL@4228..4229 "\n"
          WHITESPACE@4229..4231 "  "
          RIGHT_PAREN@4231..4232 ")"
        WHITESPACE@4232..4233 " "
        MODULE_MEMBER_LIST@4233..4259
          LEFT_CURLY@4233..4234 "{"
          EOL@4234..4236 "\n\n"
          WHITESPACE@4236..4240 "    "
          DEF_CONSTANT@4240..4254
            CONSTANT_KW@4240..4248 "constant"
            WHITESPACE@4248..4249 " "
            NAME@4249..4250
              IDENT@4249..4250 "a"
            WHITESPACE@4250..4251 " "
            EQUALS@4251..4252 "="
            WHITESPACE@4252..4253 " "
            EXPR@4253..4254
              EXPR_IDENT@4253..4254
                IDENT@4253..4254 "c"
          EOL@4254..4256 "\n\n"
          WHITESPACE@4256..4258 "  "
          RIGHT_CURLY@4258..4259 "}"
      EOL@4259..4260 "\n"
      WHITESPACE@4260..4262 "  "
      POST_ANNOTATION@4262..4291 "@< Module template de ..."
      EOL@4291..4293 "\n\n"
      WHITESPACE@4293..4295 "  "
      PRE_ANNOTATION@4295..4336 "@ Unexpanded template ..."
      EOL@4336..4337 "\n"
      WHITESPACE@4337..4339 "  "
      SPEC_TEMPLATE_EXPAND@4339..4383
        EXPAND_KW@4339..4345 "expand"
        WHITESPACE@4345..4346 " "
        QUAL_IDENT@4346..4348
          IDENT@4346..4348 "MT"
        TEMPLATE_ARG_LIST@4348..4383
          LEFT_PAREN@4348..4349 "("
          TEMPLATE_ARG@4349..4359
            CONSTANT_KW@4349..4357 "constant"
            WHITESPACE@4357..4358 " "
            EXPR@4358..4359
              EXPR_LITERAL@4358..4359
                LITERAL_INT@4358..4359 "0"
          COMMA@4359..4360 ","
          WHITESPACE@4360..4361 " "
          TEMPLATE_ARG@4361..4369
            TYPE_KW@4361..4365 "type"
            WHITESPACE@4365..4366 " "
            TYPE_NAME@4366..4369
              U32_KW@4366..4369 "U32"
          COMMA@4369..4370 ","
          WHITESPACE@4370..4371 " "
          TEMPLATE_ARG@4371..4382
            INSTANCE_KW@4371..4379 "instance"
            WHITESPACE@4379..4380 " "
            QUAL_IDENT@4380..4382
              IDENT@4380..4382 "i1"
          RIGHT_PAREN@4382..4383 ")"
      EOL@4383..4384 "\n"
      WHITESPACE@4384..4386 "  "
      POST_ANNOTATION@4386..4428 "@< Unexpanded templat ..."
      EOL@4428..4430 "\n\n"
      WHITESPACE@4430..4432 "  "
      PRE_ANNOTATION@4432..4471 "@ Expanded template e ..."
      EOL@4471..4472 "\n"
      WHITESPACE@4472..4474 "  "
      SPEC_TEMPLATE_EXPAND@4474..4545
        EXPAND_KW@4474..4480 "expand"
        WHITESPACE@4480..4481 " "
        QUAL_IDENT@4481..4483
          IDENT@4481..4483 "MT"
        TEMPLATE_ARG_LIST@4483..4518
          LEFT_PAREN@4483..4484 "("
          TEMPLATE_ARG@4484..4494
            CONSTANT_KW@4484..4492 "constant"
            WHITESPACE@4492..4493 " "
            EXPR@4493..4494
              EXPR_LITERAL@4493..4494
                LITERAL_INT@4493..4494 "0"
          COMMA@4494..4495 ","
          WHITESPACE@4495..4496 " "
          TEMPLATE_ARG@4496..4504
            TYPE_KW@4496..4500 "type"
            WHITESPACE@4500..4501 " "
            TYPE_NAME@4501..4504
              U32_KW@4501..4504 "U32"
          COMMA@4504..4505 ","
          WHITESPACE@4505..4506 " "
          TEMPLATE_ARG@4506..4517
            INSTANCE_KW@4506..4514 "instance"
            WHITESPACE@4514..4515 " "
            QUAL_IDENT@4515..4517
              IDENT@4515..4517 "i1"
          RIGHT_PAREN@4517..4518 ")"
        WHITESPACE@4518..4519 " "
        MODULE_MEMBER_LIST@4519..4545
          LEFT_CURLY@4519..4520 "{"
          EOL@4520..4522 "\n\n"
          WHITESPACE@4522..4526 "    "
          DEF_CONSTANT@4526..4540
            CONSTANT_KW@4526..4534 "constant"
            WHITESPACE@4534..4535 " "
            NAME@4535..4536
              IDENT@4535..4536 "b"
            WHITESPACE@4536..4537 " "
            EQUALS@4537..4538 "="
            WHITESPACE@4538..4539 " "
            EXPR@4539..4540
              EXPR_LITERAL@4539..4540
                LITERAL_INT@4539..4540 "0"
          EOL@4540..4542 "\n\n"
          WHITESPACE@4542..4544 "  "
          RIGHT_CURLY@4544..4545 "}"
      EOL@4545..4546 "\n"
      WHITESPACE@4546..4548 "  "
      POST_ANNOTATION@4548..4588 "@< Expanded template  ..."
      EOL@4588..4590 "\n\n"
      WHITESPACE@4590..4592 "  "
      PRE_ANNOTATION@4592..4609 "@ Port definition"
      EOL@4609..4610 "\n"
      WHITESPACE@4610..4612 "  "
      DEF_PORT@4612..4641
        PORT_KW@4612..4616 "port"
        WHITESPACE@4616..4617 " "
        NAME@4617..4618
          IDENT@4617..4618 "P"
        FORMAL_PARAM_LIST@4618..4634
          LEFT_PAREN@4618..4619 "("
          FORMAL_PARAM@4619..4625
            NAME@4619..4620
              IDENT@4619..4620 "a"
            COLON@4620..4621 ":"
            WHITESPACE@4621..4622 " "
            TYPE_NAME@4622..4625
              U32_KW@4622..4625 "U32"
          COMMA@4625..4626 ","
          WHITESPACE@4626..4627 " "
          FORMAL_PARAM@4627..4633
            NAME@4627..4628
              IDENT@4627..4628 "b"
            COLON@4628..4629 ":"
            WHITESPACE@4629..4630 " "
            TYPE_NAME@4630..4633
              F32_KW@4630..4633 "F32"
          RIGHT_PAREN@4633..4634 ")"
        WHITESPACE@4634..4635 " "
        RIGHT_ARROW@4635..4637 "->"
        WHITESPACE@4637..4638 " "
        TYPE_NAME@4638..4641
          U32_KW@4638..4641 "U32"
      EOL@4641..4642 "\n"
      WHITESPACE@4642..4644 "  "
      POST_ANNOTATION@4644..4662 "@< Port definition"
      EOL@4662..4664 "\n\n"
      WHITESPACE@4664..4666 "  "
      PRE_ANNOTATION@4666..4685 "@ Struct definition"
      EOL@4685..4686 "\n"
      WHITESPACE@4686..4688 "  "
      DEF_STRUCT@4688..4788
        STRUCT_KW@4688..4694 "struct"
        WHITESPACE@4694..4695 " "
        NAME@4695..4696
          IDENT@4695..4696 "S"
        WHITESPACE@4696..4697 " "
        STRUCT_MEMBER_LIST@4697..4788
          LEFT_CURLY@4697..4698 "{"
          EOL@4698..4699 "\n"
          WHITESPACE@4699..4703 "    "
          PRE_ANNOTATION@4703..4706 "@ x"
          EOL@4706..4707 "\n"
          WHITESPACE@4707..4711 "    "
          STRUCT_MEMBER@4711..4731
            NAME@4711..4712
              IDENT@4711..4712 "x"
            COLON@4712..4713 ":"
            WHITESPACE@4713..4714 " "
            TYPE_NAME@4714..4717
              U32_KW@4714..4717 "U32"
            WHITESPACE@4717..4718 " "
            FORMAT@4718..4731
              FORMAT_KW@4718..4724 "format"
              WHITESPACE@4724..4725 " "
              LITERAL_STRING@4725..4731 "\"{} s\""
          EOL@4731..4732 "\n"
          WHITESPACE@4732..4736 "    "
          POST_ANNOTATION@4736..4740 "@< x"
          EOL@4740..4741 "\n"
          WHITESPACE@4741..4745 "    "
          PRE_ANNOTATION@4745..4748 "@ y"
          EOL@4748..4749 "\n"
          WHITESPACE@4749..4753 "    "
          STRUCT_MEMBER@4753..4775
            NAME@4753..4754
              IDENT@4753..4754 "y"
            COLON@4754..4755 ":"
            WHITESPACE@4755..4756 " "
            TYPE_NAME@4756..4759
              F32_KW@4756..4759 "F32"
            WHITESPACE@4759..4760 " "
            FORMAT@4760..4775
              FORMAT_KW@4760..4766 "format"
              WHITESPACE@4766..4767 " "
              LITERAL_STRING@4767..4775 "\"{} m/s\""
          EOL@4775..4776 "\n"
          WHITESPACE@4776..4780 "    "
          POST_ANNOTATION@4780..4784 "@< y"
          EOL@4784..4785 "\n"
          WHITESPACE@4785..4787 "  "
          RIGHT_CURLY@4787..4788 "}"
      EOL@4788..4789 "\n"
      WHITESPACE@4789..4791 "  "
      POST_ANNOTATION@4791..4811 "@< Struct definition"
      EOL@4811..4813 "\n\n"
      WHITESPACE@4813..4815 "  "
      PRE_ANNOTATION@4815..4836 "@ Topology definition"
      EOL@4836..4837 "\n"
      WHITESPACE@4837..4839 "  "
      DEF_TOPOLOGY@4839..6093
        TOPOLOGY_KW@4839..4847 "topology"
        WHITESPACE@4847..4848 " "
        NAME@4848..4849
          IDENT@4848..4849 "T"
        WHITESPACE@4849..4850 " "
        TOPOLOGY_MEMBER_LIST@4850..6093
          LEFT_CURLY@4850..4851 "{"
          EOL@4851..4853 "\n\n"
          WHITESPACE@4853..4857 "    "
          PRE_ANNOTATION@4857..4884 "@ Public instance spe ..."
          EOL@4884..4885 "\n"
          WHITESPACE@4885..4889 "    "
          SPEC_INSTANCE@4889..4900
            INSTANCE_KW@4889..4897 "instance"
            WHITESPACE@4897..4898 " "
            QUAL_IDENT@4898..4900
              IDENT@4898..4900 "i1"
          EOL@4900..4901 "\n"
          WHITESPACE@4901..4905 "    "
          POST_ANNOTATION@4905..4933 "@< Public instance sp ..."
          EOL@4933..4935 "\n\n"
          WHITESPACE@4935..4939 "    "
          PRE_ANNOTATION@4939..5001 "@ Public instance spe ..."
          EOL@5001..5002 "\n"
          WHITESPACE@5002..5006 "    "
          SPEC_INSTANCE@5006..5021
            INSTANCE_KW@5006..5014 "instance"
            WHITESPACE@5014..5015 " "
            QUAL_IDENT@5015..5021
              DOT@5015..5016 "."
              IDENT@5016..5021 "i1Abs"
          EOL@5021..5022 "\n"
          WHITESPACE@5022..5026 "    "
          POST_ANNOTATION@5026..5089 "@< Public instance sp ..."
          EOL@5089..5091 "\n\n"
          WHITESPACE@5091..5095 "    "
          PRE_ANNOTATION@5095..5130 "@ Direct connection g ..."
          EOL@5130..5131 "\n"
          WHITESPACE@5131..5135 "    "
          SPEC_CONNECTION_GRAPH_DIRECT@5135..5272
            CONNECTIONS_KW@5135..5146 "connections"
            WHITESPACE@5146..5147 " "
            NAME@5147..5148
              IDENT@5147..5148 "C"
            WHITESPACE@5148..5149 " "
            CONNECTION_MEMBER_LIST@5149..5272
              LEFT_CURLY@5149..5150 "{"
              EOL@5150..5151 "\n"
              WHITESPACE@5151..5157 "      "
              CONNECTION@5157..5175
                CONNECTION_FROM@5157..5164
                  PORT_INSTANCE_IDENTIFIER@5157..5161
                    IDENT@5157..5159 "i1"
                    DOT@5159..5160 "."
                    IDENT@5160..5161 "p"
                  INDEX_OR_SIZE@5161..5164
                    LEFT_SQUARE@5161..5162 "["
                    EXPR@5162..5163
                      EXPR_LITERAL@5162..5163
                        LITERAL_INT@5162..5163 "0"
                    RIGHT_SQUARE@5163..5164 "]"
                WHITESPACE@5164..5165 " "
                RIGHT_ARROW@5165..5167 "->"
                WHITESPACE@5167..5168 " "
                CONNECTION_TO@5168..5175
                  PORT_INSTANCE_IDENTIFIER@5168..5172
                    IDENT@5168..5170 "i2"
                    DOT@5170..5171 "."
                    IDENT@5171..5172 "p"
                  INDEX_OR_SIZE@5172..5175
                    LEFT_SQUARE@5172..5173 "["
                    EXPR@5173..5174
                      EXPR_LITERAL@5173..5174
                        LITERAL_INT@5173..5174 "1"
                    RIGHT_SQUARE@5174..5175 "]"
              EOL@5175..5176 "\n"
              WHITESPACE@5176..5182 "      "
              CONNECTION@5182..5212
                UNMATCHED_KW@5182..5191 "unmatched"
                WHITESPACE@5191..5192 " "
                CONNECTION_FROM@5192..5200
                  PORT_INSTANCE_IDENTIFIER@5192..5197
                    IDENT@5192..5194 "i1"
                    DOT@5194..5195 "."
                    IDENT@5195..5197 "p1"
                  INDEX_OR_SIZE@5197..5200
                    LEFT_SQUARE@5197..5198 "["
                    EXPR@5198..5199
                      EXPR_LITERAL@5198..5199
                        LITERAL_INT@5198..5199 "0"
                    RIGHT_SQUARE@5199..5200 "]"
                WHITESPACE@5200..5201 " "
                RIGHT_ARROW@5201..5203 "->"
                WHITESPACE@5203..5204 " "
                CONNECTION_TO@5204..5212
                  PORT_INSTANCE_IDENTIFIER@5204..5209
                    IDENT@5204..5206 "i2"
                    DOT@5206..5207 "."
                    IDENT@5207..5209 "p2"
                  INDEX_OR_SIZE@5209..5212
                    LEFT_SQUARE@5209..5210 "["
                    EXPR@5210..5211
                      EXPR_LITERAL@5210..5211
                        LITERAL_INT@5210..5211 "0"
                    RIGHT_SQUARE@5211..5212 "]"
              EOL@5212..5213 "\n"
              WHITESPACE@5213..5219 "      "
              CONNECTION@5219..5243
                UNMATCHED_KW@5219..5228 "unmatched"
                WHITESPACE@5228..5229 " "
                CONNECTION_FROM@5229..5234
                  PORT_INSTANCE_IDENTIFIER@5229..5234
                    IDENT@5229..5231 "i1"
                    DOT@5231..5232 "."
                    IDENT@5232..5234 "p1"
                WHITESPACE@5234..5235 " "
                RIGHT_ARROW@5235..5237 "->"
                WHITESPACE@5237..5238 " "
                CONNECTION_TO@5238..5243
                  PORT_INSTANCE_IDENTIFIER@5238..5243
                    IDENT@5238..5240 "i2"
                    DOT@5240..5241 "."
                    IDENT@5241..5243 "p2"
              EOL@5243..5244 "\n"
              WHITESPACE@5244..5250 "      "
              CONNECTION@5250..5266
                CONNECTION_FROM@5250..5256
                  PORT_INSTANCE_IDENTIFIER@5250..5256
                    DOT@5250..5251 "."
                    IDENT@5251..5253 "i1"
                    DOT@5253..5254 "."
                    IDENT@5254..5256 "p3"
                WHITESPACE@5256..5257 " "
                RIGHT_ARROW@5257..5259 "->"
                WHITESPACE@5259..5260 " "
                CONNECTION_TO@5260..5266
                  PORT_INSTANCE_IDENTIFIER@5260..5266
                    DOT@5260..5261 "."
                    IDENT@5261..5263 "i2"
                    DOT@5263..5264 "."
                    IDENT@5264..5266 "p3"
              EOL@5266..5267 "\n"
              WHITESPACE@5267..5271 "    "
              RIGHT_CURLY@5271..5272 "}"
          EOL@5272..5273 "\n"
          WHITESPACE@5273..5277 "    "
          POST_ANNOTATION@5277..5313 "@< Direct connection  ..."
          EOL@5313..5315 "\n\n"
          WHITESPACE@5315..5319 "    "
          PRE_ANNOTATION@5319..5344 "@ Graph pattern speci ..."
          EOL@5344..5345 "\n"
          WHITESPACE@5345..5349 "    "
          SPEC_CONNECTION_GRAPH_PATTERN@5349..5395
            COMMAND_KW@5349..5356 "command"
            WHITESPACE@5356..5357 " "
            CONNECTIONS_KW@5357..5368 "connections"
            WHITESPACE@5368..5369 " "
            INSTANCE_KW@5369..5377 "instance"
            WHITESPACE@5377..5378 " "
            QUAL_IDENT@5378..5380
              IDENT@5378..5380 "i1"
            WHITESPACE@5380..5381 " "
            PATTERN_TARGET_MEMBER_LIST@5381..5395
              LEFT_CURLY@5381..5382 "{"
              WHITESPACE@5382..5383 " "
              QUAL_IDENT@5383..5385
                IDENT@5383..5385 "i2"
              COMMA@5385..5386 ","
              WHITESPACE@5386..5387 " "
              QUAL_IDENT@5387..5389
                IDENT@5387..5389 "i3"
              COMMA@5389..5390 ","
              WHITESPACE@5390..5391 " "
              QUAL_IDENT@5391..5393
                IDENT@5391..5393 "i4"
              WHITESPACE@5393..5394 " "
              RIGHT_CURLY@5394..5395 "}"
          EOL@5395..5396 "\n"
          WHITESPACE@5396..5400 "    "
          POST_ANNOTATION@5400..5426 "@< Graph pattern spec ..."
          EOL@5426..5428 "\n\n"
          WHITESPACE@5428..5432 "    "
          PRE_ANNOTATION@5432..5461 "@ Topology instance s ..."
          EOL@5461..5462 "\n"
          WHITESPACE@5462..5466 "    "
          SPEC_INSTANCE@5466..5475
            IMPORT_KW@5466..5472 "import"
            WHITESPACE@5472..5473 " "
            QUAL_IDENT@5473..5475
              IDENT@5473..5475 "T1"
          EOL@5475..5476 "\n"
          WHITESPACE@5476..5480 "    "
          POST_ANNOTATION@5480..5510 "@< Topology instance  ..."
          EOL@5510..5512 "\n\n"
          WHITESPACE@5512..5516 "    "
          PRE_ANNOTATION@5516..5540 "@ Telemetry packet group"
          EOL@5540..5541 "\n"
          WHITESPACE@5541..5545 "    "
          TLM_PACKET_SET@5545..5827
            TELEMETRY_KW@5545..5554 "telemetry"
            WHITESPACE@5554..5555 " "
            PACKETS_KW@5555..5562 "packets"
            WHITESPACE@5562..5563 " "
            NAME@5563..5564
              IDENT@5563..5564 "P"
            WHITESPACE@5564..5565 " "
            TLM_PACKET_SET_MEMBER_LIST@5565..5789
              LEFT_CURLY@5565..5566 "{"
              EOL@5566..5568 "\n\n"
              WHITESPACE@5568..5574 "      "
              PRE_ANNOTATION@5574..5592 "@ Telemetry packet"
              EOL@5592..5593 "\n"
              WHITESPACE@5593..5599 "      "
              SPEC_TLM_PACKET@5599..5674
                PACKET_KW@5599..5605 "packet"
                WHITESPACE@5605..5606 " "
                NAME@5606..5608
                  IDENT@5606..5608 "P1"
                WHITESPACE@5608..5609 " "
                ID@5609..5613
                  ID_KW@5609..5611 "id"
                  WHITESPACE@5611..5612 " "
                  EXPR@5612..5613
                    EXPR_LITERAL@5612..5613
                      LITERAL_INT@5612..5613 "0"
                WHITESPACE@5613..5614 " "
                GROUP@5614..5621
                  GROUP_KW@5614..5619 "group"
                  WHITESPACE@5619..5620 " "
                  EXPR@5620..5621
                    EXPR_LITERAL@5620..5621
                      LITERAL_INT@5620..5621 "0"
                WHITESPACE@5621..5622 " "
                TLM_PACKET_MEMBER_LIST@5622..5674
                  LEFT_CURLY@5622..5623 "{"
                  EOL@5623..5624 "\n"
                  WHITESPACE@5624..5632 "        "
                  TLM_CHANNEL_IDENTIFIER@5632..5637
                    IDENT@5632..5634 "i1"
                    DOT@5634..5635 "."
                    IDENT@5635..5637 "c1"
                  EOL@5637..5638 "\n"
                  WHITESPACE@5638..5646 "        "
                  TLM_CHANNEL_IDENTIFIER@5646..5651
                    IDENT@5646..5648 "i2"
                    DOT@5648..5649 "."
                    IDENT@5649..5651 "c2"
                  EOL@5651..5652 "\n"
                  WHITESPACE@5652..5660 "        "
                  TLM_CHANNEL_IDENTIFIER@5660..5666
                    DOT@5660..5661 "."
                    IDENT@5661..5663 "i1"
                    DOT@5663..5664 "."
                    IDENT@5664..5666 "c3"
                  EOL@5666..5667 "\n"
                  WHITESPACE@5667..5673 "      "
                  RIGHT_CURLY@5673..5674 "}"
              EOL@5674..5675 "\n"
              WHITESPACE@5675..5681 "      "
              POST_ANNOTATION@5681..5700 "@< Telemetry packet"
              EOL@5700..5702 "\n\n"
              WHITESPACE@5702..5708 "      "
              PRE_ANNOTATION@5708..5727 "@ Include specifier"
              EOL@5727..5728 "\n"
              WHITESPACE@5728..5734 "      "
              SPEC_INCLUDE@5734..5755
                INCLUDE_KW@5734..5741 "include"
                WHITESPACE@5741..5742 " "
                LITERAL_STRING@5742..5755 "\"packet.fppi\""
              EOL@5755..5756 "\n"
              WHITESPACE@5756..5762 "      "
              POST_ANNOTATION@5762..5782 "@< Include specifier"
              EOL@5782..5784 "\n\n"
              WHITESPACE@5784..5788 "    "
              RIGHT_CURLY@5788..5789 "}"
            WHITESPACE@5789..5790 " "
            TLM_PACKET_OMIT@5790..5827
              OMIT_KW@5790..5794 "omit"
              WHITESPACE@5794..5795 " "
              TLM_PACKET_OMIT_MEMBER_LIST@5795..5827
                LEFT_CURLY@5795..5796 "{"
                EOL@5796..5797 "\n"
                WHITESPACE@5797..5803 "      "
                TLM_CHANNEL_IDENTIFIER@5803..5808
                  IDENT@5803..5805 "i3"
                  DOT@5805..5806 "."
                  IDENT@5806..5808 "c3"
                EOL@5808..5809 "\n"
                WHITESPACE@5809..5815 "      "
                TLM_CHANNEL_IDENTIFIER@5815..5821
                  DOT@5815..5816 "."
                  IDENT@5816..5818 "i3"
                  DOT@5818..5819 "."
                  IDENT@5819..5821 "c4"
                EOL@5821..5822 "\n"
                WHITESPACE@5822..5826 "    "
                RIGHT_CURLY@5826..5827 "}"
          EOL@5827..5828 "\n"
          WHITESPACE@5828..5832 "    "
          POST_ANNOTATION@5832..5857 "@< Telemetry packet g ..."
          EOL@5857..5859 "\n\n"
          WHITESPACE@5859..5863 "    "
          PRE_ANNOTATION@5863..5888 "@ Topology port speci ..."
          EOL@5888..5889 "\n"
          WHITESPACE@5889..5893 "    "
          SPEC_TOP_PORT@5893..5905
            PORT_KW@5893..5897 "port"
            WHITESPACE@5897..5898 " "
            NAME@5898..5899
              IDENT@5898..5899 "a"
            WHITESPACE@5899..5900 " "
            EQUALS@5900..5901 "="
            WHITESPACE@5901..5902 " "
            PORT_INSTANCE_IDENTIFIER@5902..5905
              IDENT@5902..5903 "b"
              DOT@5903..5904 "."
              IDENT@5904..5905 "a"
          EOL@5905..5906 "\n"
          WHITESPACE@5906..5910 "    "
          POST_ANNOTATION@5910..5936 "@< Topology port spec ..."
          EOL@5936..5938 "\n\n"
          WHITESPACE@5938..5942 "    "
          PRE_ANNOTATION@5942..6002 "@ Topology port speci ..."
          EOL@6002..6003 "\n"
          WHITESPACE@6003..6007 "    "
          SPEC_TOP_PORT@6007..6023
            PORT_KW@6007..6011 "port"
            WHITESPACE@6011..6012 " "
            NAME@6012..6016
              IDENT@6012..6016 "aAbs"
            WHITESPACE@6016..6017 " "
            EQUALS@6017..6018 "="
            WHITESPACE@6018..6019 " "
            PORT_INSTANCE_IDENTIFIER@6019..6023
              DOT@6019..6020 "."
              IDENT@6020..6021 "b"
              DOT@6021..6022 "."
              IDENT@6022..6023 "a"
          EOL@6023..6024 "\n"
          WHITESPACE@6024..6028 "    "
          POST_ANNOTATION@6028..6089 "@< Topology port spec ..."
          EOL@6089..6090 "\n"
          WHITESPACE@6090..6092 "  "
          RIGHT_CURLY@6092..6093 "}"
      EOL@6093..6094 "\n"
      WHITESPACE@6094..6096 "  "
      POST_ANNOTATION@6096..6118 "@< Topology definition"
      EOL@6118..6120 "\n\n"
      WHITESPACE@6120..6122 "  "
      PRE_ANNOTATION@6122..6143 "@ Deployment topology"
      EOL@6143..6144 "\n"
      WHITESPACE@6144..6146 "  "
      DEF_TOPOLOGY@6146..6171
        DEPLOYMENT_KW@6146..6156 "deployment"
        WHITESPACE@6156..6157 " "
        TOPOLOGY_KW@6157..6165 "topology"
        WHITESPACE@6165..6166 " "
        NAME@6166..6168
          IDENT@6166..6168 "T1"
        WHITESPACE@6168..6169 " "
        TOPOLOGY_MEMBER_LIST@6169..6171
          LEFT_CURLY@6169..6170 "{"
          RIGHT_CURLY@6170..6171 "}"
      EOL@6171..6172 "\n"
      WHITESPACE@6172..6174 "  "
      POST_ANNOTATION@6174..6196 "@< Deployment topology"
      EOL@6196..6198 "\n\n"
      WHITESPACE@6198..6200 "  "
      PRE_ANNOTATION@6200..6241 "@ Topology definition ..."
      EOL@6241..6242 "\n"
      WHITESPACE@6242..6244 "  "
      DEF_TOPOLOGY@6244..6271
        TOPOLOGY_KW@6244..6252 "topology"
        WHITESPACE@6252..6253 " "
        NAME@6253..6255
          IDENT@6253..6255 "T2"
        WHITESPACE@6255..6256 " "
        IMPLEMENTS_CLAUSE@6256..6268
          IMPLEMENTS_KW@6256..6266 "implements"
          WHITESPACE@6266..6267 " "
          QUAL_IDENT@6267..6268
            IDENT@6267..6268 "I"
        WHITESPACE@6268..6269 " "
        TOPOLOGY_MEMBER_LIST@6269..6271
          LEFT_CURLY@6269..6270 "{"
          RIGHT_CURLY@6270..6271 "}"
      EOL@6271..6272 "\n"
      WHITESPACE@6272..6274 "  "
      POST_ANNOTATION@6274..6316 "@< Topology definitio ..."
      EOL@6316..6318 "\n\n"
      WHITESPACE@6318..6320 "  "
      PRE_ANNOTATION@6320..6361 "@ Topology definition ..."
      EOL@6361..6362 "\n"
      WHITESPACE@6362..6364 "  "
      DEF_TOPOLOGY@6364..6394
        TOPOLOGY_KW@6364..6372 "topology"
        WHITESPACE@6372..6373 " "
        NAME@6373..6375
          IDENT@6373..6375 "T3"
        WHITESPACE@6375..6376 " "
        IMPLEMENTS_CLAUSE@6376..6391
          IMPLEMENTS_KW@6376..6386 "implements"
          WHITESPACE@6386..6387 " "
          QUAL_IDENT@6387..6388
            IDENT@6387..6388 "I"
          COMMA@6388..6389 ","
          WHITESPACE@6389..6390 " "
          QUAL_IDENT@6390..6391
            IDENT@6390..6391 "I"
        WHITESPACE@6391..6392 " "
        TOPOLOGY_MEMBER_LIST@6392..6394
          LEFT_CURLY@6392..6393 "{"
          RIGHT_CURLY@6393..6394 "}"
      EOL@6394..6395 "\n"
      WHITESPACE@6395..6397 "  "
      POST_ANNOTATION@6397..6439 "@< Topology definitio ..."
      EOL@6439..6441 "\n\n"
      WHITESPACE@6441..6443 "  "
      PRE_ANNOTATION@6443..6462 "@ System definition"
      EOL@6462..6463 "\n"
      WHITESPACE@6463..6465 "  "
      DEF_SYSTEM@6465..6478
        SYSTEM_KW@6465..6471 "system"
        WHITESPACE@6471..6472 " "
        NAME@6472..6473
          IDENT@6472..6473 "S"
        COLON@6473..6474 ":"
        WHITESPACE@6474..6475 " "
        QUAL_IDENT@6475..6478
          IDENT@6475..6476 "M"
          DOT@6476..6477 "."
          IDENT@6477..6478 "T"
      EOL@6478..6479 "\n"
      WHITESPACE@6479..6481 "  "
      POST_ANNOTATION@6481..6501 "@< System definition"
      EOL@6501..6503 "\n\n"
      WHITESPACE@6503..6505 "  "
      PRE_ANNOTATION@6505..6559 "@ System definition w ..."
      EOL@6559..6560 "\n"
      WHITESPACE@6560..6562 "  "
      DEF_SYSTEM@6562..6579
        SYSTEM_KW@6562..6568 "system"
        WHITESPACE@6568..6569 " "
        NAME@6569..6573
          IDENT@6569..6573 "SAbs"
        COLON@6573..6574 ":"
        WHITESPACE@6574..6575 " "
        QUAL_IDENT@6575..6579
          DOT@6575..6576 "."
          IDENT@6576..6577 "M"
          DOT@6577..6578 "."
          IDENT@6578..6579 "T"
      EOL@6579..6580 "\n"
      WHITESPACE@6580..6582 "  "
      POST_ANNOTATION@6582..6637 "@< System definition  ..."
      EOL@6637..6639 "\n\n"
      WHITESPACE@6639..6641 "  "
      PRE_ANNOTATION@6641..6661 "@ Location specifier"
      EOL@6661..6662 "\n"
      WHITESPACE@6662..6664 "  "
      SPEC_LOC@6664..6700
        LOCATE_KW@6664..6670 "locate"
        WHITESPACE@6670..6671 " "
        INSTANCE_KW@6671..6679 "instance"
        WHITESPACE@6679..6680 " "
        QUAL_IDENT@6680..6681
          IDENT@6680..6681 "i"
        WHITESPACE@6681..6682 " "
        AT_KW@6682..6684 "at"
        WHITESPACE@6684..6685 " "
        LITERAL_STRING@6685..6700 "\"instances.fpp\""
      EOL@6700..6701 "\n"
      WHITESPACE@6701..6703 "  "
      POST_ANNOTATION@6703..6724 "@< Location specifier"
      EOL@6724..6726 "\n\n"
      WHITESPACE@6726..6728 "  "
      PRE_ANNOTATION@6728..6783 "@ Location specifier  ..."
      EOL@6783..6784 "\n"
      WHITESPACE@6784..6786 "  "
      SPEC_LOC@6786..6823
        LOCATE_KW@6786..6792 "locate"
        WHITESPACE@6792..6793 " "
        INSTANCE_KW@6793..6801 "instance"
        WHITESPACE@6801..6802 " "
        QUAL_IDENT@6802..6804
          DOT@6802..6803 "."
          IDENT@6803..6804 "i"
        WHITESPACE@6804..6805 " "
        AT_KW@6805..6807 "at"
        WHITESPACE@6807..6808 " "
        LITERAL_STRING@6808..6823 "\"instances.fpp\""
      EOL@6823..6824 "\n"
      WHITESPACE@6824..6826 "  "
      POST_ANNOTATION@6826..6882 "@< Location specifier ..."
      EOL@6882..6884 "\n\n"
      WHITESPACE@6884..6886 "  "
      PRE_ANNOTATION@6886..6913 "@ System location spe ..."
      EOL@6913..6914 "\n"
      WHITESPACE@6914..6916 "  "
      SPEC_LOC@6916..6947
        LOCATE_KW@6916..6922 "locate"
        WHITESPACE@6922..6923 " "
        SYSTEM_KW@6923..6929 "system"
        WHITESPACE@6929..6930 " "
        QUAL_IDENT@6930..6931
          IDENT@6930..6931 "S"
        WHITESPACE@6931..6932 " "
        AT_KW@6932..6934 "at"
        WHITESPACE@6934..6935 " "
        LITERAL_STRING@6935..6947 "\"system.fpp\""
      EOL@6947..6948 "\n"
      WHITESPACE@6948..6950 "  "
      POST_ANNOTATION@6950..6978 "@< System location sp ..."
      EOL@6978..6980 "\n\n"
      WHITESPACE@6980..6982 "  "
      PRE_ANNOTATION@6982..7011 "@ Template location s ..."
      EOL@7011..7012 "\n"
      WHITESPACE@7012..7014 "  "
      SPEC_LOC@7014..7050
        LOCATE_KW@7014..7020 "locate"
        WHITESPACE@7020..7021 " "
        TEMPLATE_KW@7021..7029 "template"
        WHITESPACE@7029..7030 " "
        QUAL_IDENT@7030..7032
          IDENT@7030..7032 "MT"
        WHITESPACE@7032..7033 " "
        AT_KW@7033..7035 "at"
        WHITESPACE@7035..7036 " "
        LITERAL_STRING@7036..7050 "\"template.fpp\""
      EOL@7050..7051 "\n"
      WHITESPACE@7051..7053 "  "
      POST_ANNOTATION@7053..7083 "@< Template location  ..."
      EOL@7083..7085 "\n\n"
      RIGHT_CURLY@7085..7086 "}"
  EOL@7086..7087 "\n"
  POST_ANNOTATION@7087..7116 "@< Definitions and sp ..."
  EOL@7116..7118 "\n\n"
  PRE_ANNOTATION@7118..7130 "@ Type names"
  EOL@7130..7131 "\n"
  DEF_MODULE@7131..7369
    MODULE_KW@7131..7137 "module"
    WHITESPACE@7137..7138 " "
    NAME@7138..7147
      IDENT@7138..7147 "TypeNames"
    WHITESPACE@7147..7148 " "
    MODULE_MEMBER_LIST@7148..7369
      LEFT_CURLY@7148..7149 "{"
      EOL@7149..7151 "\n\n"
      WHITESPACE@7151..7153 "  "
      DEF_ARRAY@7153..7181
        ARRAY_KW@7153..7158 "array"
        WHITESPACE@7158..7159 " "
        NAME@7159..7170
          IDENT@7159..7170 "typeNameU32"
        WHITESPACE@7170..7171 " "
        EQUALS@7171..7172 "="
        WHITESPACE@7172..7173 " "
        INDEX_OR_SIZE@7173..7177
          LEFT_SQUARE@7173..7174 "["
          EXPR@7174..7176
            EXPR_LITERAL@7174..7176
              LITERAL_INT@7174..7176 "10"
          RIGHT_SQUARE@7176..7177 "]"
        WHITESPACE@7177..7178 " "
        TYPE_NAME@7178..7181
          U32_KW@7178..7181 "U32"
      EOL@7181..7182 "\n"
      WHITESPACE@7182..7184 "  "
      DEF_ARRAY@7184..7212
        ARRAY_KW@7184..7189 "array"
        WHITESPACE@7189..7190 " "
        NAME@7190..7201
          IDENT@7190..7201 "typeNameF32"
        WHITESPACE@7201..7202 " "
        EQUALS@7202..7203 "="
        WHITESPACE@7203..7204 " "
        INDEX_OR_SIZE@7204..7208
          LEFT_SQUARE@7204..7205 "["
          EXPR@7205..7207
            EXPR_LITERAL@7205..7207
              LITERAL_INT@7205..7207 "10"
          RIGHT_SQUARE@7207..7208 "]"
        WHITESPACE@7208..7209 " "
        TYPE_NAME@7209..7212
          F32_KW@7209..7212 "F32"
      EOL@7212..7213 "\n"
      WHITESPACE@7213..7215 "  "
      DEF_ARRAY@7215..7245
        ARRAY_KW@7215..7220 "array"
        WHITESPACE@7220..7221 " "
        NAME@7221..7233
          IDENT@7221..7233 "typeNameBool"
        WHITESPACE@7233..7234 " "
        EQUALS@7234..7235 "="
        WHITESPACE@7235..7236 " "
        INDEX_OR_SIZE@7236..7240
          LEFT_SQUARE@7236..7237 "["
          EXPR@7237..7239
            EXPR_LITERAL@7237..7239
              LITERAL_INT@7237..7239 "10"
          RIGHT_SQUARE@7239..7240 "]"
        WHITESPACE@7240..7241 " "
        TYPE_NAME@7241..7245
          BOOL_KW@7241..7245 "bool"
      EOL@7245..7246 "\n"
      WHITESPACE@7246..7248 "  "
      DEF_ARRAY@7248..7291
        ARRAY_KW@7248..7253 "array"
        WHITESPACE@7253..7254 " "
        NAME@7254..7268
          IDENT@7254..7268 "typeNameString"
        WHITESPACE@7268..7269 " "
        EQUALS@7269..7270 "="
        WHITESPACE@7270..7271 " "
        INDEX_OR_SIZE@7271..7275
          LEFT_SQUARE@7271..7272 "["
          EXPR@7272..7274
            EXPR_LITERAL@7272..7274
              LITERAL_INT@7272..7274 "10"
          RIGHT_SQUARE@7274..7275 "]"
        WHITESPACE@7275..7276 " "
        TYPE_NAME@7276..7291
          STRING_KW@7276..7282 "string"
          WHITESPACE@7282..7283 " "
          SIZE_KW@7283..7287 "size"
          WHITESPACE@7287..7288 " "
          EXPR@7288..7291
            EXPR_LITERAL@7288..7291
              LITERAL_INT@7288..7291 "256"
      EOL@7291..7292 "\n"
      WHITESPACE@7292..7294 "  "
      DEF_ARRAY@7294..7324
        ARRAY_KW@7294..7299 "array"
        WHITESPACE@7299..7300 " "
        NAME@7300..7311
          IDENT@7300..7311 "typeNameQID"
        WHITESPACE@7311..7312 " "
        EQUALS@7312..7313 "="
        WHITESPACE@7313..7314 " "
        INDEX_OR_SIZE@7314..7318
          LEFT_SQUARE@7314..7315 "["
          EXPR@7315..7317
            EXPR_LITERAL@7315..7317
              LITERAL_INT@7315..7317 "10"
          RIGHT_SQUARE@7317..7318 "]"
        WHITESPACE@7318..7319 " "
        TYPE_NAME@7319..7324
          QUAL_IDENT@7319..7324
            IDENT@7319..7320 "a"
            DOT@7320..7321 "."
            IDENT@7321..7322 "b"
            DOT@7322..7323 "."
            IDENT@7323..7324 "c"
      EOL@7324..7325 "\n"
      WHITESPACE@7325..7327 "  "
      DEF_ARRAY@7327..7366
        ARRAY_KW@7327..7332 "array"
        WHITESPACE@7332..7333 " "
        NAME@7333..7352
          IDENT@7333..7352 "typeNameAbsoluteQID"
        WHITESPACE@7352..7353 " "
        EQUALS@7353..7354 "="
        WHITESPACE@7354..7355 " "
        INDEX_OR_SIZE@7355..7359
          LEFT_SQUARE@7355..7356 "["
          EXPR@7356..7358
            EXPR_LITERAL@7356..7358
              LITERAL_INT@7356..7358 "10"
          RIGHT_SQUARE@7358..7359 "]"
        WHITESPACE@7359..7360 " "
        TYPE_NAME@7360..7366
          QUAL_IDENT@7360..7366
            DOT@7360..7361 "."
            IDENT@7361..7362 "a"
            DOT@7362..7363 "."
            IDENT@7363..7364 "b"
            DOT@7364..7365 "."
            IDENT@7365..7366 "c"
      EOL@7366..7368 "\n\n"
      RIGHT_CURLY@7368..7369 "}"
  EOL@7369..7370 "\n"
  POST_ANNOTATION@7370..7383 "@< Type names"
  EOL@7383..7385 "\n\n"
  PRE_ANNOTATION@7385..7398 "@ Expressions"
  EOL@7398..7399 "\n"
  DEF_MODULE@7399..9127
    MODULE_KW@7399..7405 "module"
    WHITESPACE@7405..7406 " "
    NAME@7406..7417
      IDENT@7406..7417 "Expressions"
    WHITESPACE@7417..7418 " "
    MODULE_MEMBER_LIST@7418..9127
      LEFT_CURLY@7418..7419 "{"
      EOL@7419..7421 "\n\n"
      WHITESPACE@7421..7423 "  "
      PRE_ANNOTATION@7423..7435 "@ Arithmetic"
      EOL@7435..7436 "\n"
      WHITESPACE@7436..7438 "  "
      DEF_CONSTANT@7438..7480
        CONSTANT_KW@7438..7446 "constant"
        WHITESPACE@7446..7447 " "
        NAME@7447..7455
          IDENT@7447..7455 "arithExp"
        WHITESPACE@7455..7456 " "
        EQUALS@7456..7457 "="
        WHITESPACE@7457..7458 " "
        EXPR@7458..7480
          EXPR_BINARY@7458..7480
            EXPR_BINARY@7458..7476
              EXPR_BINARY@7458..7467
                EXPR_LITERAL@7458..7459
                  LITERAL_INT@7458..7459 "1"
                WHITESPACE@7459..7460 " "
                BINARY_OP@7460..7462
                  PLUS@7460..7461 "+"
                  WHITESPACE@7461..7462 " "
                EXPR_BINARY@7462..7467
                  EXPR_LITERAL@7462..7463
                    LITERAL_INT@7462..7463 "2"
                  WHITESPACE@7463..7464 " "
                  BINARY_OP@7464..7466
                    STAR@7464..7465 "*"
                    WHITESPACE@7465..7466 " "
                  EXPR_LITERAL@7466..7467
                    LITERAL_INT@7466..7467 "3"
              WHITESPACE@7467..7468 " "
              BINARY_OP@7468..7470
                MINUS@7468..7469 "-"
                WHITESPACE@7469..7470 " "
              EXPR_BINARY@7470..7476
                EXPR_UNARY@7470..7472
                  MINUS@7470..7471 "-"
                  EXPR_LITERAL@7471..7472
                    LITERAL_INT@7471..7472 "4"
                WHITESPACE@7472..7473 " "
                BINARY_OP@7473..7475
                  STAR@7473..7474 "*"
                  WHITESPACE@7474..7475 " "
                EXPR_LITERAL@7475..7476
                  LITERAL_INT@7475..7476 "5"
            WHITESPACE@7476..7477 " "
            BINARY_OP@7477..7479
              PLUS@7477..7478 "+"
              WHITESPACE@7478..7479 " "
            EXPR_LITERAL@7479..7480
              LITERAL_INT@7479..7480 "6"
      EOL@7480..7481 "\n"
      WHITESPACE@7481..7483 "  "
      POST_ANNOTATION@7483..7496 "@< Arithmetic"
      EOL@7496..7498 "\n\n"
      WHITESPACE@7498..7500 "  "
      PRE_ANNOTATION@7500..7507 "@ Shift"
      EOL@7507..7508 "\n"
      WHITESPACE@7508..7510 "  "
      DEF_CONSTANT@7510..7545
        CONSTANT_KW@7510..7518 "constant"
        WHITESPACE@7518..7519 " "
        NAME@7519..7527
          IDENT@7519..7527 "shiftExp"
        WHITESPACE@7527..7528 " "
        EQUALS@7528..7529 "="
        WHITESPACE@7529..7530 " "
        EXPR@7530..7545
          EXPR_BINARY@7530..7545
            EXPR_BINARY@7530..7540
              EXPR_BINARY@7530..7535
                EXPR_LITERAL@7530..7531
                  LITERAL_INT@7530..7531 "1"
                WHITESPACE@7531..7532 " "
                BINARY_OP@7532..7534
                  PLUS@7532..7533 "+"
                  WHITESPACE@7533..7534 " "
                EXPR_LITERAL@7534..7535
                  LITERAL_INT@7534..7535 "2"
              WHITESPACE@7535..7536 " "
              BINARY_OP@7536..7538
                SHIFT_LEFT@7536..7538 "<<"
              WHITESPACE@7538..7539 " "
              EXPR_LITERAL@7539..7540
                LITERAL_INT@7539..7540 "3"
            WHITESPACE@7540..7541 " "
            BINARY_OP@7541..7543
              SHIFT_RIGHT@7541..7543 ">>"
            WHITESPACE@7543..7544 " "
            EXPR_LITERAL@7544..7545
              LITERAL_INT@7544..7545 "1"
      EOL@7545..7546 "\n"
      WHITESPACE@7546..7548 "  "
      POST_ANNOTATION@7548..7556 "@< Shift"
      EOL@7556..7558 "\n\n"
      WHITESPACE@7558..7560 "  "
      PRE_ANNOTATION@7560..7567 "@ Array"
      EOL@7567..7568 "\n"
      WHITESPACE@7568..7570 "  "
      DEF_CONSTANT@7570..7601
        CONSTANT_KW@7570..7578 "constant"
        WHITESPACE@7578..7579 " "
        NAME@7579..7587
          IDENT@7579..7587 "arrayExp"
        WHITESPACE@7587..7588 " "
        EQUALS@7588..7589 "="
        WHITESPACE@7589..7590 " "
        EXPR@7590..7601
          EXPR_ARRAY@7590..7601
            EXPR_ARRAY_MEMBER_LIST@7590..7601
              LEFT_SQUARE@7590..7591 "["
              WHITESPACE@7591..7592 " "
              EXPR@7592..7593
                EXPR_LITERAL@7592..7593
                  LITERAL_INT@7592..7593 "1"
              COMMA@7593..7594 ","
              WHITESPACE@7594..7595 " "
              EXPR@7595..7596
                EXPR_LITERAL@7595..7596
                  LITERAL_INT@7595..7596 "2"
              COMMA@7596..7597 ","
              WHITESPACE@7597..7598 " "
              EXPR@7598..7599
                EXPR_LITERAL@7598..7599
                  LITERAL_INT@7598..7599 "3"
              WHITESPACE@7599..7600 " "
              RIGHT_SQUARE@7600..7601 "]"
      EOL@7601..7602 "\n"
      WHITESPACE@7602..7604 "  "
      POST_ANNOTATION@7604..7612 "@< Array"
      EOL@7612..7614 "\n\n"
      WHITESPACE@7614..7616 "  "
      PRE_ANNOTATION@7616..7633 "@ Array Subscript"
      EOL@7633..7634 "\n"
      WHITESPACE@7634..7636 "  "
      DEF_CONSTANT@7636..7674
        CONSTANT_KW@7636..7644 "constant"
        WHITESPACE@7644..7645 " "
        NAME@7645..7657
          IDENT@7645..7657 "arraySubExp1"
        WHITESPACE@7657..7658 " "
        EQUALS@7658..7659 "="
        WHITESPACE@7659..7660 " "
        EXPR@7660..7674
          EXPR_POSTFIX@7660..7674
            EXPR_SUBSCRIPT@7660..7674
              EXPR_ARRAY@7660..7671
                EXPR_ARRAY_MEMBER_LIST@7660..7671
                  LEFT_SQUARE@7660..7661 "["
                  WHITESPACE@7661..7662 " "
                  EXPR@7662..7663
                    EXPR_LITERAL@7662..7663
                      LITERAL_INT@7662..7663 "1"
                  COMMA@7663..7664 ","
                  WHITESPACE@7664..7665 " "
                  EXPR@7665..7666
                    EXPR_LITERAL@7665..7666
                      LITERAL_INT@7665..7666 "2"
                  COMMA@7666..7667 ","
                  WHITESPACE@7667..7668 " "
                  EXPR@7668..7669
                    EXPR_LITERAL@7668..7669
                      LITERAL_INT@7668..7669 "3"
                  WHITESPACE@7669..7670 " "
                  RIGHT_SQUARE@7670..7671 "]"
              INDEX_OR_SIZE@7671..7674
                LEFT_SQUARE@7671..7672 "["
                EXPR@7672..7673
                  EXPR_LITERAL@7672..7673
                    LITERAL_INT@7672..7673 "1"
                RIGHT_SQUARE@7673..7674 "]"
      EOL@7674..7675 "\n"
      WHITESPACE@7675..7677 "  "
      POST_ANNOTATION@7677..7695 "@< Array Subscript"
      EOL@7695..7697 "\n\n"
      WHITESPACE@7697..7699 "  "
      PRE_ANNOTATION@7699..7716 "@ Array Subscript"
      EOL@7716..7717 "\n"
      WHITESPACE@7717..7719 "  "
      DEF_CONSTANT@7719..7751
        CONSTANT_KW@7719..7727 "constant"
        WHITESPACE@7727..7728 " "
        NAME@7728..7740
          IDENT@7728..7740 "arraySubExp2"
        WHITESPACE@7740..7741 " "
        EQUALS@7741..7742 "="
        WHITESPACE@7742..7743 " "
        EXPR@7743..7751
          EXPR_POSTFIX@7743..7751
            EXPR_SUBSCRIPT@7743..7751
              EXPR_MEMBER@7743..7748
                EXPR_MEMBER@7743..7746
                  EXPR_IDENT@7743..7744
                    IDENT@7743..7744 "a"
                  DOT@7744..7745 "."
                  IDENT@7745..7746 "b"
                DOT@7746..7747 "."
                IDENT@7747..7748 "c"
              INDEX_OR_SIZE@7748..7751
                LEFT_SQUARE@7748..7749 "["
                EXPR@7749..7750
                  EXPR_LITERAL@7749..7750
                    LITERAL_INT@7749..7750 "1"
                RIGHT_SQUARE@7750..7751 "]"
      EOL@7751..7752 "\n"
      WHITESPACE@7752..7754 "  "
      POST_ANNOTATION@7754..7772 "@< Array Subscript"
      EOL@7772..7774 "\n\n"
      WHITESPACE@7774..7776 "  "
      PRE_ANNOTATION@7776..7815 "@ Array Subscript wit ..."
      EOL@7815..7816 "\n"
      WHITESPACE@7816..7818 "  "
      DEF_CONSTANT@7818..7859
        CONSTANT_KW@7818..7826 "constant"
        WHITESPACE@7826..7827 " "
        NAME@7827..7839
          IDENT@7827..7839 "arraySubExp3"
        WHITESPACE@7839..7840 " "
        EQUALS@7840..7841 "="
        WHITESPACE@7841..7842 " "
        EXPR@7842..7859
          EXPR_POSTFIX@7842..7859
            EXPR_SUBSCRIPT@7842..7859
              EXPR_MEMBER@7842..7855
                EXPR_SUBSCRIPT@7842..7853
                  EXPR_SUBSCRIPT@7842..7850
                    EXPR_MEMBER@7842..7847
                      EXPR_MEMBER@7842..7845
                        EXPR_IDENT@7842..7843
                          IDENT@7842..7843 "a"
                        DOT@7843..7844 "."
                        IDENT@7844..7845 "b"
                      DOT@7845..7846 "."
                      IDENT@7846..7847 "c"
                    INDEX_OR_SIZE@7847..7850
                      LEFT_SQUARE@7847..7848 "["
                      EXPR@7848..7849
                        EXPR_LITERAL@7848..7849
                          LITERAL_INT@7848..7849 "1"
                      RIGHT_SQUARE@7849..7850 "]"
                  INDEX_OR_SIZE@7850..7853
                    LEFT_SQUARE@7850..7851 "["
                    EXPR@7851..7852
                      EXPR_LITERAL@7851..7852
                        LITERAL_INT@7851..7852 "2"
                    RIGHT_SQUARE@7852..7853 "]"
                DOT@7853..7854 "."
                IDENT@7854..7855 "s"
              INDEX_OR_SIZE@7855..7859
                LEFT_SQUARE@7855..7856 "["
                EXPR@7856..7858
                  EXPR_LITERAL@7856..7858
                    LITERAL_INT@7856..7858 "12"
                RIGHT_SQUARE@7858..7859 "]"
      EOL@7859..7860 "\n"
      WHITESPACE@7860..7862 "  "
      POST_ANNOTATION@7862..7881 "@< Array Subscript "
      EOL@7881..7883 "\n\n"
      WHITESPACE@7883..7885 "  "
      PRE_ANNOTATION@7885..7902 "@ Boolean literal"
      EOL@7902..7903 "\n"
      WHITESPACE@7903..7905 "  "
      DEF_CONSTANT@7905..7938
        CONSTANT_KW@7905..7913 "constant"
        WHITESPACE@7913..7914 " "
        NAME@7914..7931
          IDENT@7914..7931 "booleanLiteralExp"
        WHITESPACE@7931..7932 " "
        EQUALS@7932..7933 "="
        WHITESPACE@7933..7934 " "
        EXPR@7934..7938
          EXPR_LITERAL@7934..7938
            TRUE_KW@7934..7938 "true"
      EOL@7938..7939 "\n"
      WHITESPACE@7939..7941 "  "
      POST_ANNOTATION@7941..7959 "@< Boolean literal"
      EOL@7959..7961 "\n\n"
      WHITESPACE@7961..7963 "  "
      PRE_ANNOTATION@7963..7968 "@ Dot"
      EOL@7968..7969 "\n"
      WHITESPACE@7969..7971 "  "
      DEF_CONSTANT@7971..7994
        CONSTANT_KW@7971..7979 "constant"
        WHITESPACE@7979..7980 " "
        NAME@7980..7986
          IDENT@7980..7986 "dotExp"
        WHITESPACE@7986..7987 " "
        EQUALS@7987..7988 "="
        WHITESPACE@7988..7989 " "
        EXPR@7989..7994
          EXPR_POSTFIX@7989..7994
            EXPR_MEMBER@7989..7994
              EXPR_MEMBER@7989..7992
                EXPR_IDENT@7989..7990
                  IDENT@7989..7990 "a"
                DOT@7990..7991 "."
                IDENT@7991..7992 "b"
              DOT@7992..7993 "."
              IDENT@7993..7994 "c"
      EOL@7994..7995 "\n"
      WHITESPACE@7995..7997 "  "
      POST_ANNOTATION@7997..8003 "@< Dot"
      EOL@8003..8005 "\n\n"
      WHITESPACE@8005..8007 "  "
      PRE_ANNOTATION@8007..8047 "@ Dot with absolute q ..."
      EOL@8047..8048 "\n"
      WHITESPACE@8048..8050 "  "
      DEF_CONSTANT@8050..8082
        CONSTANT_KW@8050..8058 "constant"
        WHITESPACE@8058..8059 " "
        NAME@8059..8073
          IDENT@8059..8073 "dotAbsoluteExp"
        WHITESPACE@8073..8074 " "
        EQUALS@8074..8075 "="
        WHITESPACE@8075..8076 " "
        EXPR@8076..8082
          EXPR_POSTFIX@8076..8082
            EXPR_MEMBER@8076..8082
              EXPR_MEMBER@8076..8080
                EXPR_IDENT@8076..8078
                  DOT@8076..8077 "."
                  IDENT@8077..8078 "a"
                DOT@8078..8079 "."
                IDENT@8079..8080 "b"
              DOT@8080..8081 "."
              IDENT@8081..8082 "c"
      EOL@8082..8083 "\n"
      WHITESPACE@8083..8085 "  "
      POST_ANNOTATION@8085..8126 "@< Dot with absolute  ..."
      EOL@8126..8128 "\n\n"
      WHITESPACE@8128..8130 "  "
      PRE_ANNOTATION@8130..8142 "@ FP literal"
      EOL@8142..8143 "\n"
      WHITESPACE@8143..8145 "  "
      DEF_CONSTANT@8145..8175
        CONSTANT_KW@8145..8153 "constant"
        WHITESPACE@8153..8154 " "
        NAME@8154..8166
          IDENT@8154..8166 "fpLiteralExp"
        WHITESPACE@8166..8167 " "
        EQUALS@8167..8168 "="
        WHITESPACE@8168..8169 " "
        EXPR@8169..8175
          EXPR_LITERAL@8169..8175
            LITERAL_FLOAT@8169..8175 "0.1234"
      EOL@8175..8176 "\n"
      WHITESPACE@8176..8178 "  "
      POST_ANNOTATION@8178..8191 "@< FP literal"
      EOL@8191..8193 "\n\n"
      WHITESPACE@8193..8195 "  "
      PRE_ANNOTATION@8195..8207 "@ Identifier"
      EOL@8207..8208 "\n"
      WHITESPACE@8208..8210 "  "
      DEF_CONSTANT@8210..8231
        CONSTANT_KW@8210..8218 "constant"
        WHITESPACE@8218..8219 " "
        NAME@8219..8227
          IDENT@8219..8227 "identExp"
        WHITESPACE@8227..8228 " "
        EQUALS@8228..8229 "="
        WHITESPACE@8229..8230 " "
        EXPR@8230..8231
          EXPR_IDENT@8230..8231
            IDENT@8230..8231 "x"
      EOL@8231..8232 "\n"
      WHITESPACE@8232..8234 "  "
      POST_ANNOTATION@8234..8247 "@< Identifier"
      EOL@8247..8249 "\n\n"
      WHITESPACE@8249..8251 "  "
      PRE_ANNOTATION@8251..8298 "@ Identifier with abs ..."
      EOL@8298..8299 "\n"
      WHITESPACE@8299..8301 "  "
      DEF_CONSTANT@8301..8331
        CONSTANT_KW@8301..8309 "constant"
        WHITESPACE@8309..8310 " "
        NAME@8310..8326
          IDENT@8310..8326 "identAbsoluteExp"
        WHITESPACE@8326..8327 " "
        EQUALS@8327..8328 "="
        WHITESPACE@8328..8329 " "
        EXPR@8329..8331
          EXPR_IDENT@8329..8331
            DOT@8329..8330 "."
            IDENT@8330..8331 "x"
      EOL@8331..8332 "\n"
      WHITESPACE@8332..8334 "  "
      POST_ANNOTATION@8334..8382 "@< Identifier with ab ..."
      EOL@8382..8384 "\n\n"
      WHITESPACE@8384..8386 "  "
      PRE_ANNOTATION@8386..8399 "@ Int literal"
      EOL@8399..8400 "\n"
      WHITESPACE@8400..8402 "  "
      DEF_CONSTANT@8402..8431
        CONSTANT_KW@8402..8410 "constant"
        WHITESPACE@8410..8411 " "
        NAME@8411..8424
          IDENT@8411..8424 "intLiteralExp"
        WHITESPACE@8424..8425 " "
        EQUALS@8425..8426 "="
        WHITESPACE@8426..8427 " "
        EXPR@8427..8431
          EXPR_LITERAL@8427..8431
            LITERAL_INT@8427..8431 "1234"
      EOL@8431..8432 "\n"
      WHITESPACE@8432..8434 "  "
      POST_ANNOTATION@8434..8448 "@< Int literal"
      EOL@8448..8450 "\n\n"
      WHITESPACE@8450..8452 "  "
      PRE_ANNOTATION@8452..8459 "@ Paren"
      EOL@8459..8460 "\n"
      WHITESPACE@8460..8462 "  "
      DEF_CONSTANT@8462..8493
        CONSTANT_KW@8462..8470 "constant"
        WHITESPACE@8470..8471 " "
        NAME@8471..8479
          IDENT@8471..8479 "parenExp"
        WHITESPACE@8479..8480 " "
        EQUALS@8480..8481 "="
        WHITESPACE@8481..8482 " "
        EXPR@8482..8493
          EXPR_BINARY@8482..8493
            EXPR@8482..8489
              LEFT_PAREN@8482..8483 "("
              EXPR@8483..8488
                EXPR_BINARY@8483..8488
                  EXPR_LITERAL@8483..8484
                    LITERAL_INT@8483..8484 "1"
                  WHITESPACE@8484..8485 " "
                  BINARY_OP@8485..8487
                    PLUS@8485..8486 "+"
                    WHITESPACE@8486..8487 " "
                  EXPR_LITERAL@8487..8488
                    LITERAL_INT@8487..8488 "2"
              RIGHT_PAREN@8488..8489 ")"
            WHITESPACE@8489..8490 " "
            BINARY_OP@8490..8492
              STAR@8490..8491 "*"
              WHITESPACE@8491..8492 " "
            EXPR_LITERAL@8492..8493
              LITERAL_INT@8492..8493 "3"
      EOL@8493..8494 "\n"
      WHITESPACE@8494..8496 "  "
      POST_ANNOTATION@8496..8504 "@< Paren"
      EOL@8504..8506 "\n\n"
      WHITESPACE@8506..8508 "  "
      PRE_ANNOTATION@8508..8531 "@ String literal single"
      EOL@8531..8532 "\n"
      WHITESPACE@8532..8534 "  "
      DEF_CONSTANT@8534..8587
        CONSTANT_KW@8534..8542 "constant"
        WHITESPACE@8542..8543 " "
        NAME@8543..8565
          IDENT@8543..8565 "stringLiteralSingleExp"
        WHITESPACE@8565..8566 " "
        EQUALS@8566..8567 "="
        WHITESPACE@8567..8568 " "
        EXPR@8568..8587
          EXPR_LITERAL@8568..8587
            LITERAL_STRING@8568..8587 "\"This is a string.\""
      EOL@8587..8588 "\n"
      WHITESPACE@8588..8590 "  "
      POST_ANNOTATION@8590..8614 "@< String literal single"
      EOL@8614..8616 "\n\n"
      WHITESPACE@8616..8618 "  "
      PRE_ANNOTATION@8618..8640 "@ String literal multi"
      EOL@8640..8641 "\n"
      WHITESPACE@8641..8643 "  "
      DEF_CONSTANT@8643..8839
        CONSTANT_KW@8643..8651 "constant"
        WHITESPACE@8651..8652 " "
        NAME@8652..8672
          IDENT@8652..8672 "stringLiteralMultExp"
        WHITESPACE@8672..8673 " "
        EQUALS@8673..8674 "="
        WHITESPACE@8674..8675 " "
        EXPR@8675..8839
          EXPR_LITERAL@8675..8839
            LITERAL_STRING@8675..8839 "\"\"\"\n                  ..."
      EOL@8839..8840 "\n"
      WHITESPACE@8840..8842 "  "
      POST_ANNOTATION@8842..8865 "@< String literal multi"
      EOL@8865..8867 "\n\n"
      WHITESPACE@8867..8869 "  "
      PRE_ANNOTATION@8869..8877 "@ Struct"
      EOL@8877..8878 "\n"
      WHITESPACE@8878..8880 "  "
      DEF_CONSTANT@8880..8924
        CONSTANT_KW@8880..8888 "constant"
        WHITESPACE@8888..8889 " "
        NAME@8889..8898
          IDENT@8889..8898 "structExp"
        WHITESPACE@8898..8899 " "
        EQUALS@8899..8900 "="
        WHITESPACE@8900..8901 " "
        EXPR@8901..8924
          EXPR_STRUCT@8901..8924
            EXPR_STRUCT_MEMBER_LIST@8901..8924
              LEFT_CURLY@8901..8902 "{"
              WHITESPACE@8902..8903 " "
              EXPR_STRUCT_MEMBER@8903..8908
                NAME@8903..8904
                  IDENT@8903..8904 "a"
                WHITESPACE@8904..8905 " "
                EQUALS@8905..8906 "="
                WHITESPACE@8906..8907 " "
                EXPR@8907..8908
                  EXPR_LITERAL@8907..8908
                    LITERAL_INT@8907..8908 "1"
              COMMA@8908..8909 ","
              WHITESPACE@8909..8910 " "
              EXPR_STRUCT_MEMBER@8910..8915
                NAME@8910..8911
                  IDENT@8910..8911 "b"
                WHITESPACE@8911..8912 " "
                EQUALS@8912..8913 "="
                WHITESPACE@8913..8914 " "
                EXPR@8914..8915
                  EXPR_LITERAL@8914..8915
                    LITERAL_INT@8914..8915 "2"
              COMMA@8915..8916 ","
              WHITESPACE@8916..8917 " "
              EXPR_STRUCT_MEMBER@8917..8922
                NAME@8917..8918
                  IDENT@8917..8918 "c"
                WHITESPACE@8918..8919 " "
                EQUALS@8919..8920 "="
                WHITESPACE@8920..8921 " "
                EXPR@8921..8922
                  EXPR_LITERAL@8921..8922
                    LITERAL_INT@8921..8922 "3"
              WHITESPACE@8922..8923 " "
              RIGHT_CURLY@8923..8924 "}"
      EOL@8924..8925 "\n"
      WHITESPACE@8925..8927 "  "
      POST_ANNOTATION@8927..8936 "@< Struct"
      EOL@8936..8938 "\n\n"
      WHITESPACE@8938..8940 "  "
      PRE_ANNOTATION@8940..8948 "@ SizeOf"
      EOL@8948..8949 "\n"
      WHITESPACE@8949..8951 "  "
      DEF_MODULE@8951..9112
        MODULE_KW@8951..8957 "module"
        WHITESPACE@8957..8958 " "
        NAME@8958..8964
          IDENT@8958..8964 "SizeOf"
        WHITESPACE@8964..8965 " "
        MODULE_MEMBER_LIST@8965..9112
          LEFT_CURLY@8965..8966 "{"
          EOL@8966..8967 "\n"
          WHITESPACE@8967..8971 "    "
          DEF_CONSTANT@8971..9003
            CONSTANT_KW@8971..8979 "constant"
            WHITESPACE@8979..8980 " "
            NAME@8980..8989
              IDENT@8980..8989 "typeFloat"
            WHITESPACE@8989..8990 " "
            EQUALS@8990..8991 "="
            WHITESPACE@8991..8992 " "
            EXPR@8992..9003
              EXPR_SIZEOF@8992..9003
                SIZEOF_KW@8992..8998 "sizeof"
                LEFT_PAREN@8998..8999 "("
                TYPE_NAME@8999..9002
                  F64_KW@8999..9002 "F64"
                RIGHT_PAREN@9002..9003 ")"
          EOL@9003..9004 "\n"
          WHITESPACE@9004..9008 "    "
          DEF_CONSTANT@9008..9059
            CONSTANT_KW@9008..9016 "constant"
            WHITESPACE@9016..9017 " "
            NAME@9017..9027
              IDENT@9017..9027 "typeQualId"
            WHITESPACE@9027..9028 " "
            EQUALS@9028..9029 "="
            WHITESPACE@9029..9030 " "
            EXPR@9030..9059
              EXPR_SIZEOF@9030..9059
                SIZEOF_KW@9030..9036 "sizeof"
                LEFT_PAREN@9036..9037 "("
                TYPE_NAME@9037..9058
                  QUAL_IDENT@9037..9058
                    IDENT@9037..9046 "TypeNames"
                    DOT@9046..9047 "."
                    IDENT@9047..9058 "typeNameU32"
                RIGHT_PAREN@9058..9059 ")"
          EOL@9059..9060 "\n"
          WHITESPACE@9060..9064 "    "
          DEF_CONSTANT@9064..9108
            CONSTANT_KW@9064..9072 "constant"
            WHITESPACE@9072..9073 " "
            NAME@9073..9083
              IDENT@9073..9083 "typeString"
            WHITESPACE@9083..9084 " "
            EQUALS@9084..9085 "="
            WHITESPACE@9085..9086 " "
            EXPR@9086..9108
              EXPR_SIZEOF@9086..9108
                SIZEOF_KW@9086..9092 "sizeof"
                LEFT_PAREN@9092..9093 "("
                TYPE_NAME@9093..9107
                  STRING_KW@9093..9099 "string"
                  WHITESPACE@9099..9100 " "
                  SIZE_KW@9100..9104 "size"
                  WHITESPACE@9104..9105 " "
                  EXPR@9105..9107
                    EXPR_LITERAL@9105..9107
                      LITERAL_INT@9105..9107 "20"
                RIGHT_PAREN@9107..9108 ")"
          EOL@9108..9109 "\n"
          WHITESPACE@9109..9111 "  "
          RIGHT_CURLY@9111..9112 "}"
      EOL@9112..9113 "\n"
      WHITESPACE@9113..9115 "  "
      POST_ANNOTATION@9115..9124 "@< SizeOf"
      EOL@9124..9126 "\n\n"
      RIGHT_CURLY@9126..9127 "}"
  EOL@9127..9128 "\n"
  POST_ANNOTATION@9128..9142 "@< Expressions"
  EOL@9142..9143 "\n"
