Cmajor Lexical Grammar

white‑space [\n\r\t ]
newline \r\n | \n | \r
line‑comment // [^\n\r]* newline
block‑comment /* ([^*] | * [^/])* * /
comment line‑comment | block‑comment
separators (white‑space | comment)+
id idstart idcont*
dec‑digits [09]+
hex‑digit [09afAF]
hex‑digits hex‑digit+
hex‑4 hex‑digit hex‑digit hex‑digit hex‑digit
hex‑8 hex‑4 hex‑4
octal‑digits [07]+
fraction dec‑digits? . dec‑digits | dec‑digits .
sign + | -
exponent (e | E) sign? dec‑digits
int‑lit (0 octal‑digits? | [19] dec‑digits? | 0 (x | X) hex‑digits) (u | U)?
floating‑lit (fraction exponent? | dec‑digits exponent) (f | F)?
escape \\ ((x | X) hex‑digits | (d | D) dec‑digits | octal‑digits | u hex‑4 | U hex‑8 | [abfnrtv\"\'\\])
char‑lit (w | u)? \' ([^\\\r\n\']+ | escape) \'
string‑lit ((w | u)? @ \" [^\"]* \") | (w | u)? \" ([^\\\r\n\"] | escape)* \"
idstart [AZ_az\xaa\xb5\xba\xc0\xd6\xd8\xf6\xf8\x2c1\x2c6\x2d1\x2e0\x2e4\x2ec\x2ee\x370\x374\x376\x377\x37a\x37d\x37f\x386\x388\x38a\x38c\x38e\x3a1\x3a3\x3f5\x3f7\x481\x48a\x52f\x531\x556\x559\x560\x588\x5d0\x5ea\x5ef\x5f2\x620\x64a\x66e\x66f\x671\x6d3\x6d5\x6e5\x6e6\x6ee\x6ef\x6fa\x6fc\x6ff\x710\x712\x72f\x74d\x7a5\x7b1\x7ca\x7ea\x7f4\x7f5\x7fa\x800\x815\x81a\x824\x828\x840\x858\x860\x86a\x8a0\x8b4\x8b6\x8bd\x904\x939\x93d\x950\x958\x961\x971\x980\x985\x98c\x98f\x990\x993\x9a8\x9aa\x9b0\x9b2\x9b6\x9b9\x9bd\x9ce\x9dc\x9dd\x9df\x9e1\x9f0\x9f1\x9fc\xa05\xa0a\xa0f\xa10\xa13\xa28\xa2a\xa30\xa32\xa33\xa35\xa36\xa38\xa39\xa59\xa5c\xa5e\xa72\xa74\xa85\xa8d\xa8f\xa91\xa93\xaa8\xaaa\xab0\xab2\xab3\xab5\xab9\xabd\xad0\xae0\xae1\xaf9\xb05\xb0c\xb0f\xb10\xb13\xb28\xb2a\xb30\xb32\xb33\xb35\xb39\xb3d\xb5c\xb5d\xb5f\xb61\xb71\xb83\xb85\xb8a\xb8e\xb90\xb92\xb95\xb99\xb9a\xb9c\xb9e\xb9f\xba3\xba4\xba8\xbaa\xbae\xbb9\xbd0\xc05\xc0c\xc0e\xc10\xc12\xc28\xc2a\xc39\xc3d\xc58\xc5a\xc60\xc61\xc80\xc85\xc8c\xc8e\xc90\xc92\xca8\xcaa\xcb3\xcb5\xcb9\xcbd\xcde\xce0\xce1\xcf1\xcf2\xd05\xd0c\xd0e\xd10\xd12\xd3a\xd3d\xd4e\xd54\xd56\xd5f\xd61\xd7a\xd7f\xd85\xd96\xd9a\xdb1\xdb3\xdbb\xdbd\xdc0\xdc6\xe01\xe30\xe32\xe33\xe40\xe46\xe81\xe82\xe84\xe86\xe8a\xe8c\xea3\xea5\xea7\xeb0\xeb2\xeb3\xebd\xec0\xec4\xec6\xedc\xedf\xf00\xf40\xf47\xf49\xf6c\xf88\xf8c\x1000\x102a\x103f\x1050\x1055\x105a\x105d\x1061\x1065\x1066\x106e\x1070\x1075\x1081\x108e\x10a0\x10c5\x10c7\x10cd\x10d0\x10fa\x10fc\x1248\x124a\x124d\x1250\x1256\x1258\x125a\x125d\x1260\x1288\x128a\x128d\x1290\x12b0\x12b2\x12b5\x12b8\x12be\x12c0\x12c2\x12c5\x12c8\x12d6\x12d8\x1310\x1312\x1315\x1318\x135a\x1380\x138f\x13a0\x13f5\x13f8\x13fd\x1401\x166c\x166f\x167f\x1681\x169a\x16a0\x16ea\x16ee\x16f8\x1700\x170c\x170e\x1711\x1720\x1731\x1740\x1751\x1760\x176c\x176e\x1770\x1780\x17b3\x17d7\x17dc\x1820\x1878\x1880\x18a8\x18aa\x18b0\x18f5\x1900\x191e\x1950\x196d\x1970\x1974\x1980\x19ab\x19b0\x19c9\x1a00\x1a16\x1a20\x1a54\x1aa7\x1b05\x1b33\x1b45\x1b4b\x1b83\x1ba0\x1bae\x1baf\x1bba\x1be5\x1c00\x1c23\x1c4d\x1c4f\x1c5a\x1c7d\x1c80\x1c88\x1c90\x1cba\x1cbd\x1cbf\x1ce9\x1cec\x1cee\x1cf3\x1cf5\x1cf6\x1cfa\x1d00\x1dbf\x1e00\x1f15\x1f18\x1f1d\x1f20\x1f45\x1f48\x1f4d\x1f50\x1f57\x1f59\x1f5b\x1f5d\x1f5f\x1f7d\x1f80\x1fb4\x1fb6\x1fbc\x1fbe\x1fc2\x1fc4\x1fc6\x1fcc\x1fd0\x1fd3\x1fd6\x1fdb\x1fe0\x1fec\x1ff2\x1ff4\x1ff6\x1ffc\x2071\x207f\x2090\x209c\x2102\x2107\x210a\x2113\x2115\x2118\x211d\x2124\x2126\x2128\x212a\x2139\x213c\x213f\x2145\x2149\x214e\x2160\x2188\x2c00\x2c2e\x2c30\x2c5e\x2c60\x2ce4\x2ceb\x2cee\x2cf2\x2cf3\x2d00\x2d25\x2d27\x2d2d\x2d30\x2d67\x2d6f\x2d80\x2d96\x2da0\x2da6\x2da8\x2dae\x2db0\x2db6\x2db8\x2dbe\x2dc0\x2dc6\x2dc8\x2dce\x2dd0\x2dd6\x2dd8\x2dde\x3005\x3007\x3021\x3029\x3031\x3035\x3038\x303c\x3041\x3096\x309b\x309f\x30a1\x30fa\x30fc\x30ff\x3105\x312f\x3131\x318e\x31a0\x31ba\x31f0\x31ff\x3400\x4db5\x4e00\x9fef\xa000\xa48c\xa4d0\xa4fd\xa500\xa60c\xa610\xa61f\xa62a\xa62b\xa640\xa66e\xa67f\xa69d\xa6a0\xa6ef\xa717\xa71f\xa722\xa788\xa78b\xa7bf\xa7c2\xa7c6\xa7f7\xa801\xa803\xa805\xa807\xa80a\xa80c\xa822\xa840\xa873\xa882\xa8b3\xa8f2\xa8f7\xa8fb\xa8fd\xa8fe\xa90a\xa925\xa930\xa946\xa960\xa97c\xa984\xa9b2\xa9cf\xa9e0\xa9e4\xa9e6\xa9ef\xa9fa\xa9fe\xaa00\xaa28\xaa40\xaa42\xaa44\xaa4b\xaa60\xaa76\xaa7a\xaa7e\xaaaf\xaab1\xaab5\xaab6\xaab9\xaabd\xaac0\xaac2\xaadb\xaadd\xaae0\xaaea\xaaf2\xaaf4\xab01\xab06\xab09\xab0e\xab11\xab16\xab20\xab26\xab28\xab2e\xab30\xab5a\xab5c\xab67\xab70\xabe2\xac00\xd7a3\xd7b0\xd7c6\xd7cb\xd7fb\xf900\xfa6d\xfa70\xfad9\xfb00\xfb06\xfb13\xfb17\xfb1d\xfb1f\xfb28\xfb2a\xfb36\xfb38\xfb3c\xfb3e\xfb40\xfb41\xfb43\xfb44\xfb46\xfbb1\xfbd3\xfd3d\xfd50\xfd8f\xfd92\xfdc7\xfdf0\xfdfb\xfe70\xfe74\xfe76\xfefc\xff21\xff3a\xff41\xff5a\xff66\xffbe\xffc2\xffc7\xffca\xffcf\xffd2\xffd7\xffda\xffdc]
idcont [09AZ_az\xaa\xb5\xb7\xba\xc0\xd6\xd8\xf6\xf8\x2c1\x2c6\x2d1\x2e0\x2e4\x2ec\x2ee\x300\x374\x376\x377\x37a\x37d\x37f\x386\x38a\x38c\x38e\x3a1\x3a3\x3f5\x3f7\x481\x483\x487\x48a\x52f\x531\x556\x559\x560\x588\x591\x5bd\x5bf\x5c1\x5c2\x5c4\x5c5\x5c7\x5d0\x5ea\x5ef\x5f2\x610\x61a\x620\x669\x66e\x6d3\x6d5\x6dc\x6df\x6e8\x6ea\x6fc\x6ff\x710\x74a\x74d\x7b1\x7c0\x7f5\x7fa\x7fd\x800\x82d\x840\x85b\x860\x86a\x8a0\x8b4\x8b6\x8bd\x8d3\x8e1\x8e3\x963\x966\x96f\x971\x983\x985\x98c\x98f\x990\x993\x9a8\x9aa\x9b0\x9b2\x9b6\x9b9\x9bc\x9c4\x9c7\x9c8\x9cb\x9ce\x9d7\x9dc\x9dd\x9df\x9e3\x9e6\x9f1\x9fc\x9fe\xa01\xa03\xa05\xa0a\xa0f\xa10\xa13\xa28\xa2a\xa30\xa32\xa33\xa35\xa36\xa38\xa39\xa3c\xa3e\xa42\xa47\xa48\xa4b\xa4d\xa51\xa59\xa5c\xa5e\xa66\xa75\xa81\xa83\xa85\xa8d\xa8f\xa91\xa93\xaa8\xaaa\xab0\xab2\xab3\xab5\xab9\xabc\xac5\xac7\xac9\xacb\xacd\xad0\xae0\xae3\xae6\xaef\xaf9\xaff\xb01\xb03\xb05\xb0c\xb0f\xb10\xb13\xb28\xb2a\xb30\xb32\xb33\xb35\xb39\xb3c\xb44\xb47\xb48\xb4b\xb4d\xb56\xb57\xb5c\xb5d\xb5f\xb63\xb66\xb6f\xb71\xb82\xb83\xb85\xb8a\xb8e\xb90\xb92\xb95\xb99\xb9a\xb9c\xb9e\xb9f\xba3\xba4\xba8\xbaa\xbae\xbb9\xbbe\xbc2\xbc6\xbc8\xbca\xbcd\xbd0\xbd7\xbe6\xbef\xc00\xc0c\xc0e\xc10\xc12\xc28\xc2a\xc39\xc3d\xc44\xc46\xc48\xc4a\xc4d\xc55\xc56\xc58\xc5a\xc60\xc63\xc66\xc6f\xc80\xc83\xc85\xc8c\xc8e\xc90\xc92\xca8\xcaa\xcb3\xcb5\xcb9\xcbc\xcc4\xcc6\xcc8\xcca\xccd\xcd5\xcd6\xcde\xce0\xce3\xce6\xcef\xcf1\xcf2\xd00\xd03\xd05\xd0c\xd0e\xd10\xd12\xd44\xd46\xd48\xd4a\xd4e\xd54\xd57\xd5f\xd63\xd66\xd6f\xd7a\xd7f\xd82\xd83\xd85\xd96\xd9a\xdb1\xdb3\xdbb\xdbd\xdc0\xdc6\xdca\xdcf\xdd4\xdd6\xdd8\xddf\xde6\xdef\xdf2\xdf3\xe01\xe3a\xe40\xe4e\xe50\xe59\xe81\xe82\xe84\xe86\xe8a\xe8c\xea3\xea5\xea7\xebd\xec0\xec4\xec6\xec8\xecd\xed0\xed9\xedc\xedf\xf00\xf18\xf19\xf20\xf29\xf35\xf37\xf39\xf3e\xf47\xf49\xf6c\xf71\xf84\xf86\xf97\xf99\xfbc\xfc6\x1000\x1049\x1050\x109d\x10a0\x10c5\x10c7\x10cd\x10d0\x10fa\x10fc\x1248\x124a\x124d\x1250\x1256\x1258\x125a\x125d\x1260\x1288\x128a\x128d\x1290\x12b0\x12b2\x12b5\x12b8\x12be\x12c0\x12c2\x12c5\x12c8\x12d6\x12d8\x1310\x1312\x1315\x1318\x135a\x135d\x135f\x1369\x1371\x1380\x138f\x13a0\x13f5\x13f8\x13fd\x1401\x166c\x166f\x167f\x1681\x169a\x16a0\x16ea\x16ee\x16f8\x1700\x170c\x170e\x1714\x1720\x1734\x1740\x1753\x1760\x176c\x176e\x1770\x1772\x1773\x1780\x17d3\x17d7\x17dc\x17dd\x17e0\x17e9\x180b\x180d\x1810\x1819\x1820\x1878\x1880\x18aa\x18b0\x18f5\x1900\x191e\x1920\x192b\x1930\x193b\x1946\x196d\x1970\x1974\x1980\x19ab\x19b0\x19c9\x19d0\x19da\x1a00\x1a1b\x1a20\x1a5e\x1a60\x1a7c\x1a7f\x1a89\x1a90\x1a99\x1aa7\x1ab0\x1abd\x1b00\x1b4b\x1b50\x1b59\x1b6b\x1b73\x1b80\x1bf3\x1c00\x1c37\x1c40\x1c49\x1c4d\x1c7d\x1c80\x1c88\x1c90\x1cba\x1cbd\x1cbf\x1cd0\x1cd2\x1cd4\x1cfa\x1d00\x1df9\x1dfb\x1f15\x1f18\x1f1d\x1f20\x1f45\x1f48\x1f4d\x1f50\x1f57\x1f59\x1f5b\x1f5d\x1f5f\x1f7d\x1f80\x1fb4\x1fb6\x1fbc\x1fbe\x1fc2\x1fc4\x1fc6\x1fcc\x1fd0\x1fd3\x1fd6\x1fdb\x1fe0\x1fec\x1ff2\x1ff4\x1ff6\x1ffc\x203f\x2040\x2054\x2071\x207f\x2090\x209c\x20d0\x20dc\x20e1\x20e5\x20f0\x2102\x2107\x210a\x2113\x2115\x2118\x211d\x2124\x2126\x2128\x212a\x2139\x213c\x213f\x2145\x2149\x214e\x2160\x2188\x2c00\x2c2e\x2c30\x2c5e\x2c60\x2ce4\x2ceb\x2cf3\x2d00\x2d25\x2d27\x2d2d\x2d30\x2d67\x2d6f\x2d7f\x2d96\x2da0\x2da6\x2da8\x2dae\x2db0\x2db6\x2db8\x2dbe\x2dc0\x2dc6\x2dc8\x2dce\x2dd0\x2dd6\x2dd8\x2dde\x2de0\x2dff\x3005\x3007\x3021\x302f\x3031\x3035\x3038\x303c\x3041\x3096\x3099\x309f\x30a1\x30fa\x30fc\x30ff\x3105\x312f\x3131\x318e\x31a0\x31ba\x31f0\x31ff\x3400\x4db5\x4e00\x9fef\xa000\xa48c\xa4d0\xa4fd\xa500\xa60c\xa610\xa62b\xa640\xa66f\xa674\xa67d\xa67f\xa6f1\xa717\xa71f\xa722\xa788\xa78b\xa7bf\xa7c2\xa7c6\xa7f7\xa827\xa840\xa873\xa880\xa8c5\xa8d0\xa8d9\xa8e0\xa8f7\xa8fb\xa8fd\xa92d\xa930\xa953\xa960\xa97c\xa980\xa9c0\xa9cf\xa9d9\xa9e0\xa9fe\xaa00\xaa36\xaa40\xaa4d\xaa50\xaa59\xaa60\xaa76\xaa7a\xaac2\xaadb\xaadd\xaae0\xaaef\xaaf2\xaaf6\xab01\xab06\xab09\xab0e\xab11\xab16\xab20\xab26\xab28\xab2e\xab30\xab5a\xab5c\xab67\xab70\xabea\xabec\xabed\xabf0\xabf9\xac00\xd7a3\xd7b0\xd7c6\xd7cb\xd7fb\xf900\xfa6d\xfa70\xfad9\xfb00\xfb06\xfb13\xfb17\xfb1d\xfb28\xfb2a\xfb36\xfb38\xfb3c\xfb3e\xfb40\xfb41\xfb43\xfb44\xfb46\xfbb1\xfbd3\xfd3d\xfd50\xfd8f\xfd92\xfdc7\xfdf0\xfdfb\xfe00\xfe0f\xfe20\xfe2f\xfe33\xfe34\xfe4d\xfe4f\xfe70\xfe74\xfe76\xfefc\xff10\xff19\xff21\xff3a\xff3f\xff41\xff5a\xff66\xffbe\xffc2\xffc7\xffca\xffcf\xffd2\xffd7\xffda\xffdc]