Skip to content

Commit 1a41dd0

Browse files
committed
feat: support \u{...} escape
Fixes 72
1 parent d65fc0a commit 1a41dd0

File tree

2 files changed

+134
-125
lines changed

2 files changed

+134
-125
lines changed

src/main/gen/org/tonstudio/tact/lang/_TactLexer.java

Lines changed: 131 additions & 124 deletions
Original file line numberDiff line numberDiff line change
@@ -298,17 +298,17 @@ private static int zzUnpackcmap_blocks(String packed, int offset, int [] result)
298298
"\4\73\1\74\1\75\1\0\1\76\1\0\1\55\1\77"+
299299
"\1\100\1\101\1\102\1\103\1\0\1\104\1\0\1\105"+
300300
"\1\30\1\106\7\30\1\107\3\30\1\110\13\30\1\111"+
301-
"\4\30\1\112\1\113\3\0\1\77\1\114\1\100\5\0"+
301+
"\4\30\1\112\1\113\4\0\1\77\1\114\1\100\5\0"+
302302
"\5\30\1\115\10\30\1\116\7\30\1\117\3\30\1\120"+
303-
"\1\0\2\100\1\121\1\122\1\30\1\123\1\30\1\124"+
304-
"\3\30\1\125\14\30\1\126\1\127\1\30\1\130\1\0"+
303+
"\2\0\2\100\1\121\1\122\1\30\1\123\1\30\1\124"+
304+
"\3\30\1\125\14\30\1\126\1\127\1\30\1\130\2\0"+
305305
"\1\30\1\131\4\30\1\132\1\133\1\134\1\30\1\135"+
306-
"\3\30\1\136\1\137\1\140\3\30\1\141\1\30\1\142"+
307-
"\1\143\2\30\1\144\1\145\1\146\1\147\1\150\1\151"+
308-
"\1\30\1\152";
306+
"\3\30\1\136\1\137\1\140\1\30\1\0\2\30\1\141"+
307+
"\1\30\1\142\1\143\2\30\1\144\1\145\1\0\1\146"+
308+
"\1\147\1\150\1\151\1\30\1\0\1\152\1\0";
309309

