From 73c0d5b2aac9bc1513550975133169910b26225e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vojt=C4=9Bch=20Kr=C3=A1sa?= Date: Thu, 21 Jan 2021 17:06:16 +0100 Subject: [PATCH] grammmar fix --- gen/org/plantuml/idea/grammar/PumlLexer.java | 273 +++++++++--------- src/org/plantuml/idea/grammar/_PumlLexer.flex | 8 +- src/org/plantuml/idea/util/Utils.java | 5 +- testData/ParsingTestData.puml | 5 + 4 files changed, 145 insertions(+), 146 deletions(-) diff --git a/gen/org/plantuml/idea/grammar/PumlLexer.java b/gen/org/plantuml/idea/grammar/PumlLexer.java index 213c1eb1..56868402 100644 --- a/gen/org/plantuml/idea/grammar/PumlLexer.java +++ b/gen/org/plantuml/idea/grammar/PumlLexer.java @@ -39,7 +39,7 @@ public class PumlLexer implements FlexLexer { /** * Translates characters to character classes * Chosen bits are [11, 6, 4] - * Total runtime size is 14144 bytes + * Total runtime size is 14112 bytes */ public static int ZZ_CMAP(int ch) { return ZZ_CMAP_A[(ZZ_CMAP_Y[(ZZ_CMAP_Z[ch >> 10] << 6) | ((ch >> 4) & 0x3f)] << 4) | (ch & 0xf)]; @@ -62,100 +62,100 @@ public static int ZZ_CMAP(int ch) { "\13\1\42\1\43\1\1\1\13\1\44\4\1\1\13\1\45\4\1\1\46\2\13\1\47\1\1\1\50\1\16" + "\1\6\1\51\1\52\1\53\1\54\1\55\1\56\2\16\1\57\1\52\1\53\1\60\1\1\1\61\1\1\1" + "\62\1\63\1\22\1\53\1\64\1\1\1\65\1\16\1\66\1\67\1\52\1\53\1\64\1\1\1\56\1" + - "\16\1\37\1\70\1\71\1\72\1\73\1\1\1\65\2\1\1\74\1\34\1\53\1\47\1\1\1\75\1\16" + - "\1\1\1\76\1\34\1\53\1\77\1\1\1\55\1\16\1\100\1\74\1\34\1\13\1\101\1\55\1\102" + - "\1\16\1\40\1\103\1\104\1\13\1\105\1\106\3\1\1\6\2\13\1\107\1\106\3\1\1\110" + - "\1\111\1\112\1\113\1\114\1\115\2\1\1\65\3\1\1\116\1\13\1\117\1\1\1\120\7\1" + - "\2\13\1\7\1\121\1\1\1\122\1\123\1\124\1\125\1\1\2\13\1\126\2\13\1\127\24\13" + - "\1\130\1\131\2\13\1\130\2\13\1\132\1\133\1\14\3\13\1\133\3\13\1\7\2\1\1\13" + - "\1\1\5\13\1\134\1\6\45\13\1\135\1\13\1\136\1\7\4\13\1\7\1\137\1\140\1\16\1" + - "\13\1\16\1\13\1\16\1\140\1\65\3\13\1\141\1\1\1\142\4\1\5\13\1\26\1\143\1\13" + - "\1\144\4\13\1\36\1\13\1\145\3\1\1\13\1\146\1\147\2\13\1\150\1\13\1\73\3\1" + - "\1\13\1\106\3\13\1\147\4\1\1\151\5\1\1\103\2\13\1\141\1\152\3\1\1\153\1\13" + - "\1\154\1\40\2\13\1\36\1\1\2\13\1\141\1\1\1\35\1\40\1\13\1\146\1\44\5\1\1\155" + - "\1\156\14\13\4\1\21\13\1\134\2\13\1\134\1\157\1\13\1\146\3\13\1\160\1\161" + - "\1\162\1\117\1\161\1\163\1\1\1\164\2\1\1\165\1\1\1\166\1\1\1\117\6\1\1\167" + - "\1\170\1\171\1\172\1\173\3\1\1\174\147\1\2\13\1\145\2\13\1\145\10\13\1\175" + - "\1\176\2\13\1\126\3\13\1\177\1\1\1\13\1\106\4\200\4\1\1\121\35\1\1\201\2\1" + - "\1\202\1\6\4\13\1\203\1\6\4\13\1\127\1\103\1\13\1\146\1\6\4\13\1\145\1\1\1" + - "\13\1\7\3\1\1\13\40\1\133\13\1\36\4\1\135\13\1\36\2\1\10\13\1\117\4\1\2\13" + - "\1\146\20\13\1\117\1\13\1\204\1\1\2\13\1\145\1\121\1\13\1\146\4\13\1\36\2" + - "\1\1\205\1\206\5\13\1\207\1\13\1\145\1\26\3\1\1\205\1\210\1\13\1\27\1\1\3" + - "\13\1\141\1\206\2\13\1\141\3\1\1\211\1\40\1\13\1\36\1\13\1\106\1\1\1\13\1" + - "\117\1\46\2\13\1\27\1\121\1\1\1\212\1\213\2\13\1\44\1\1\1\214\1\1\1\13\1\215" + - "\3\13\1\216\1\217\1\220\1\7\1\62\1\221\1\222\1\200\2\13\1\127\1\36\7\13\1" + - "\27\1\1\72\13\1\141\1\13\1\223\2\13\1\150\20\1\26\13\1\146\6\13\1\73\2\1\1" + - "\106\1\224\1\53\1\225\1\226\6\13\1\16\1\1\1\153\25\13\1\146\1\1\4\13\1\206" + - "\2\13\1\26\2\1\1\150\7\1\1\212\7\13\1\117\2\1\1\6\1\7\1\6\1\7\1\227\4\13\1" + - "\145\1\230\1\231\2\1\1\232\1\13\1\14\1\233\2\146\2\1\7\13\1\7\30\1\1\13\1" + - "\117\3\13\1\65\2\1\2\13\1\1\1\13\1\234\2\13\1\36\1\13\1\146\2\13\1\235\3\1" + - "\11\13\1\146\1\1\2\13\1\235\1\13\1\150\2\13\1\26\3\13\1\141\11\1\23\13\1\106" + - "\1\13\1\36\1\26\11\1\1\236\2\13\1\237\1\13\1\36\1\13\1\106\1\13\1\145\4\1" + - "\1\13\1\240\1\13\1\36\1\13\1\73\4\1\3\13\1\241\4\1\1\65\1\242\1\13\1\141\2" + - "\1\1\13\1\117\1\13\1\117\2\1\1\116\1\13\1\147\1\1\3\13\1\36\1\13\1\36\1\13" + - "\1\27\1\13\1\16\6\1\4\13\1\44\3\1\3\13\1\27\3\13\1\27\60\1\1\153\2\13\1\26" + - "\4\1\1\153\2\13\2\1\1\13\1\44\1\1\1\153\1\13\1\106\2\1\2\13\1\243\1\153\2" + - "\13\1\27\1\244\1\245\2\1\1\13\1\22\1\150\5\1\1\246\1\247\1\44\2\13\1\145\2" + - "\1\1\67\1\52\1\53\1\64\1\1\1\250\1\16\11\1\3\13\1\147\1\251\3\1\3\13\1\1\1" + - "\252\13\1\2\13\1\145\2\1\1\253\2\1\3\13\1\1\1\254\3\1\2\13\1\7\5\1\1\13\1" + - "\73\30\1\4\13\1\1\1\121\34\1\3\13\1\44\20\1\1\53\1\13\1\145\1\1\1\65\2\1\1" + - "\206\1\13\67\1\71\13\1\73\16\1\14\13\1\141\53\1\2\13\1\145\75\1\44\13\1\106" + - "\33\1\43\13\1\44\1\13\1\145\7\1\1\13\1\146\1\1\3\13\1\1\1\141\1\1\1\153\1" + - "\255\1\13\67\1\4\13\1\147\1\65\3\1\1\153\4\1\1\65\1\1\76\13\1\117\1\1\57\13" + - "\1\27\20\1\1\16\77\1\6\13\1\7\1\117\1\44\1\73\66\1\5\13\1\212\3\13\1\140\1" + - "\256\1\257\1\260\3\13\1\261\1\262\1\13\1\263\1\264\1\34\24\13\1\265\1\13\1" + - "\34\1\127\1\13\1\127\1\13\1\212\1\13\1\212\1\145\1\13\1\145\1\13\1\53\1\13" + - "\1\53\1\13\1\214\3\1\14\13\1\147\3\1\4\13\1\141\113\1\1\260\1\13\1\266\1\267" + - "\1\270\1\271\1\272\1\273\1\274\1\150\1\275\1\150\24\1\55\13\1\106\2\1\103" + - "\13\1\147\15\13\1\146\150\13\1\16\25\1\41\13\1\146\36\1"); - - /* The ZZ_CMAP_A table has 3040 entries */ + "\16\1\37\1\70\1\71\1\72\1\3\1\1\1\65\2\1\1\73\1\34\1\53\1\47\1\1\1\74\1\16" + + "\1\1\1\75\1\34\1\53\1\76\1\1\1\55\1\16\1\77\1\73\1\34\1\13\1\100\1\55\1\101" + + "\1\16\1\40\1\102\1\103\1\13\1\104\1\105\3\1\1\6\2\13\1\106\1\105\3\1\1\107" + + "\1\110\1\111\1\112\1\113\1\114\2\1\1\65\3\1\1\115\1\13\1\116\1\1\1\117\7\1" + + "\2\13\1\7\1\120\1\1\1\121\1\122\1\123\1\124\1\1\2\13\1\125\2\13\1\126\24\13" + + "\1\127\1\130\2\13\1\127\2\13\1\131\1\132\1\14\3\13\1\132\3\13\1\7\2\1\1\13" + + "\1\1\5\13\1\133\1\6\45\13\1\134\1\13\1\135\1\7\4\13\1\7\1\136\1\137\1\16\1" + + "\13\1\16\1\13\1\16\1\137\1\65\3\13\1\140\1\1\1\141\4\1\5\13\1\26\1\142\1\13" + + "\1\143\4\13\1\36\1\13\1\144\3\1\1\13\1\145\1\146\2\13\1\147\1\13\1\3\3\1\1" + + "\13\1\105\3\13\1\146\4\1\1\150\5\1\1\102\2\13\1\140\1\151\3\1\1\152\1\13\1" + + "\153\1\40\2\13\1\36\1\1\2\13\1\140\1\1\1\35\1\40\1\13\1\145\1\44\5\1\1\154" + + "\1\155\14\13\4\1\21\13\1\133\2\13\1\133\1\156\1\13\1\145\3\13\1\157\1\160" + + "\1\161\1\116\1\160\1\162\1\1\1\163\2\1\1\164\1\1\1\165\1\1\1\116\6\1\1\166" + + "\1\167\1\170\1\171\1\172\3\1\1\173\147\1\2\13\1\144\2\13\1\144\10\13\1\174" + + "\1\175\2\13\1\125\3\13\1\176\1\1\1\13\1\105\4\177\4\1\1\120\35\1\1\200\2\1" + + "\1\201\1\6\4\13\1\202\1\6\4\13\1\126\1\102\1\13\1\145\1\6\4\13\1\144\1\1\1" + + "\13\1\7\3\1\1\13\40\1\133\13\1\36\4\1\135\13\1\36\2\1\10\13\1\116\4\1\2\13" + + "\1\145\20\13\1\116\1\13\1\203\1\1\2\13\1\144\1\120\1\13\1\145\4\13\1\36\2" + + "\1\1\204\1\205\5\13\1\206\1\13\1\144\1\26\3\1\1\204\1\207\1\13\1\27\1\1\3" + + "\13\1\140\1\205\2\13\1\140\3\1\1\210\1\40\1\13\1\36\1\13\1\105\1\1\1\13\1" + + "\116\1\46\2\13\1\27\1\120\1\1\1\211\1\212\2\13\1\44\1\1\1\213\1\1\1\13\1\214" + + "\3\13\1\215\1\216\1\217\1\7\1\62\1\220\1\221\1\177\2\13\1\126\1\36\7\13\1" + + "\27\1\1\72\13\1\140\1\13\1\222\2\13\1\147\20\1\26\13\1\145\6\13\1\3\2\1\1" + + "\105\1\223\1\53\1\224\1\225\6\13\1\16\1\1\1\152\25\13\1\145\1\1\4\13\1\205" + + "\2\13\1\26\2\1\1\147\7\1\1\211\7\13\1\116\2\1\1\6\1\7\1\6\1\7\1\226\4\13\1" + + "\144\1\227\1\230\2\1\1\231\1\13\1\14\1\232\2\145\2\1\7\13\1\7\30\1\1\13\1" + + "\116\3\13\1\65\2\1\2\13\1\1\1\13\1\233\2\13\1\36\1\13\1\145\2\13\1\234\3\1" + + "\11\13\1\145\1\1\2\13\1\234\1\13\1\147\2\13\1\26\3\13\1\140\11\1\23\13\1\105" + + "\1\13\1\36\1\26\11\1\1\235\2\13\1\236\1\13\1\36\1\13\1\105\1\13\1\144\4\1" + + "\1\13\1\237\1\13\1\36\1\13\1\3\4\1\3\13\1\240\4\1\1\65\1\241\1\13\1\140\2" + + "\1\1\13\1\116\1\13\1\116\2\1\1\115\1\13\1\146\1\1\3\13\1\36\1\13\1\36\1\13" + + "\1\27\1\13\1\16\6\1\4\13\1\44\3\1\3\13\1\27\3\13\1\27\60\1\1\152\2\13\1\26" + + "\4\1\1\152\2\13\2\1\1\13\1\44\1\1\1\152\1\13\1\105\2\1\2\13\1\242\1\152\2" + + "\13\1\27\1\243\1\244\2\1\1\13\1\22\1\147\5\1\1\245\1\246\1\44\2\13\1\144\2" + + "\1\1\67\1\52\1\53\1\64\1\1\1\247\1\16\11\1\3\13\1\146\1\250\3\1\3\13\1\1\1" + + "\251\13\1\2\13\1\144\2\1\1\252\2\1\3\13\1\1\1\253\3\1\2\13\1\7\5\1\1\13\1" + + "\3\30\1\4\13\1\1\1\120\34\1\3\13\1\44\20\1\1\53\1\13\1\144\1\1\1\65\2\1\1" + + "\205\1\13\67\1\71\13\1\3\16\1\14\13\1\140\53\1\2\13\1\144\75\1\44\13\1\105" + + "\33\1\43\13\1\44\1\13\1\144\7\1\1\13\1\145\1\1\3\13\1\1\1\140\1\1\1\152\1" + + "\254\1\13\67\1\4\13\1\146\1\65\3\1\1\152\4\1\1\65\1\1\76\13\1\116\1\1\57\13" + + "\1\27\20\1\1\16\77\1\6\13\1\7\1\116\1\44\1\3\66\1\5\13\1\211\3\13\1\137\1" + + "\255\1\256\1\257\3\13\1\260\1\261\1\13\1\262\1\263\1\34\24\13\1\264\1\13\1" + + "\34\1\126\1\13\1\126\1\13\1\211\1\13\1\211\1\144\1\13\1\144\1\13\1\53\1\13" + + "\1\53\1\13\1\213\3\1\14\13\1\146\3\1\4\13\1\140\113\1\1\257\1\13\1\265\1\266" + + "\1\267\1\270\1\271\1\272\1\273\1\147\1\274\1\147\24\1\55\13\1\105\2\1\103" + + "\13\1\146\15\13\1\145\150\13\1\16\25\1\41\13\1\145\36\1"); + + /* The ZZ_CMAP_A table has 3024 entries */ static final char ZZ_CMAP_A[] = zzUnpackCMap( - "\11\0\1\22\1\3\1\21\1\23\1\3\22\0\1\22\1\0\1\12\4\15\1\2\1\7\1\11\2\0\1\10" + - "\2\14\1\4\12\16\6\0\1\17\32\20\1\5\1\0\1\6\1\0\1\13\1\0\32\20\12\0\1\21\12" + - "\0\1\1\11\0\1\20\12\0\1\20\4\0\1\20\5\0\27\20\1\0\12\20\4\0\14\20\16\0\5\20" + - "\7\0\1\20\1\0\1\20\1\0\5\20\1\0\2\20\2\0\4\20\1\0\1\20\6\0\1\20\1\0\3\20\1" + - "\0\1\20\1\0\4\20\1\0\23\20\1\0\13\20\10\0\15\20\2\0\1\20\6\0\10\20\10\0\3" + - "\20\33\0\6\20\1\0\1\20\17\0\2\20\7\0\2\20\12\0\3\20\2\0\2\20\1\0\16\20\15" + - "\0\11\20\13\0\1\20\30\0\6\20\4\0\2\20\4\0\1\20\5\0\6\20\4\0\1\20\11\0\1\20" + - "\3\0\1\20\7\0\11\20\7\0\5\20\1\0\10\20\6\0\26\20\3\0\1\20\2\0\1\20\7\0\11" + - "\20\4\0\10\20\2\0\2\20\2\0\26\20\1\0\7\20\1\0\1\20\3\0\4\20\3\0\1\20\20\0" + - "\1\20\15\0\2\20\1\0\1\20\5\0\6\20\4\0\2\20\1\0\2\20\1\0\2\20\1\0\2\20\17\0" + - "\4\20\1\0\1\20\3\0\3\20\20\0\11\20\1\0\2\20\1\0\2\20\1\0\5\20\3\0\1\20\2\0" + - "\1\20\30\0\1\20\13\0\10\20\2\0\1\20\3\0\1\20\1\0\6\20\3\0\3\20\1\0\4\20\3" + - "\0\2\20\1\0\1\20\1\0\2\20\3\0\2\20\3\0\3\20\3\0\14\20\13\0\10\20\1\0\2\20" + - "\10\0\3\20\5\0\1\20\4\0\10\20\1\0\6\20\1\0\5\20\3\0\1\20\3\0\2\20\15\0\13" + - "\20\2\0\1\20\6\0\3\20\10\0\1\20\5\0\22\20\3\0\10\20\1\0\11\20\1\0\1\20\2\0" + - "\7\20\11\0\1\20\1\0\2\20\15\0\2\20\1\0\1\20\2\0\2\20\1\0\1\20\2\0\1\20\6\0" + - "\4\20\1\0\7\20\1\0\3\20\1\0\1\20\1\0\1\20\2\0\2\20\1\0\4\20\1\0\2\20\11\0" + - "\1\20\2\0\5\20\1\0\1\20\25\0\14\20\1\0\24\20\13\0\5\20\22\0\7\20\4\0\4\20" + - "\3\0\1\20\3\0\2\20\7\0\3\20\4\0\15\20\14\0\1\20\1\0\6\20\1\0\1\20\5\0\1\20" + - "\2\0\13\20\1\0\15\20\1\0\4\20\2\0\7\20\1\0\1\20\1\0\4\20\2\0\1\20\1\0\4\20" + - "\2\0\7\20\1\0\1\20\1\0\4\20\2\0\16\20\2\0\6\20\2\0\15\20\2\0\1\20\1\1\17\20" + - "\1\0\10\20\7\0\15\20\1\0\6\20\23\0\1\20\4\0\1\20\3\0\5\20\2\0\22\20\1\0\1" + - "\20\5\0\17\20\1\0\16\20\2\0\5\20\13\0\14\20\13\0\1\20\15\0\7\20\7\0\16\20" + - "\15\0\2\20\11\0\4\20\1\0\4\20\3\0\2\20\11\0\10\20\1\0\1\20\1\0\1\20\1\0\1" + - "\20\1\0\6\20\1\0\7\20\1\0\1\20\3\0\3\20\1\0\7\20\3\0\4\20\2\0\6\20\4\0\13" + - "\1\15\0\2\21\5\0\1\1\17\0\1\1\1\0\1\20\15\0\1\20\2\0\1\20\4\0\1\20\2\0\12" + - "\20\1\0\1\20\3\0\5\20\6\0\1\20\1\0\1\20\1\0\1\20\1\0\4\20\1\0\13\20\2\0\4" + - "\20\5\0\5\20\4\0\1\20\4\0\2\20\13\0\5\20\6\0\4\20\3\0\2\20\14\0\10\20\7\0" + - "\10\20\1\0\7\20\1\0\1\1\4\0\2\20\12\0\5\20\5\0\2\20\3\0\7\20\6\0\3\20\12\0" + - "\2\20\13\0\11\20\2\0\27\20\2\0\7\20\1\0\3\20\1\0\4\20\1\0\4\20\2\0\6\20\3" + - "\0\1\20\1\0\1\20\2\0\5\20\1\0\12\20\12\0\5\20\1\0\3\20\1\0\10\20\4\0\7\20" + - "\3\0\1\20\3\0\2\20\1\0\1\20\3\0\2\20\2\0\5\20\2\0\1\20\1\0\1\20\30\0\3\20" + - "\3\0\6\20\2\0\6\20\2\0\6\20\11\0\7\20\4\0\5\20\3\0\5\20\5\0\1\20\1\0\10\20" + - "\1\0\5\20\1\0\1\20\1\0\2\20\1\0\2\20\1\0\12\20\6\0\12\20\2\0\6\20\2\0\6\20" + - "\2\0\6\20\2\0\3\20\3\0\14\20\1\0\16\20\1\0\2\20\1\0\2\20\1\0\10\20\6\0\4\20" + - "\4\0\16\20\2\0\1\20\1\0\14\20\1\0\2\20\3\0\1\20\2\0\4\20\1\0\2\20\12\0\10" + - "\20\6\0\6\20\1\0\3\20\1\0\12\20\3\0\1\20\12\0\4\20\25\0\1\20\1\0\1\20\3\0" + - "\7\20\1\0\1\20\1\0\4\20\1\0\17\20\1\0\2\20\14\0\3\20\7\0\4\20\11\0\2\20\1" + - "\0\1\20\20\0\4\20\10\0\1\20\13\0\10\20\5\0\3\20\2\0\1\20\2\0\2\20\2\0\4\20" + - "\1\0\14\20\1\0\1\20\1\0\7\20\1\0\21\20\1\0\4\20\2\0\10\20\1\0\7\20\1\0\14" + - "\20\1\0\4\20\1\0\5\20\1\0\1\20\3\0\14\20\2\0\10\20\1\0\2\20\1\0\1\20\2\0\1" + - "\20\1\0\12\20\1\0\4\20\1\0\1\20\1\0\1\20\6\0\1\20\4\0\1\20\1\0\1\20\1\0\1" + - "\20\1\0\3\20\1\0\2\20\1\0\1\20\2\0\1\20\1\0\1\20\1\0\1\20\1\0\1\20\1\0\1\20" + - "\1\0\2\20\1\0\1\20\2\0\4\20\1\0\7\20\1\0\4\20\1\0\4\20\1\0\1\20\1\0\12\20" + - "\1\0\5\20\1\0\3\20\1\0\5\20\1\0\5\20"); + "\11\0\1\20\1\3\1\17\1\21\1\3\22\0\1\20\1\0\1\12\4\15\1\2\1\7\1\11\2\0\1\10" + + "\2\14\1\4\12\16\6\0\1\15\32\16\1\5\1\0\1\6\1\0\1\13\1\0\32\16\12\0\1\17\12" + + "\0\1\1\11\0\1\16\12\0\1\16\4\0\1\16\5\0\27\16\1\0\12\16\4\0\14\16\16\0\5\16" + + "\7\0\1\16\1\0\1\16\1\0\5\16\1\0\2\16\2\0\4\16\1\0\1\16\6\0\1\16\1\0\3\16\1" + + "\0\1\16\1\0\4\16\1\0\23\16\1\0\13\16\10\0\15\16\2\0\1\16\6\0\10\16\10\0\3" + + "\16\33\0\6\16\1\0\1\16\17\0\2\16\7\0\2\16\12\0\3\16\2\0\2\16\1\0\16\16\15" + + "\0\11\16\13\0\1\16\30\0\6\16\4\0\2\16\4\0\1\16\5\0\6\16\4\0\1\16\11\0\1\16" + + "\3\0\1\16\7\0\11\16\7\0\5\16\1\0\10\16\6\0\26\16\3\0\1\16\2\0\1\16\7\0\11" + + "\16\4\0\10\16\2\0\2\16\2\0\26\16\1\0\7\16\1\0\1\16\3\0\4\16\3\0\1\16\20\0" + + "\1\16\15\0\2\16\1\0\1\16\5\0\6\16\4\0\2\16\1\0\2\16\1\0\2\16\1\0\2\16\17\0" + + "\4\16\1\0\1\16\3\0\3\16\20\0\11\16\1\0\2\16\1\0\2\16\1\0\5\16\3\0\1\16\2\0" + + "\1\16\30\0\1\16\13\0\10\16\2\0\1\16\3\0\1\16\1\0\6\16\3\0\3\16\1\0\4\16\3" + + "\0\2\16\1\0\1\16\1\0\2\16\3\0\2\16\3\0\3\16\3\0\2\16\5\0\10\16\1\0\2\16\10" + + "\0\3\16\5\0\1\16\4\0\10\16\1\0\6\16\1\0\5\16\3\0\1\16\3\0\2\16\15\0\13\16" + + "\2\0\1\16\6\0\3\16\10\0\1\16\5\0\22\16\3\0\10\16\1\0\11\16\1\0\1\16\2\0\7" + + "\16\11\0\1\16\1\0\2\16\15\0\2\16\1\0\1\16\2\0\2\16\1\0\1\16\2\0\1\16\6\0\4" + + "\16\1\0\7\16\1\0\3\16\1\0\1\16\1\0\1\16\2\0\2\16\1\0\4\16\1\0\2\16\11\0\1" + + "\16\2\0\5\16\1\0\1\16\25\0\14\16\1\0\24\16\13\0\5\16\22\0\7\16\4\0\4\16\3" + + "\0\1\16\3\0\2\16\7\0\3\16\4\0\15\16\14\0\1\16\1\0\6\16\1\0\1\16\5\0\1\16\2" + + "\0\13\16\1\0\15\16\1\0\4\16\2\0\7\16\1\0\1\16\1\0\4\16\2\0\1\16\1\0\4\16\2" + + "\0\7\16\1\0\1\16\1\0\4\16\2\0\16\16\2\0\6\16\2\0\15\16\2\0\1\16\1\1\17\16" + + "\1\0\10\16\7\0\15\16\1\0\6\16\23\0\1\16\4\0\1\16\3\0\5\16\2\0\22\16\1\0\1" + + "\16\5\0\17\16\1\0\16\16\2\0\5\16\13\0\14\16\13\0\1\16\15\0\7\16\7\0\16\16" + + "\15\0\2\16\11\0\4\16\1\0\4\16\3\0\2\16\11\0\10\16\1\0\1\16\1\0\1\16\1\0\1" + + "\16\1\0\6\16\1\0\7\16\1\0\1\16\3\0\3\16\1\0\7\16\3\0\4\16\2\0\6\16\4\0\13" + + "\1\15\0\2\17\5\0\1\1\17\0\1\1\1\0\1\16\15\0\1\16\2\0\1\16\4\0\1\16\2\0\12" + + "\16\1\0\1\16\3\0\5\16\6\0\1\16\1\0\1\16\1\0\1\16\1\0\4\16\1\0\13\16\2\0\4" + + "\16\5\0\5\16\4\0\1\16\4\0\2\16\13\0\5\16\6\0\4\16\3\0\2\16\14\0\10\16\7\0" + + "\10\16\1\0\7\16\1\0\1\1\4\0\2\16\12\0\5\16\5\0\2\16\3\0\7\16\6\0\3\16\12\0" + + "\2\16\13\0\11\16\2\0\27\16\2\0\7\16\1\0\3\16\1\0\4\16\1\0\4\16\2\0\6\16\3" + + "\0\1\16\1\0\1\16\2\0\5\16\1\0\12\16\12\0\5\16\1\0\3\16\1\0\10\16\4\0\7\16" + + "\3\0\1\16\3\0\2\16\1\0\1\16\3\0\2\16\2\0\5\16\2\0\1\16\1\0\1\16\30\0\3\16" + + "\3\0\6\16\2\0\6\16\2\0\6\16\11\0\7\16\4\0\5\16\3\0\5\16\5\0\1\16\1\0\10\16" + + "\1\0\5\16\1\0\1\16\1\0\2\16\1\0\2\16\1\0\12\16\6\0\12\16\2\0\6\16\2\0\6\16" + + "\2\0\6\16\2\0\3\16\3\0\14\16\1\0\16\16\1\0\2\16\1\0\2\16\1\0\10\16\6\0\4\16" + + "\4\0\16\16\2\0\1\16\1\0\14\16\1\0\2\16\3\0\1\16\2\0\4\16\1\0\2\16\12\0\10" + + "\16\6\0\6\16\1\0\3\16\1\0\12\16\3\0\1\16\12\0\4\16\25\0\1\16\1\0\1\16\3\0" + + "\7\16\1\0\1\16\1\0\4\16\1\0\17\16\1\0\2\16\14\0\3\16\7\0\4\16\11\0\2\16\1" + + "\0\1\16\20\0\4\16\10\0\1\16\13\0\10\16\5\0\3\16\2\0\1\16\2\0\2\16\2\0\4\16" + + "\1\0\14\16\1\0\1\16\1\0\7\16\1\0\21\16\1\0\4\16\2\0\10\16\1\0\7\16\1\0\14" + + "\16\1\0\4\16\1\0\5\16\1\0\1\16\3\0\14\16\2\0\10\16\1\0\2\16\1\0\1\16\2\0\1" + + "\16\1\0\12\16\1\0\4\16\1\0\1\16\1\0\1\16\6\0\1\16\4\0\1\16\1\0\1\16\1\0\1" + + "\16\1\0\3\16\1\0\2\16\1\0\1\16\2\0\1\16\1\0\1\16\1\0\1\16\1\0\1\16\1\0\1\16" + + "\1\0\2\16\1\0\1\16\2\0\4\16\1\0\7\16\1\0\4\16\1\0\4\16\1\0\1\16\1\0\12\16" + + "\1\0\5\16\1\0\3\16\1\0\5\16\1\0\5\16"); /** * Translates DFA states to action switch labels. @@ -164,11 +164,11 @@ public static int ZZ_CMAP(int ch) { private static final String ZZ_ACTION_PACKED_0 = "\3\0\1\1\1\2\1\1\1\3\5\1\1\4\1\5" + - "\1\4\1\6\1\3\1\0\1\7\1\3\1\6\1\3" + - "\6\0\1\4\1\7"; + "\1\3\1\0\1\6\1\3\1\5\1\3\5\0\1\4" + + "\1\0\1\4\1\6"; private static int[] zzUnpackAction() { - int[] result = new int[30]; + int[] result = new int[29]; int offset = 0; offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); return result; @@ -193,13 +193,13 @@ private static int zzUnpackAction(String packed, int offset, int[] result) { private static final int[] ZZ_ROWMAP = zzUnpackRowMap(); private static final String ZZ_ROWMAP_PACKED_0 = - "\0\0\0\24\0\50\0\74\0\50\0\50\0\120\0\144" + - "\0\170\0\214\0\240\0\264\0\264\0\264\0\310\0\334" + - "\0\360\0\u0104\0\u0118\0\u012c\0\u0140\0\u0154\0\u0168\0\u017c" + - "\0\u0190\0\u01a4\0\310\0\u01b8\0\50\0\50"; + "\0\0\0\22\0\44\0\66\0\44\0\44\0\110\0\132" + + "\0\154\0\176\0\220\0\242\0\264\0\306\0\330\0\352" + + "\0\374\0\u010e\0\u0120\0\u0132\0\u0144\0\u0156\0\u0168\0\u017a" + + "\0\264\0\242\0\u018c\0\44\0\44"; private static int[] zzUnpackRowMap() { - int[] result = new int[30]; + int[] result = new int[29]; int offset = 0; offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); return result; @@ -223,27 +223,27 @@ private static int zzUnpackRowMap(String packed, int offset, int[] result) { private static final String ZZ_TRANS_PACKED_0 = "\1\4\1\5\1\6\1\7\1\10\1\11\1\4\1\12" + - "\2\4\1\13\1\14\1\4\1\14\1\15\1\16\1\17" + - "\1\7\1\20\1\21\1\4\1\22\1\23\1\24\1\10" + - "\1\11\1\4\1\12\2\4\1\13\1\14\1\4\1\14" + - "\1\15\1\16\1\17\1\24\1\25\1\26\24\0\1\4" + - "\5\0\1\4\1\0\2\4\1\0\5\4\7\0\1\7" + - "\15\0\1\7\1\0\1\7\2\0\1\27\21\0\3\30" + - "\1\0\2\30\1\0\15\30\3\31\1\0\4\31\2\0" + - "\12\31\3\32\1\0\6\32\1\0\11\32\1\4\1\0" + - "\1\33\3\0\1\4\1\0\2\4\1\0\2\14\3\15" + - "\1\17\5\0\1\33\10\0\2\33\4\17\25\0\2\20" + - "\3\0\1\7\15\0\1\7\1\20\1\21\1\0\1\22" + - "\1\23\1\22\15\0\3\22\3\23\1\0\20\23\1\0" + - "\1\22\1\23\1\24\15\0\1\24\1\22\1\24\1\0" + - "\1\22\1\23\1\22\15\0\1\22\2\25\1\0\1\22" + - "\1\23\1\24\15\0\1\24\1\25\1\26\2\27\1\34" + - "\1\27\1\0\17\27\3\30\1\0\2\30\1\35\15\30" + - "\3\31\1\0\4\31\1\0\1\35\12\31\3\32\1\0" + - "\6\32\1\35\11\32\4\0\1\36\17\0"; + "\2\4\1\13\1\14\1\4\1\14\1\15\1\7\1\16" + + "\1\17\1\4\1\20\1\21\1\22\1\10\1\11\1\4" + + "\1\12\2\4\1\13\1\14\1\4\1\14\1\15\1\22" + + "\1\23\1\24\22\0\1\4\5\0\1\4\1\0\2\4" + + "\1\0\3\4\7\0\1\7\13\0\1\7\1\0\1\7" + + "\2\0\1\25\17\0\3\26\1\0\2\26\1\0\13\26" + + "\3\27\1\0\4\27\2\0\10\27\3\30\1\0\6\30" + + "\1\0\7\30\1\4\1\0\1\31\3\0\1\4\1\0" + + "\2\4\1\0\2\14\1\32\1\15\5\0\1\31\10\0" + + "\2\31\2\15\23\0\2\16\3\0\1\7\13\0\1\7" + + "\1\16\1\17\1\0\1\20\1\21\1\20\13\0\3\20" + + "\3\21\1\0\16\21\1\0\1\20\1\21\1\22\13\0" + + "\1\22\1\20\1\22\1\0\1\20\1\21\1\20\13\0" + + "\1\20\2\23\1\0\1\20\1\21\1\22\13\0\1\22" + + "\1\23\1\24\2\25\1\33\1\25\1\0\15\25\3\26" + + "\1\0\2\26\1\34\13\26\3\27\1\0\4\27\1\0" + + "\1\34\10\27\3\30\1\0\6\30\1\34\7\30\4\0" + + "\1\35\15\0"; private static int[] zzUnpackTrans() { - int[] result = new int[460]; + int[] result = new int[414]; int offset = 0; offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); return result; @@ -281,11 +281,11 @@ private static int zzUnpackTrans(String packed, int offset, int[] result) { private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\2\0\1\10\1\1\2\11\13\1\1\0\4\1\6\0" + - "\2\11"; + "\2\0\1\10\1\1\2\11\11\1\1\0\4\1\5\0" + + "\1\1\1\0\2\11"; private static int[] zzUnpackAttribute() { - int[] result = new int[30]; + int[] result = new int[29]; int offset = 0; offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); return result; @@ -342,11 +342,11 @@ the source of the yytext() string */ /* user code: */ public PumlLexer() { - this((java.io.Reader) null); + this((java.io.Reader)null); } private IElementType itemType() { - if (org.plantuml.idea.util.Utils.containsLetters(yytext())) { + if (org.plantuml.idea.util.Utils.containsLettersOrNumbers(yytext())) { return PumlTypes.IDENTIFIER; } else { return PumlTypes.OTHER; @@ -599,48 +599,41 @@ public IElementType advance() throws java.io.IOException { return PumlTypes.OTHER; } // fall through - case 8: + case 7: break; case 2: { return TokenType.BAD_CHARACTER; } // fall through - case 9: + case 8: break; case 3: { yybegin(LINE_START_STATE); return TokenType.WHITE_SPACE; } // fall through - case 10: + case 9: break; case 4: { yybegin(YYINITIAL); return itemType(); } // fall through - case 11: + case 10: break; case 5: { - yybegin(YYINITIAL); - return PumlTypes.IDENTIFIER; - } - // fall through - case 12: - break; - case 6: { yybegin(YYINITIAL); return TokenType.WHITE_SPACE; } // fall through - case 13: + case 11: break; - case 7: { + case 6: { yybegin(YYINITIAL); return PumlTypes.COMMENT; } // fall through - case 14: + case 12: break; default: zzScanError(ZZ_NO_MATCH); diff --git a/src/org/plantuml/idea/grammar/_PumlLexer.flex b/src/org/plantuml/idea/grammar/_PumlLexer.flex index 5ceaaf4e..8af9c2bf 100644 --- a/src/org/plantuml/idea/grammar/_PumlLexer.flex +++ b/src/org/plantuml/idea/grammar/_PumlLexer.flex @@ -13,7 +13,7 @@ import org.plantuml.idea.grammar.psi.PumlTypes; } private IElementType itemType() { - if(org.plantuml.idea.util.Utils.containsLetters(yytext())) { + if(org.plantuml.idea.util.Utils.containsLettersOrNumbers(yytext())) { return PumlTypes.IDENTIFIER; } else { return PumlTypes.OTHER; @@ -39,8 +39,8 @@ QUOTE_1=\"[^\"\r\n]+\" // "foo bar" COMPLEX_WORD=[_\p{L}0-9@&%$#][._\-'\p{L}0-9@&%$#]*[\p{L}0-9@&%$#] WORD_CHARACTER=[\p{L}0-9] -TAG=@[A-Za-z]* -SPECIAL_CHARACTER=[^\p{L}\s/\[\(\"'] //except quotes, brackets start +//TAG=@[A-Za-z]+ +SPECIAL_CHARACTER=[^\p{L}0-9\s/\[\(\"'] //except quotes, brackets start NEW_LINE=\R WHITE_SPACE=[\ \t\f] @@ -57,7 +57,7 @@ WHITE_SPACE=[\ \t\f] //{QUOTE_2} { yybegin(YYINITIAL); return itemType(); } {COMPLEX_WORD} { yybegin(YYINITIAL); return itemType(); } {WORD_CHARACTER}+ { yybegin(YYINITIAL); return itemType(); } -{TAG} { yybegin(YYINITIAL); return PumlTypes.IDENTIFIER; } +//{TAG} { yybegin(YYINITIAL); return PumlTypes.IDENTIFIER; } {SPECIAL_CHARACTER}+ { yybegin(YYINITIAL); return PumlTypes.OTHER; } "/" { yybegin(YYINITIAL); return PumlTypes.OTHER; } "[" { yybegin(YYINITIAL); return PumlTypes.OTHER; } diff --git a/src/org/plantuml/idea/util/Utils.java b/src/org/plantuml/idea/util/Utils.java index 184bbad6..a5c19050 100644 --- a/src/org/plantuml/idea/util/Utils.java +++ b/src/org/plantuml/idea/util/Utils.java @@ -11,6 +11,7 @@ import java.util.ArrayList; import java.util.List; +import static java.lang.Character.isDigit; import static java.lang.Character.isLetter; public class Utils { @@ -30,9 +31,9 @@ public static boolean isPlantUmlFileType(@NotNull PsiFile file) { return fileType.equals(PlantUmlFileType.INSTANCE) || fileType.equals(PlantIUmlFileType.PLANTUML_FILE_TYPE); } - public static boolean containsLetters(CharSequence s) { + public static boolean containsLettersOrNumbers(CharSequence s) { for (int i = 0; i < s.length(); i++) { - if (isLetter(s.charAt(i))) { + if (isLetter(s.charAt(i)) || isDigit(s.charAt(i))) { return true; } } diff --git a/testData/ParsingTestData.puml b/testData/ParsingTestData.puml index 21f3ed2e..22ea5876 100644 --- a/testData/ParsingTestData.puml +++ b/testData/ParsingTestData.puml @@ -39,3 +39,8 @@ ProductOfferingPrice -- ProductUsageSpec: ForUsage > @startuml foo -> bar: [Test prototype]'s start and ends at [Test prototype]'s end @enduml + +@startuml +123 -> [Оалвыалвы]: Оалвыалвы +@enduml +