From 686640581315d0c2e5aee2f3d2228e3c787918bd Mon Sep 17 00:00:00 2001 From: "Walied K. Yassen" Date: Wed, 28 Aug 2024 22:25:23 +0300 Subject: [PATCH] Allow '<' to be escaped in string literals --- CHANGELOG.md | 1 + .../plugin/lang/lexer/_RsLexer.java | 133 +++++++++--------- src/main/grammars/RuneScript.flex | 2 +- 3 files changed, 69 insertions(+), 67 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e9cda4d..3457fd0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,7 @@ - Symbols can now be resolved from sub directories. - Allow for clientscript/command to be looked up in "Search Everywhere". - Fixed namedobj vs obj when type checking multiple args. +- Allow '<' to be escaped in string literals. ## [1.5.1] - 2024-04-15 diff --git a/src/main/gen/io/runescript/plugin/lang/lexer/_RsLexer.java b/src/main/gen/io/runescript/plugin/lang/lexer/_RsLexer.java index 54173c7..c5dddd4 100644 --- a/src/main/gen/io/runescript/plugin/lang/lexer/_RsLexer.java +++ b/src/main/gen/io/runescript/plugin/lang/lexer/_RsLexer.java @@ -221,76 +221,77 @@ private static int zzUnpackRowMap(String packed, int offset, int [] result) { "\4\0\2\52\2\0\1\52\1\0\20\52\1\0\6\52"+ "\1\0\32\52\21\0\1\104\20\0\1\105\1\106\3\0"+ "\1\107\1\0\1\110\1\107\4\0\1\111\1\0\1\112"+ - "\13\0\1\113\3\0\1\113\23\0\1\113\3\0\2\113"+ - "\3\0\1\113\5\0\1\113\1\0\1\113\1\0\1\113"+ - "\1\0\1\113\26\0\1\114\63\0\1\21\2\0\1\21"+ - "\1\0\2\61\1\21\4\0\1\21\1\66\1\67\4\0"+ - "\12\21\1\66\11\21\21\0\1\21\2\0\1\21\1\0"+ - "\2\61\1\21\4\0\1\21\1\66\1\21\4\0\12\21"+ - "\1\66\11\21\26\0\2\63\6\0\1\115\1\116\16\0"+ - "\1\115\37\0\2\63\6\0\1\115\17\0\1\115\31\0"+ - "\1\117\53\0\2\65\1\120\1\121\64\65\15\0\1\21"+ - "\2\0\1\21\1\0\2\122\1\21\4\0\1\122\2\21"+ - "\4\0\1\21\6\122\15\21\21\0\1\21\2\0\1\21"+ - "\1\0\2\123\1\21\4\0\3\21\4\0\24\21\21\0"+ + "\13\0\1\113\3\0\1\113\14\0\1\113\6\0\1\113"+ + "\3\0\2\113\3\0\1\113\5\0\1\113\1\0\1\113"+ + "\1\0\1\113\1\0\1\113\26\0\1\114\63\0\1\21"+ + "\2\0\1\21\1\0\2\61\1\21\4\0\1\21\1\66"+ + "\1\67\4\0\12\21\1\66\11\21\21\0\1\21\2\0"+ + "\1\21\1\0\2\61\1\21\4\0\1\21\1\66\1\21"+ + "\4\0\12\21\1\66\11\21\26\0\2\63\6\0\1\115"+ + "\1\116\16\0\1\115\37\0\2\63\6\0\1\115\17\0"+ + "\1\115\31\0\1\117\53\0\2\65\1\120\1\121\64\65"+ + "\15\0\1\21\2\0\1\21\1\0\2\122\1\21\4\0"+ + "\1\122\2\21\4\0\1\21\6\122\15\21\21\0\1\21"+ + "\2\0\1\21\1\0\2\123\1\21\4\0\3\21\4\0"+ + "\24\21\21\0\1\21\2\0\1\21\1\0\3\21\4\0"+ + "\3\21\4\0\12\21\1\124\4\21\1\125\4\21\21\0"+ "\1\21\2\0\1\21\1\0\3\21\4\0\3\21\4\0"+ - "\12\21\1\124\4\21\1\125\4\21\21\0\1\21\2\0"+ - "\1\21\1\0\3\21\4\0\3\21\4\0\6\21\1\126"+ - "\15\21\21\0\1\21\2\0\1\21\1\0\3\21\4\0"+ - "\3\21\4\0\17\21\1\127\4\21\21\0\1\21\2\0"+ - "\1\21\1\0\3\21\4\0\3\21\4\0\12\21\1\130"+ - "\11\21\21\0\1\21\2\0\1\21\1\0\3\21\4\0"+ - "\3\21\4\0\12\21\1\131\11\21\21\0\1\21\2\0"+ - "\1\21\1\0\3\21\4\0\3\21\4\0\20\21\1\132"+ - "\3\21\21\0\1\21\2\0\1\21\1\0\3\21\4\0"+ - "\3\21\4\0\21\21\1\133\2\21\21\0\1\21\2\0"+ - "\1\21\1\0\3\21\4\0\3\21\4\0\11\21\1\134"+ - "\12\21\47\0\1\135\13\0\1\136\1\0\1\137\64\0"+ - "\1\137\66\0\1\140\72\0\1\137\62\0\1\141\64\0"+ - "\1\142\7\0\1\143\36\0\1\144\1\145\61\0\2\146"+ - "\5\0\1\146\7\0\6\146\42\0\1\147\50\0\1\120"+ - "\102\0\1\21\2\0\1\21\1\0\2\122\1\21\4\0"+ - "\1\122\1\66\1\21\4\0\1\21\6\122\3\21\1\66"+ - "\11\21\21\0\1\21\2\0\1\21\1\0\2\123\1\21"+ - "\4\0\3\21\4\0\1\150\23\21\21\0\1\21\2\0"+ - "\1\21\1\0\3\21\4\0\3\21\4\0\3\21\1\151"+ - "\20\21\21\0\1\21\2\0\1\21\1\0\3\21\4\0"+ - "\3\21\4\0\5\21\1\152\16\21\21\0\1\21\2\0"+ - "\1\21\1\0\3\21\4\0\3\21\4\0\1\21\1\153"+ - "\22\21\21\0\1\21\2\0\1\21\1\0\3\21\4\0"+ - "\3\21\4\0\5\21\1\154\16\21\21\0\1\21\2\0"+ - "\1\21\1\0\3\21\4\0\3\21\4\0\17\21\1\155"+ - "\4\21\21\0\1\21\2\0\1\21\1\0\3\21\4\0"+ - "\3\21\4\0\12\21\1\156\11\21\21\0\1\21\2\0"+ - "\1\21\1\0\3\21\4\0\3\21\4\0\21\21\1\157"+ - "\2\21\21\0\1\21\2\0\1\21\1\0\3\21\4\0"+ - "\3\21\4\0\5\21\1\160\16\21\21\0\1\21\2\0"+ - "\1\21\1\0\3\21\4\0\3\21\4\0\12\21\1\161"+ - "\11\21\61\0\1\162\62\0\1\163\7\0\1\105\37\0"+ - "\1\145\111\0\1\164\64\0\1\165\61\0\1\166\104\0"+ - "\1\112\33\0\2\167\5\0\1\167\7\0\6\167\43\0"+ - "\2\146\5\0\1\146\1\115\6\0\6\146\3\0\1\115"+ - "\32\0\1\21\2\0\1\21\1\0\2\170\1\21\4\0"+ - "\3\21\4\0\24\21\21\0\1\21\2\0\1\21\1\0"+ - "\3\21\4\0\3\21\4\0\21\21\1\171\2\21\21\0"+ + "\6\21\1\126\15\21\21\0\1\21\2\0\1\21\1\0"+ + "\3\21\4\0\3\21\4\0\17\21\1\127\4\21\21\0"+ "\1\21\2\0\1\21\1\0\3\21\4\0\3\21\4\0"+ - "\5\21\1\172\16\21\21\0\1\21\2\0\1\21\1\0"+ - "\3\21\4\0\3\21\4\0\16\21\1\173\5\21\21\0"+ + "\12\21\1\130\11\21\21\0\1\21\2\0\1\21\1\0"+ + "\3\21\4\0\3\21\4\0\12\21\1\131\11\21\21\0"+ "\1\21\2\0\1\21\1\0\3\21\4\0\3\21\4\0"+ - "\5\21\1\174\16\21\56\0\1\137\56\0\1\175\55\0"+ - "\1\144\67\0\1\176\104\0\1\164\45\0\2\167\4\0"+ - "\1\145\1\167\7\0\6\167\36\0\1\21\2\0\1\21"+ - "\1\0\2\170\1\21\4\0\3\21\4\0\1\177\23\21"+ - "\21\0\1\21\2\0\1\21\1\0\3\21\4\0\3\21"+ - "\4\0\12\21\1\200\11\21\21\0\1\21\2\0\1\21"+ - "\1\0\3\21\4\0\3\21\4\0\14\21\1\201\7\21"+ - "\50\0\1\137\45\0\2\202\61\0\1\21\2\0\1\21"+ - "\1\0\2\203\1\21\4\0\3\21\4\0\24\21\21\0"+ + "\20\21\1\132\3\21\21\0\1\21\2\0\1\21\1\0"+ + "\3\21\4\0\3\21\4\0\21\21\1\133\2\21\21\0"+ + "\1\21\2\0\1\21\1\0\3\21\4\0\3\21\4\0"+ + "\11\21\1\134\12\21\47\0\1\135\13\0\1\136\1\0"+ + "\1\137\64\0\1\137\66\0\1\140\72\0\1\137\62\0"+ + "\1\141\64\0\1\142\7\0\1\143\36\0\1\144\1\145"+ + "\61\0\2\146\5\0\1\146\7\0\6\146\42\0\1\147"+ + "\50\0\1\120\102\0\1\21\2\0\1\21\1\0\2\122"+ + "\1\21\4\0\1\122\1\66\1\21\4\0\1\21\6\122"+ + "\3\21\1\66\11\21\21\0\1\21\2\0\1\21\1\0"+ + "\2\123\1\21\4\0\3\21\4\0\1\150\23\21\21\0"+ + "\1\21\2\0\1\21\1\0\3\21\4\0\3\21\4\0"+ + "\3\21\1\151\20\21\21\0\1\21\2\0\1\21\1\0"+ + "\3\21\4\0\3\21\4\0\5\21\1\152\16\21\21\0"+ "\1\21\2\0\1\21\1\0\3\21\4\0\3\21\4\0"+ - "\20\21\1\204\3\21\26\0\2\202\4\0\1\145\54\0"+ - "\1\21\2\0\1\21\1\0\2\203\1\21\4\0\3\21"+ - "\4\0\1\205\23\21\21\0\1\21\2\0\1\21\1\0"+ - "\2\206\1\21\4\0\3\21\4\0\24\21\4\0"; + "\1\21\1\153\22\21\21\0\1\21\2\0\1\21\1\0"+ + "\3\21\4\0\3\21\4\0\5\21\1\154\16\21\21\0"+ + "\1\21\2\0\1\21\1\0\3\21\4\0\3\21\4\0"+ + "\17\21\1\155\4\21\21\0\1\21\2\0\1\21\1\0"+ + "\3\21\4\0\3\21\4\0\12\21\1\156\11\21\21\0"+ + "\1\21\2\0\1\21\1\0\3\21\4\0\3\21\4\0"+ + "\21\21\1\157\2\21\21\0\1\21\2\0\1\21\1\0"+ + "\3\21\4\0\3\21\4\0\5\21\1\160\16\21\21\0"+ + "\1\21\2\0\1\21\1\0\3\21\4\0\3\21\4\0"+ + "\12\21\1\161\11\21\61\0\1\162\62\0\1\163\7\0"+ + "\1\105\37\0\1\145\111\0\1\164\64\0\1\165\61\0"+ + "\1\166\104\0\1\112\33\0\2\167\5\0\1\167\7\0"+ + "\6\167\43\0\2\146\5\0\1\146\1\115\6\0\6\146"+ + "\3\0\1\115\32\0\1\21\2\0\1\21\1\0\2\170"+ + "\1\21\4\0\3\21\4\0\24\21\21\0\1\21\2\0"+ + "\1\21\1\0\3\21\4\0\3\21\4\0\21\21\1\171"+ + "\2\21\21\0\1\21\2\0\1\21\1\0\3\21\4\0"+ + "\3\21\4\0\5\21\1\172\16\21\21\0\1\21\2\0"+ + "\1\21\1\0\3\21\4\0\3\21\4\0\16\21\1\173"+ + "\5\21\21\0\1\21\2\0\1\21\1\0\3\21\4\0"+ + "\3\21\4\0\5\21\1\174\16\21\56\0\1\137\56\0"+ + "\1\175\55\0\1\144\67\0\1\176\104\0\1\164\45\0"+ + "\2\167\4\0\1\145\1\167\7\0\6\167\36\0\1\21"+ + "\2\0\1\21\1\0\2\170\1\21\4\0\3\21\4\0"+ + "\1\177\23\21\21\0\1\21\2\0\1\21\1\0\3\21"+ + "\4\0\3\21\4\0\12\21\1\200\11\21\21\0\1\21"+ + "\2\0\1\21\1\0\3\21\4\0\3\21\4\0\14\21"+ + "\1\201\7\21\50\0\1\137\45\0\2\202\61\0\1\21"+ + "\2\0\1\21\1\0\2\203\1\21\4\0\3\21\4\0"+ + "\24\21\21\0\1\21\2\0\1\21\1\0\3\21\4\0"+ + "\3\21\4\0\20\21\1\204\3\21\26\0\2\202\4\0"+ + "\1\145\54\0\1\21\2\0\1\21\1\0\2\203\1\21"+ + "\4\0\3\21\4\0\1\205\23\21\21\0\1\21\2\0"+ + "\1\21\1\0\2\206\1\21\4\0\3\21\4\0\24\21"+ + "\4\0"; private static int [] zzUnpacktrans() { int [] result = new int[5152]; diff --git a/src/main/grammars/RuneScript.flex b/src/main/grammars/RuneScript.flex index c6dd887..0aae707 100644 --- a/src/main/grammars/RuneScript.flex +++ b/src/main/grammars/RuneScript.flex @@ -53,7 +53,7 @@ LONG_DECIMAL_INTEGER = (({DECIMAL_DIGIT})+) [lL] COORDGRID = {DECIMAL_INTEGER}_{DECIMAL_INTEGER}_{DECIMAL_INTEGER}_{DECIMAL_INTEGER}_{DECIMAL_INTEGER} INTEGER = ([-+]?)(({DECIMAL_INTEGER})|({HEX_INTEGER})) LONG = ([-+]?)(({LONG_DECIMAL_INTEGER})|({LONG_HEX_INTEGER})) -STRING_ESCAPE_SEQUENCE=\\([abfnrtv\'\"\\]) +STRING_ESCAPE_SEQUENCE=\\([abfnrtv\'\"\\<]) STRING_PART = [^\"\r\n<\\]+ COLOR_TAG = "<"(shad|col|str|u)"="([0-9a-fA-F]+)">"