310310
private static int [] zzUnpackAction() {
311-
int [] result = new int[271];
311+
int [] result = new int[278];
312312
int offset = 0;
313313
offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
314314
return result;
@@ -354,22 +354,23 @@ private static int zzUnpackAction(String packed, int offset, int [] result) {
354354
"\0\u1a6f\0\u1ab2\0\u04b6\0\u1af5\0\u1b38\0\u1b7b\0\u04b6\0\u1bbe"+
355355
"\0\u1c01\0\u1c44\0\u1c87\0\u1cca\0\u1d0d\0\u1d50\0\u1d93\0\u1dd6"+
356356
"\0\u1e19\0\u1e5c\0\u04b6\0\u1e9f\0\u1ee2\0\u1f25\0\u1f68\0\311"+
357-
"\0\311\0\u1fab\0\u1fee\0\u2031\0\u2074\0\311\0\u20b7\0\u20fa"+
358-
"\0\u17d1\0\u1814\0\u213d\0\u2180\0\u21c3\0\u2206\0\u2249\0\u228c"+
359-
"\0\u22cf\0\u04b6\0\u2312\0\u2355\0\u2398\0\u23db\0\u241e\0\u2461"+
360-
"\0\u24a4\0\u24e7\0\u04b6\0\u252a\0\u256d\0\u25b0\0\u25f3\0\u2636"+
361-
"\0\u2679\0\u26bc\0\u04b6\0\u26ff\0\u2742\0\u2785\0\u04b6\0\u163f"+
362-
"\0\u27c8\0\u280b\0\311\0\311\0\u284e\0\u04b6\0\u2891\0\u04b6"+
363-
"\0\u28d4\0\u2917\0\u295a\0\u04b6\0\u299d\0\u29e0\0\u2a23\0\u2a66"+
357+
"\0\311\0\u1fab\0\u1fee\0\u2031\0\u2074\0\u20b7\0\311\0\u20fa"+
358+
"\0\u213d\0\u17d1\0\u1814\0\u2180\0\u21c3\0\u2206\0\u2249\0\u228c"+
359+
"\0\u22cf\0\u2312\0\u04b6\0\u2355\0\u2398\0\u23db\0\u241e\0\u2461"+
360+
"\0\u24a4\0\u24e7\0\u252a\0\u04b6\0\u256d\0\u25b0\0\u25f3\0\u2636"+
361+
"\0\u2679\0\u26bc\0\u26ff\0\u04b6\0\u2742\0\u2785\0\u27c8\0\u04b6"+
362+
"\0\u163f\0\u280b\0\u284e\0\u2891\0\311\0\311\0\u28d4\0\u04b6"+
363+
"\0\u2917\0\u04b6\0\u295a\0\u299d\0\u29e0\0\u04b6\0\u2a23\0\u2a66"+
364364
"\0\u2aa9\0\u2aec\0\u2b2f\0\u2b72\0\u2bb5\0\u2bf8\0\u2c3b\0\u2c7e"+
365-
"\0\u04b6\0\u04b6\0\u2cc1\0\u04b6\0\u280b\0\u2d04\0\u04b6\0\u2d47"+
366-
"\0\u2d8a\0\u2dcd\0\u2e10\0\u04b6\0\u04b6\0\u04b6\0\u2e53\0\u04b6"+
367-
"\0\u2e96\0\u2ed9\0\u2f1c\0\u04b6\0\u04b6\0\u04b6\0\u2f5f\0\u2fa2"+
368-
"\0\u2fe5\0\u04b6\0\u3028\0\u04b6\0\u04b6\0\u306b\0\u30ae\0\u04b6"+
369-
"\0\u04b6\0\u04b6\0\u04b6\0\u04b6\0\u04b6\0\u30f1\0\u04b6";
365+
"\0\u2cc1\0\u2d04\0\u04b6\0\u04b6\0\u2d47\0\u04b6\0\u2d8a\0\u2891"+
366+
"\0\u2dcd\0\u04b6\0\u2e10\0\u2e53\0\u2e96\0\u2ed9\0\u04b6\0\u04b6"+
367+
"\0\u04b6\0\u2f1c\0\u04b6\0\u2f5f\0\u2fa2\0\u2fe5\0\u04b6\0\u04b6"+
368+
"\0\u04b6\0\u3028\0\u306b\0\u30ae\0\u30f1\0\u04b6\0\u3134\0\u04b6"+
369+
"\0\u04b6\0\u3177\0\u31ba\0\u04b6\0\u04b6\0\u31fd\0\u04b6\0\u04b6"+
370+
"\0\u04b6\0\u04b6\0\u3240\0\u3283\0\u04b6\0\u32c6";
370371

371372
private static int [] zzUnpackRowMap() {
372-
int [] result = new int[271];
373+
int [] result = new int[278];
373374
int offset = 0;
374375
offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
375376
return result;
@@ -477,125 +478,131 @@ private static int zzUnpackRowMap(String packed, int offset, int [] result) {
477478
"\6\34\4\0\20\34\1\247\5\34\4\0\1\34\23\0"+
478479
"\4\164\7\0\2\164\10\0\7\164\21\0\1\250\34\0"+
479480
"\1\251\73\0\3\252\100\0\4\253\7\0\2\253\11\0"+
480-
"\6\253\47\0\4\254\7\0\2\254\11\0\6\254\46\0"+
481-
"\1\255\75\0\1\177\4\0\1\256\60\0\2\200\1\0"+
482-
"\2\200\1\0\75\200\2\201\1\76\2\200\1\0\75\201"+
483-
"\23\0\4\202\7\0\2\202\2\0\1\257\5\0\1\260"+
484-
"\6\202\6\0\1\257\40\0\2\203\23\0\1\261\55\0"+
485-
"\3\204\22\0\1\262\104\0\1\263\114\0\1\264\41\0"+
486-
"\4\34\7\0\6\34\4\0\20\34\1\265\5\34\4\0"+
487-
"\1\34\23\0\4\34\7\0\6\34\4\0\3\34\1\266"+
488-
"\22\34\4\0\1\34\23\0\4\34\7\0\6\34\4\0"+
489-
"\5\34\1\267\20\34\4\0\1\34\23\0\4\34\7\0"+
490-
"\6\34\4\0\17\34\1\270\1\271\5\34\4\0\1\34"+
491-
"\23\0\4\34\7\0\6\34\4\0\5\34\1\272\20\34"+
481+
"\6\253\17\0\1\254\27\0\4\255\7\0\2\255\11\0"+
482+
"\6\255\46\0\1\256\75\0\1\177\4\0\1\257\60\0"+
483+
"\2\200\1\0\2\200\1\0\75\200\2\201\1\76\2\200"+
484+
"\1\0\75\201\23\0\4\202\7\0\2\202\2\0\1\260"+
485+
"\5\0\1\261\6\202\6\0\1\260\40\0\2\203\23\0"+
486+
"\1\262\55\0\3\204\22\0\1\263\104\0\1\264\114\0"+
487+
"\1\265\41\0\4\34\7\0\6\34\4\0\20\34\1\266"+
488+
"\5\34\4\0\1\34\23\0\4\34\7\0\6\34\4\0"+
489+
"\3\34\1\267\22\34\4\0\1\34\23\0\4\34\7\0"+
490+
"\6\34\4\0\5\34\1\270\20\34\4\0\1\34\23\0"+
491+
"\4\34\7\0\6\34\4\0\17\34\1\271\1\272\5\34"+
492492
"\4\0\1\34\23\0\4\34\7\0\6\34\4\0\5\34"+
493493
"\1\273\20\34\4\0\1\34\23\0\4\34\7\0\6\34"+
494-
"\4\0\17\34\1\274\6\34\4\0\1\34\23\0\4\34"+
495-
"\7\0\6\34\4\0\5\34\1\275\20\34\4\0\1\34"+
496-
"\23\0\4\34\7\0\6\34\4\0\14\34\1\276\11\34"+
497-
"\4\0\1\34\23\0\4\34\7\0\6\34\4\0\20\34"+
498-
"\1\277\5\34\4\0\1\34\23\0\4\34\7\0\6\34"+
499-
"\4\0\10\34\1\300\15\34\4\0\1\34\23\0\4\34"+
500-
"\7\0\6\34\4\0\1\34\1\301\24\34\4\0\1\34"+
501-
"\23\0\4\34\7\0\6\34\4\0\10\34\1\302\15\34"+
502-
"\4\0\1\34\23\0\4\34\7\0\6\34\4\0\11\34"+
503-
"\1\303\14\34\4\0\1\34\23\0\4\34\7\0\6\34"+
504-
"\4\0\16\34\1\304\7\34\4\0\1\34\23\0\4\34"+
505-
"\7\0\6\34\4\0\12\34\1\305\13\34\4\0\1\34"+
506-
"\23\0\4\34\7\0\6\34\4\0\5\34\1\306\20\34"+
494+
"\4\0\5\34\1\274\20\34\4\0\1\34\23\0\4\34"+
495+
"\7\0\6\34\4\0\17\34\1\275\6\34\4\0\1\34"+
496+
"\23\0\4\34\7\0\6\34\4\0\5\34\1\276\20\34"+
497+
"\4\0\1\34\23\0\4\34\7\0\6\34\4\0\14\34"+
498+
"\1\277\11\34\4\0\1\34\23\0\4\34\7\0\6\34"+
499+
"\4\0\20\34\1\300\5\34\4\0\1\34\23\0\4\34"+
500+
"\7\0\6\34\4\0\10\34\1\301\15\34\4\0\1\34"+
501+
"\23\0\4\34\7\0\6\34\4\0\1\34\1\302\24\34"+
502+
"\4\0\1\34\23\0\4\34\7\0\6\34\4\0\10\34"+
503+
"\1\303\15\34\4\0\1\34\23\0\4\34\7\0\6\34"+
504+
"\4\0\11\34\1\304\14\34\4\0\1\34\23\0\4\34"+
505+
"\7\0\6\34\4\0\16\34\1\305\7\34\4\0\1\34"+
506+
"\23\0\4\34\7\0\6\34\4\0\12\34\1\306\13\34"+
507507
"\4\0\1\34\23\0\4\34\7\0\6\34\4\0\5\34"+
508508
"\1\307\20\34\4\0\1\34\23\0\4\34\7\0\6\34"+
509-
"\4\0\21\34\1\310\4\34\4\0\1\34\23\0\4\34"+
509+
"\4\0\5\34\1\310\20\34\4\0\1\34\23\0\4\34"+
510510
"\7\0\6\34\4\0\21\34\1\311\4\34\4\0\1\34"+
511-
"\23\0\4\34\7\0\6\34\4\0\10\34\1\312\15\34"+
512-
"\4\0\1\34\23\0\4\34\7\0\6\34\4\0\5\34"+
513-
"\1\313\20\34\4\0\1\34\23\0\4\34\7\0\6\34"+
514-
"\4\0\10\34\1\314\15\34\4\0\1\34\23\0\4\34"+
515-
"\7\0\6\34\4\0\20\34\1\315\5\34\4\0\1\34"+
516-
"\23\0\4\34\7\0\6\34\4\0\11\34\1\316\14\34"+
517-
"\4\0\1\34\23\0\4\34\7\0\6\34\4\0\7\34"+
518-
"\1\317\16\34\4\0\1\34\23\0\3\167\100\0\4\320"+
519-
"\7\0\2\320\11\0\6\320\47\0\4\167\7\0\2\167"+
520-
"\11\0\6\167\24\0\2\255\1\76\3\0\75\255\16\0"+
521-
"\1\321\1\0\1\321\2\0\4\322\77\0\4\202\7\0"+
522-
"\2\202\10\0\1\260\6\202\57\0\1\323\122\0\1\324"+
523-
"\52\0\4\34\7\0\6\34\4\0\16\34\1\325\7\34"+
511+
"\23\0\4\34\7\0\6\34\4\0\21\34\1\312\4\34"+
512+
"\4\0\1\34\23\0\4\34\7\0\6\34\4\0\10\34"+
513+
"\1\313\15\34\4\0\1\34\23\0\4\34\7\0\6\34"+
514+
"\4\0\5\34\1\314\20\34\4\0\1\34\23\0\4\34"+
515+
"\7\0\6\34\4\0\10\34\1\315\15\34\4\0\1\34"+
516+
"\23\0\4\34\7\0\6\34\4\0\20\34\1\316\5\34"+
517+
"\4\0\1\34\23\0\4\34\7\0\6\34\4\0\11\34"+
518+
"\1\317\14\34\4\0\1\34\23\0\4\34\7\0\6\34"+
519+
"\4\0\7\34\1\320\16\34\4\0\1\34\23\0\3\167"+
520+
"\100\0\4\321\7\0\2\321\11\0\6\321\47\0\4\322"+
521+
"\7\0\2\322\11\0\6\322\47\0\4\167\7\0\2\167"+
522+
"\11\0\6\167\24\0\2\256\1\76\3\0\75\256\16\0"+
523+
"\1\323\1\0\1\323\2\0\4\324\77\0\4\202\7\0"+
524+
"\2\202\10\0\1\261\6\202\57\0\1\325\122\0\1\326"+
525+
"\52\0\4\34\7\0\6\34\4\0\16\34\1\327\7\34"+
524526
"\4\0\1\34\23\0\4\34\7\0\6\34\4\0\7\34"+
525-
"\1\326\16\34\4\0\1\34\23\0\4\34\7\0\3\34"+
526-
"\1\327\2\34\4\0\26\34\4\0\1\34\23\0\4\34"+
527-
"\7\0\6\34\4\0\20\34\1\330\5\34\4\0\1\34"+
528-
"\23\0\4\34\7\0\6\34\4\0\16\34\1\331\7\34"+
527+
"\1\330\16\34\4\0\1\34\23\0\4\34\7\0\3\34"+
528+
"\1\331\2\34\4\0\26\34\4\0\1\34\23\0\4\34"+
529+
"\7\0\6\34\4\0\20\34\1\332\5\34\4\0\1\34"+
530+
"\23\0\4\34\7\0\6\34\4\0\16\34\1\333\7\34"+
529531
"\4\0\1\34\23\0\4\34\7\0\6\34\4\0\13\34"+
530-
"\1\332\2\34\1\333\7\34\4\0\1\34\23\0\4\34"+
531-
"\7\0\6\34\4\0\5\34\1\334\20\34\4\0\1\34"+
532-
"\23\0\4\34\7\0\6\34\4\0\1\34\1\335\24\34"+
532+
"\1\334\2\34\1\335\7\34\4\0\1\34\23\0\4\34"+
533+
"\7\0\6\34\4\0\5\34\1\336\20\34\4\0\1\34"+
534+
"\23\0\4\34\7\0\6\34\4\0\1\34\1\337\24\34"+
533535
"\4\0\1\34\23\0\4\34\7\0\6\34\4\0\16\34"+
534-
"\1\336\7\34\4\0\1\34\23\0\4\34\7\0\3\34"+
535-
"\1\337\2\34\4\0\26\34\4\0\1\34\23\0\4\34"+
536-
"\7\0\6\34\4\0\13\34\1\340\12\34\4\0\1\34"+
537-
"\23\0\4\34\7\0\6\34\4\0\20\34\1\341\5\34"+
536+
"\1\340\7\34\4\0\1\34\23\0\4\34\7\0\3\34"+
537+
"\1\341\2\34\4\0\26\34\4\0\1\34\23\0\4\34"+
538+
"\7\0\6\34\4\0\13\34\1\342\12\34\4\0\1\34"+
539+
"\23\0\4\34\7\0\6\34\4\0\20\34\1\343\5\34"+
538540
"\4\0\1\34\23\0\4\34\7\0\6\34\4\0\22\34"+
539-
"\1\342\3\34\4\0\1\34\23\0\4\34\7\0\6\34"+
540-
"\4\0\16\34\1\343\7\34\4\0\1\34\23\0\4\34"+
541-
"\7\0\6\34\4\0\10\34\1\344\15\34\4\0\1\34"+
542-
"\23\0\4\34\7\0\6\34\4\0\10\34\1\345\15\34"+
541+
"\1\344\3\34\4\0\1\34\23\0\4\34\7\0\6\34"+
542+
"\4\0\16\34\1\345\7\34\4\0\1\34\23\0\4\34"+
543+
"\7\0\6\34\4\0\10\34\1\346\15\34\4\0\1\34"+
544+
"\23\0\4\34\7\0\6\34\4\0\10\34\1\347\15\34"+
543545
"\4\0\1\34\23\0\4\34\7\0\6\34\4\0\1\34"+
544-
"\1\346\24\34\4\0\1\34\23\0\4\34\7\0\6\34"+
545-
"\4\0\16\34\1\347\7\34\4\0\1\34\23\0\4\34"+
546-
"\7\0\6\34\4\0\3\34\1\350\22\34\4\0\1\34"+
547-
"\23\0\4\34\7\0\6\34\4\0\20\34\1\351\5\34"+
546+
"\1\350\24\34\4\0\1\34\23\0\4\34\7\0\6\34"+
547+
"\4\0\16\34\1\351\7\34\4\0\1\34\23\0\4\34"+
548+
"\7\0\6\34\4\0\3\34\1\352\22\34\4\0\1\34"+
549+
"\23\0\4\34\7\0\6\34\4\0\20\34\1\353\5\34"+
548550
"\4\0\1\34\23\0\4\34\7\0\6\34\4\0\11\34"+
549-
"\1\352\14\34\4\0\1\34\23\0\4\34\7\0\6\34"+
550-
"\4\0\21\34\1\353\4\34\4\0\1\34\23\0\4\34"+
551-
"\7\0\6\34\4\0\5\34\1\354\20\34\4\0\1\34"+
552-
"\23\0\4\322\77\0\4\322\21\0\1\355\55\0\4\34"+
553-
"\7\0\6\34\4\0\1\34\1\356\24\34\4\0\1\34"+
554-
"\23\0\4\34\7\0\6\34\4\0\6\34\1\357\17\34"+
551+
"\1\354\14\34\4\0\1\34\23\0\4\34\7\0\6\34"+
552+
"\4\0\21\34\1\355\4\34\4\0\1\34\23\0\4\34"+
553+
"\7\0\6\34\4\0\5\34\1\356\20\34\4\0\1\34"+
554+
"\23\0\4\357\7\0\2\357\11\0\6\357\21\0\1\167"+
555+
"\25\0\4\324\77\0\4\324\21\0\1\360\55\0\4\34"+
556+
"\7\0\6\34\4\0\1\34\1\361\24\34\4\0\1\34"+
557+
"\23\0\4\34\7\0\6\34\4\0\6\34\1\362\17\34"+
555558
"\4\0\1\34\23\0\4\34\7\0\6\34\4\0\1\34"+
556-
"\1\360\24\34\4\0\1\34\23\0\4\34\7\0\6\34"+
557-
"\4\0\4\34\1\361\21\34\4\0\1\34\23\0\4\34"+
558-
"\7\0\6\34\4\0\13\34\1\362\12\34\4\0\1\34"+
559-
"\23\0\4\34\7\0\6\34\4\0\3\34\1\363\22\34"+
559+
"\1\363\24\34\4\0\1\34\23\0\4\34\7\0\6\34"+
560+
"\4\0\4\34\1\364\21\34\4\0\1\34\23\0\4\34"+
561+
"\7\0\6\34\4\0\13\34\1\365\12\34\4\0\1\34"+
562+
"\23\0\4\34\7\0\6\34\4\0\3\34\1\366\22\34"+
560563
"\4\0\1\34\23\0\4\34\7\0\6\34\4\0\20\34"+
561-
"\1\364\5\34\4\0\1\34\23\0\4\34\7\0\6\34"+
562-
"\4\0\6\34\1\365\17\34\4\0\1\34\23\0\4\34"+
563-
"\7\0\6\34\4\0\5\34\1\366\20\34\4\0\1\34"+
564-
"\23\0\4\34\7\0\6\34\4\0\5\34\1\367\20\34"+
564+
"\1\367\5\34\4\0\1\34\23\0\4\34\7\0\6\34"+
565+
"\4\0\6\34\1\370\17\34\4\0\1\34\23\0\4\34"+
566+
"\7\0\6\34\4\0\5\34\1\371\20\34\4\0\1\34"+
567+
"\23\0\4\34\7\0\6\34\4\0\5\34\1\372\20\34"+
565568
"\4\0\1\34\23\0\4\34\7\0\6\34\4\0\5\34"+
566-
"\1\370\20\34\4\0\1\34\23\0\4\34\7\0\6\34"+
567-
"\4\0\10\34\1\371\15\34\4\0\1\34\23\0\4\34"+
568-
"\7\0\6\34\4\0\20\34\1\372\5\34\4\0\1\34"+
569-
"\23\0\4\34\7\0\6\34\4\0\22\34\1\373\3\34"+
569+
"\1\373\20\34\4\0\1\34\23\0\4\34\7\0\6\34"+
570+
"\4\0\10\34\1\374\15\34\4\0\1\34\23\0\4\34"+
571+
"\7\0\6\34\4\0\20\34\1\375\5\34\4\0\1\34"+
572+
"\23\0\4\34\7\0\6\34\4\0\22\34\1\376\3\34"+
570573
"\4\0\1\34\23\0\4\34\7\0\6\34\4\0\20\34"+
571-
"\1\374\5\34\4\0\1\34\23\0\4\34\7\0\6\34"+
572-
"\4\0\13\34\1\375\12\34\4\0\1\34\23\0\4\34"+
573-
"\7\0\6\34\4\0\20\34\1\376\5\34\4\0\1\34"+
574-
"\23\0\4\34\7\0\6\34\4\0\1\34\1\377\24\34"+
575-
"\4\0\1\34\23\0\4\34\7\0\6\34\4\0\3\34"+
576-
"\1\u0100\22\34\4\0\1\34\23\0\4\34\7\0\6\34"+
577-
"\4\0\3\34\1\u0101\22\34\4\0\1\34\23\0\4\34"+
578-
"\7\0\6\34\4\0\17\34\1\u0102\6\34\4\0\1\34"+
579-
"\23\0\4\34\7\0\6\34\4\0\1\34\1\u0103\24\34"+
574+
"\1\377\5\34\4\0\1\34\23\0\4\34\7\0\6\34"+
575+
"\4\0\13\34\1\u0100\12\34\4\0\1\34\23\0\4\34"+
576+
"\7\0\6\34\4\0\20\34\1\u0101\5\34\4\0\1\34"+
577+
"\23\0\4\34\7\0\6\34\4\0\1\34\1\u0102\24\34"+
578+
"\4\0\1\34\23\0\4\u0103\7\0\2\u0103\11\0\6\u0103"+
579+
"\21\0\1\167\25\0\4\34\7\0\6\34\4\0\3\34"+
580+
"\1\u0104\22\34\4\0\1\34\23\0\4\34\7\0\6\34"+
581+
"\4\0\3\34\1\u0105\22\34\4\0\1\34\23\0\4\34"+
582+
"\7\0\6\34\4\0\17\34\1\u0106\6\34\4\0\1\34"+
583+
"\23\0\4\34\7\0\6\34\4\0\1\34\1\u0107\24\34"+
580584
"\4\0\1\34\23\0\4\34\7\0\6\34\4\0\7\34"+
581-
"\1\u0104\16\34\4\0\1\34\23\0\4\34\7\0\6\34"+
582-
"\4\0\17\34\1\u0105\6\34\4\0\1\34\23\0\4\34"+
583-
"\7\0\6\34\4\0\4\34\1\u0106\21\34\4\0\1\34"+
584-
"\23\0\4\34\7\0\6\34\4\0\10\34\1\u0107\15\34"+
585+
"\1\u0108\16\34\4\0\1\34\23\0\4\34\7\0\6\34"+
586+
"\4\0\17\34\1\u0109\6\34\4\0\1\34\23\0\4\34"+
587+
"\7\0\6\34\4\0\4\34\1\u010a\21\34\4\0\1\34"+
588+
"\23\0\4\34\7\0\6\34\4\0\10\34\1\u010b\15\34"+
585589
"\4\0\1\34\23\0\4\34\7\0\6\34\4\0\5\34"+
586-
"\1\u0108\20\34\4\0\1\34\23\0\4\34\7\0\6\34"+
587-
"\4\0\11\34\1\u0109\14\34\4\0\1\34\23\0\4\34"+
588-
"\7\0\6\34\4\0\20\34\1\u010a\5\34\4\0\1\34"+
589-
"\23\0\4\34\7\0\6\34\4\0\20\34\1\u010b\5\34"+
590+
"\1\u010c\20\34\4\0\1\34\23\0\4\34\7\0\6\34"+
591+
"\4\0\11\34\1\u010d\14\34\4\0\1\34\23\0\4\u010e"+
592+
"\7\0\2\u010e\11\0\6\u010e\21\0\1\167\25\0\4\34"+
593+
"\7\0\6\34\4\0\20\34\1\u010f\5\34\4\0\1\34"+
594+
"\23\0\4\34\7\0\6\34\4\0\20\34\1\u0110\5\34"+
590595
"\4\0\1\34\23\0\4\34\7\0\6\34\4\0\11\34"+
591-
"\1\u010c\14\34\4\0\1\34\23\0\4\34\7\0\6\34"+
592-
"\4\0\5\34\1\u010d\20\34\4\0\1\34\23\0\4\34"+
593-
"\7\0\6\34\4\0\22\34\1\u010e\3\34\4\0\1\34"+
594-
"\23\0\4\34\7\0\6\34\4\0\5\34\1\u010f\20\34"+
595-
"\4\0\1\34";
596+
"\1\u0111\14\34\4\0\1\34\23\0\4\34\7\0\6\34"+
597+
"\4\0\5\34\1\u0112\20\34\4\0\1\34\23\0\4\34"+
598+
"\7\0\6\34\4\0\22\34\1\u0113\3\34\4\0\1\34"+
599+
"\23\0\4\u0114\7\0\2\u0114\11\0\6\u0114\21\0\1\167"+
600+
"\25\0\4\34\7\0\6\34\4\0\5\34\1\u0115\20\34"+
601+
"\4\0\1\34\23\0\4\u0116\7\0\2\u0116\11\0\6\u0116"+
602+
"\21\0\1\167\102\0\1\167\2\0";
596603

597604
private static int [] zzUnpacktrans() {
598-
int [] result = new int[12596];
605+
int [] result = new int[13065];
599606
int offset = 0;
600607
offset = zzUnpacktrans(ZZ_TRANS_PACKED_0, offset, result);
601608
return result;
@@ -640,12 +647,12 @@ private static int zzUnpacktrans(String packed, int offset, int [] result) {
640647
"\1\1\1\11\1\0\2\11\1\1\2\0\1\11\2\1"+
641648
"\1\0\30\1\1\0\1\11\1\1\1\11\3\1\2\11"+
642649
"\1\0\1\11\1\0\5\1\1\11\1\0\1\11\1\0"+
643-
"\1\11\1\1\1\11\34\1\2\11\3\0\1\1\1\11"+
644-
"\1\1\5\0\33\1\1\0\2\1\2\11\30\1\1\0"+
645-
"\42\1";
650+
"\1\11\1\1\1\11\34\1\2\11\4\0\1\1\1\11"+
651+
"\1\1\5\0\33\1\2\0\2\1\2\11\30\1\2\0"+
652+
"\22\1\1\0\12\1\1\0\5\1\1\0\1\1\1\0";
646653

647654
private static int [] zzUnpackAttribute() {
648-
int [] result = new int[271];
655+
int [] result = new int[278];
649656
int offset = 0;
650657
offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
651658
return result;
@@ -1003,7 +1010,7 @@ else if (zzAtEOF) {
10031010
zzStartRead = commentStart;
10041011
return MULTI_LINE_COMMENT;
10051012
} // fall though
1006-
case 272: break;
1013+
case 279: break;
10071014
default:
10081015
return null;
10091016
}

src/main/kotlin/org/tonstudio/tact/lang/lexer/tact.flex

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,8 @@ IDENT_PART = {LETTER} | {DIGIT}
9090

9191
REGULAR_STRING_PART=[^\\\"]+
9292

93+
UNICODE_ESCAPE = {HEX_DIGIT} {HEX_DIGIT}? {HEX_DIGIT}? {HEX_DIGIT}? {HEX_DIGIT}? {HEX_DIGIT}?
94+
9395
%xstate STRING MULTI_LINE_COMMENT_STATE
9496

9597
%%
@@ -99,8 +101,8 @@ REGULAR_STRING_PART=[^\\\"]+
99101
<STRING> "\\" {OCT_DIGIT} {3} { return STRING_ESCAPE_ENTRY; }
100102
<STRING> "\\x" {HEX_DIGIT} {2} { return STRING_ESCAPE_ENTRY; }
101103
<STRING> "\\u" {HEX_DIGIT} {4} { return STRING_ESCAPE_ENTRY; }
104+
<STRING> \\u\{{UNICODE_ESCAPE}\} { return STRING_ESCAPE_ENTRY; }
102105
<STRING> {REGULAR_STRING_PART} { return STRING_ENTRY; }
103-
// TODO: support u{}
104106

105107
"/**/" {
106108
return MULTI_LINE_COMMENT;

0 commit comments

Comments
 (0)