From 7bb9f1aa9c53f12fd12c5fbecb3688057d418b85 Mon Sep 17 00:00:00 2001 From: Zvi Grinberg Date: Tue, 30 Jul 2024 23:59:30 +0300 Subject: [PATCH] fix: add more possibilities to lexer and grammar of build.gradle groovy dsl language in order to remove parsing and lexer errors Signed-off-by: Zvi Grinberg --- .../gradle/build/lexer/BuildGradleLexer.java | 541 +++++++++++------- .../build/parser/BuildGradleParser.java | 286 ++++++++- .../gradle/build/psi/BuildGradleTypes.java | 12 + .../gradle/build/buildGradle.bnf | 8 +- .../gradle/build/buildGradle.flex | 50 +- 5 files changed, 683 insertions(+), 214 deletions(-) diff --git a/src/main/gen/org/jboss/tools/intellij/componentanalysis/gradle/build/lexer/BuildGradleLexer.java b/src/main/gen/org/jboss/tools/intellij/componentanalysis/gradle/build/lexer/BuildGradleLexer.java index 3815ffd..46c005f 100644 --- a/src/main/gen/org/jboss/tools/intellij/componentanalysis/gradle/build/lexer/BuildGradleLexer.java +++ b/src/main/gen/org/jboss/tools/intellij/componentanalysis/gradle/build/lexer/BuildGradleLexer.java @@ -30,6 +30,8 @@ public class BuildGradleLexer implements FlexLexer { public static final int EXTRACT_ARTIFACT_STRING = 16; public static final int EXTRACT_VERSION_STRING = 18; public static final int GET_ROOT_VALUES = 20; + public static final int GET_GENERIC_VALUES = 22; + public static final int BYPASS_UNNECESSARY_BLOCK = 24; /** * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l @@ -39,7 +41,7 @@ public class BuildGradleLexer implements FlexLexer { */ private static final int ZZ_LEXSTATE[] = { 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, - 8, 8, 9, 9, 10, 10 + 8, 8, 9, 9, 10, 10, 11, 11, 12, 12 }; /** @@ -80,14 +82,15 @@ private static int zzUnpackcmap_top(String packed, int offset, int [] result) { "\11\0\1\1\1\2\2\3\1\2\22\0\1\1\1\0"+ "\1\4\4\0\1\5\1\6\1\7\2\0\1\10\1\11"+ "\1\12\1\13\12\14\1\15\2\0\1\16\3\0\2\11"+ - "\1\17\13\11\1\20\3\11\1\21\7\11\1\22\1\23"+ - "\1\24\1\0\1\25\1\0\1\26\1\11\1\27\1\30"+ - "\1\31\1\11\1\32\1\33\1\34\1\35\1\11\1\36"+ - "\1\37\1\40\1\41\1\42\1\11\1\43\1\44\1\45"+ - "\1\46\1\47\2\11\1\50\1\11\1\51\1\52\1\53"+ - "\7\0\1\3\32\0\1\1\u01df\0\1\1\177\0\13\1"+ - "\35\0\2\3\5\0\1\1\57\0\1\1\240\0\1\1"+ - "\377\0\u0100\54"; + "\1\17\2\11\1\20\2\11\1\21\5\11\1\22\1\23"+ + "\2\11\1\24\1\25\1\26\1\27\3\11\1\30\1\31"+ + "\1\32\1\33\1\0\1\34\1\0\1\35\1\36\1\37"+ + "\1\40\1\41\1\42\1\43\1\44\1\45\1\46\1\47"+ + "\1\50\1\51\1\52\1\53\1\54\1\11\1\55\1\56"+ + "\1\57\1\60\1\61\1\11\1\62\1\63\1\11\1\64"+ + "\1\65\1\66\7\0\1\3\32\0\1\1\u01df\0\1\1"+ + "\177\0\13\1\35\0\2\3\5\0\1\1\57\0\1\1"+ + "\240\0\1\1\377\0\u0100\67"; private static int [] zzUnpackcmap_blocks() { int [] result = new int[1536]; @@ -114,20 +117,22 @@ private static int zzUnpackcmap_blocks(String packed, int offset, int [] result) private static final int [] ZZ_ACTION = zzUnpackAction(); private static final String ZZ_ACTION_PACKED_0 = - "\13\0\1\1\1\2\1\3\1\4\1\5\11\1\1\6"+ + "\15\0\1\1\1\2\1\3\1\4\1\5\14\1\1\6"+ "\1\7\1\10\1\2\1\11\1\12\1\13\1\14\2\10"+ "\1\15\1\2\1\16\5\0\1\17\1\20\5\10\1\2"+ "\1\21\1\22\1\23\1\24\1\25\1\26\1\27\1\1"+ - "\1\30\1\31\1\32\1\33\1\34\1\0\1\35\13\0"+ - "\1\36\1\37\6\0\1\40\6\0\1\41\11\0\1\42"+ - "\1\43\7\0\1\44\1\45\2\0\1\46\1\47\15\0"+ - "\1\45\14\0\1\50\1\0\3\45\1\0\1\51\6\0"+ - "\1\52\1\0\1\53\6\0\1\54\1\0\1\43\6\0"+ - "\1\55\3\0\1\56\10\0\1\57\1\0\1\60\7\0"+ - "\1\61\10\0\1\62\2\0"; + "\1\30\1\31\1\32\1\33\1\34\1\35\1\36\1\37"+ + "\1\40\1\41\1\0\1\42\22\0\1\43\1\44\6\0"+ + "\1\45\6\0\1\46\21\0\1\47\1\50\7\0\1\51"+ + "\1\52\5\0\1\53\1\0\1\54\22\0\1\52\4\0"+ + "\1\55\22\0\1\56\1\0\3\52\3\0\1\57\4\0"+ + "\1\60\13\0\1\61\1\0\1\62\23\0\1\63\1\64"+ + "\1\50\20\0\2\65\3\0\1\66\4\0\1\67\5\0"+ + "\1\70\13\0\1\71\5\0\1\72\6\0\1\73\1\74"+ + "\10\0\1\75\1\76\16\0\1\77\5\0\1\100\11\0"; private static int [] zzUnpackAction() { - int [] result = new int[209]; + int [] result = new int[337]; int offset = 0; offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); return result; @@ -152,36 +157,52 @@ 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\55\0\132\0\207\0\264\0\341\0\u010e\0\u013b"+ - "\0\u0168\0\u0195\0\u01c2\0\u01ef\0\u021c\0\u01ef\0\u0249\0\u01ef"+ - "\0\u0276\0\u02a3\0\u02d0\0\u02fd\0\u032a\0\u0357\0\u0384\0\u03b1"+ - "\0\u03de\0\u01ef\0\u01ef\0\u01ef\0\u040b\0\u01ef\0\u01ef\0\u01ef"+ - "\0\u01ef\0\u0438\0\u0465\0\u01ef\0\u0492\0\u01ef\0\u04bf\0\u04ec"+ - "\0\u0519\0\u0546\0\u0573\0\u01ef\0\u01ef\0\u05a0\0\u0249\0\u05cd"+ - "\0\u05fa\0\u0627\0\u0654\0\u01ef\0\u01ef\0\u01ef\0\u0681\0\u06ae"+ - "\0\u01ef\0\u01ef\0\u06db\0\u01ef\0\u01ef\0\u01ef\0\u01ef\0\u01c2"+ - "\0\u0708\0\u01ef\0\u0735\0\u0762\0\u078f\0\u07bc\0\u07e9\0\u0816"+ - "\0\u0843\0\u0870\0\u089d\0\u08ca\0\u0438\0\u01ef\0\u08f7\0\u0924"+ - "\0\u0951\0\u097e\0\u09ab\0\u09d8\0\u05a0\0\u01ef\0\u0a05\0\u0a32"+ - "\0\u0a5f\0\u0a8c\0\u0ab9\0\u06db\0\u0ae6\0\u0b13\0\u0b40\0\u0b6d"+ - "\0\u0b9a\0\u0bc7\0\u0bf4\0\u0c21\0\u0c4e\0\u0c7b\0\u0ca8\0\u01ef"+ - "\0\u0cd5\0\u0d02\0\u0d2f\0\u0d5c\0\u0d89\0\u0db6\0\u0de3\0\u0e10"+ - "\0\u0e3d\0\u0e6a\0\u0e97\0\u01ef\0\u01ef\0\u0ec4\0\u0ef1\0\u0f1e"+ - "\0\u0f4b\0\u0f78\0\u0fa5\0\u0fd2\0\u0fff\0\u102c\0\u1059\0\u1086"+ - "\0\u10b3\0\u10e0\0\u110d\0\u113a\0\u1167\0\u1194\0\u11c1\0\u11ee"+ - "\0\u121b\0\u1248\0\u1275\0\u12a2\0\u12cf\0\u12fc\0\u1329\0\u01ef"+ - "\0\u1356\0\u1383\0\u13b0\0\u10e0\0\u13dd\0\u140a\0\u1437\0\u1464"+ - "\0\u1491\0\u14be\0\u14eb\0\u1518\0\u01ef\0\u1545\0\u01ef\0\u1572"+ - "\0\u1383\0\u159f\0\u15cc\0\u15f9\0\u1626\0\u01ef\0\u1653\0\u1680"+ - "\0\u16ad\0\u16da\0\u1707\0\u1734\0\u1761\0\u178e\0\u17bb\0\u17e8"+ - "\0\u1815\0\u1842\0\u01ef\0\u186f\0\u189c\0\u18c9\0\u18f6\0\u1923"+ - "\0\u1950\0\u197d\0\u19aa\0\u01ef\0\u19d7\0\u01ef\0\u1a04\0\u1a31"+ - "\0\u1a5e\0\u1a8b\0\u1ab8\0\u1ae5\0\u1b12\0\u01ef\0\u1b3f\0\u1b6c"+ - "\0\u1b99\0\u1bc6\0\u1bf3\0\u1c20\0\u1c4d\0\u1c7a\0\u1ca7\0\u1cd4"+ - "\0\u1d01"; + "\0\0\0\70\0\160\0\250\0\340\0\u0118\0\u0150\0\u0188"+ + "\0\u01c0\0\u01f8\0\u0230\0\u0268\0\u02a0\0\u02d8\0\u0310\0\u02d8"+ + "\0\u0348\0\u02d8\0\u0380\0\u03b8\0\u03f0\0\u0428\0\u0460\0\u0498"+ + "\0\u04d0\0\u0508\0\u0540\0\u0578\0\u05b0\0\u05e8\0\u02d8\0\u02d8"+ + "\0\u02d8\0\u0620\0\u02d8\0\u02d8\0\u02d8\0\u02d8\0\u0658\0\u0690"+ + "\0\u02d8\0\u06c8\0\u02d8\0\u0700\0\u0738\0\u0770\0\u07a8\0\u07e0"+ + "\0\u02d8\0\u02d8\0\u0818\0\u0348\0\u0850\0\u0888\0\u08c0\0\u08f8"+ + "\0\u02d8\0\u02d8\0\u02d8\0\u0930\0\u0968\0\u02d8\0\u02d8\0\u09a0"+ + "\0\u02d8\0\u02d8\0\u02d8\0\u02d8\0\u09d8\0\u02d8\0\u0a10\0\u02d8"+ + "\0\u02d8\0\u02d8\0\u0a48\0\u02d8\0\u0a80\0\u0ab8\0\u0af0\0\u0b28"+ + "\0\u0b60\0\u0b98\0\u0bd0\0\u0c08\0\u0c40\0\u0c78\0\u0cb0\0\u0ce8"+ + "\0\u0d20\0\u0d58\0\u0d90\0\u0dc8\0\u0e00\0\u0658\0\u02d8\0\u0e38"+ + "\0\u0e70\0\u0ea8\0\u0ee0\0\u0f18\0\u0f50\0\u0818\0\u02d8\0\u0f88"+ + "\0\u0fc0\0\u0ff8\0\u1030\0\u1068\0\u09a0\0\u10a0\0\u10d8\0\u1110"+ + "\0\u1148\0\u1180\0\u11b8\0\u11f0\0\u1228\0\u1260\0\u1298\0\u12d0"+ + "\0\u1308\0\u1340\0\u1378\0\u13b0\0\u13e8\0\u1420\0\u1458\0\u1490"+ + "\0\u02d8\0\u14c8\0\u1500\0\u1538\0\u1570\0\u15a8\0\u15e0\0\u1618"+ + "\0\u1650\0\u1688\0\u16c0\0\u16f8\0\u1730\0\u1768\0\u17a0\0\u17d8"+ + "\0\u1810\0\u02d8\0\u1848\0\u1880\0\u18b8\0\u18f0\0\u1928\0\u1960"+ + "\0\u1998\0\u19d0\0\u1a08\0\u1a40\0\u1a78\0\u1ab0\0\u1ae8\0\u1b20"+ + "\0\u1b58\0\u1b90\0\u1bc8\0\u1c00\0\u1c38\0\u1c70\0\u1ca8\0\u1ce0"+ + "\0\u1d18\0\u02d8\0\u1d50\0\u1d88\0\u1dc0\0\u1df8\0\u1e30\0\u1e68"+ + "\0\u1ea0\0\u1ed8\0\u1f10\0\u1f48\0\u1f80\0\u1fb8\0\u1ff0\0\u2028"+ + "\0\u2060\0\u2098\0\u20d0\0\u2108\0\u02d8\0\u2140\0\u2178\0\u21b0"+ + "\0\u1c00\0\u21e8\0\u2220\0\u2258\0\u02d8\0\u2290\0\u22c8\0\u2300"+ + "\0\u2338\0\u02d8\0\u2370\0\u23a8\0\u23e0\0\u2418\0\u2450\0\u2488"+ + "\0\u24c0\0\u24f8\0\u2530\0\u2568\0\u25a0\0\u02d8\0\u25d8\0\u02d8"+ + "\0\u2610\0\u2178\0\u2648\0\u2680\0\u26b8\0\u26f0\0\u2728\0\u2760"+ + "\0\u2798\0\u27d0\0\u2808\0\u2840\0\u2878\0\u28b0\0\u28e8\0\u2920"+ + "\0\u2958\0\u2990\0\u29c8\0\u02d8\0\u02d8\0\u2a00\0\u2a38\0\u2a70"+ + "\0\u2aa8\0\u2ae0\0\u2b18\0\u2b50\0\u2b88\0\u2bc0\0\u2bf8\0\u2c30"+ + "\0\u2c68\0\u2ca0\0\u2cd8\0\u2d10\0\u2d48\0\u2d80\0\u1f80\0\u02d8"+ + "\0\u2db8\0\u2df0\0\u2e28\0\u02d8\0\u2e60\0\u2e98\0\u2ed0\0\u2f08"+ + "\0\u02d8\0\u2f40\0\u2f78\0\u2fb0\0\u2fe8\0\u3020\0\u02d8\0\u3058"+ + "\0\u3090\0\u30c8\0\u3100\0\u3138\0\u3170\0\u31a8\0\u31e0\0\u3218"+ + "\0\u3250\0\u3288\0\u02d8\0\u32c0\0\u32f8\0\u3330\0\u3368\0\u33a0"+ + "\0\u02d8\0\u33d8\0\u3410\0\u3448\0\u3480\0\u34b8\0\u34f0\0\u02d8"+ + "\0\u02d8\0\u3528\0\u3560\0\u3598\0\u35d0\0\u3608\0\u3640\0\u3678"+ + "\0\u36b0\0\u02d8\0\u02d8\0\u36e8\0\u3720\0\u3758\0\u3790\0\u37c8"+ + "\0\u3800\0\u3838\0\u3870\0\u38a8\0\u38e0\0\u3918\0\u3950\0\u3988"+ + "\0\u39c0\0\u02d8\0\u39f8\0\u3a30\0\u3a68\0\u3aa0\0\u3ad8\0\u3b10"+ + "\0\u3b48\0\u3b80\0\u3bb8\0\u3bf0\0\u3c28\0\u3c60\0\u3c98\0\u3cd0"+ + "\0\u3d08"; private static int [] zzUnpackRowMap() { - int [] result = new int[209]; + int [] result = new int[337]; int offset = 0; offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); return result; @@ -204,84 +225,126 @@ private static int zzUnpackRowMap(String packed, int offset, int [] result) { private static final int [] ZZ_TRANS = zzUnpacktrans(); private static final String ZZ_TRANS_PACKED_0 = - "\1\14\1\15\1\16\1\15\17\14\1\17\1\20\3\14"+ - "\1\21\1\14\1\22\2\14\1\23\1\14\1\24\2\14"+ - "\1\25\1\26\1\27\1\30\1\14\1\31\1\14\1\32"+ - "\1\16\1\33\1\14\1\34\1\35\1\36\1\35\2\37"+ - "\1\40\1\41\1\42\2\34\1\43\6\34\1\44\1\34"+ - "\1\20\25\34\1\36\2\34\1\0\1\45\1\16\1\45"+ - "\2\46\20\0\1\47\1\50\2\0\1\51\1\0\1\52"+ - "\6\0\1\53\5\0\1\54\1\16\1\55\1\0\1\34"+ - "\1\15\1\36\1\15\2\34\1\40\1\41\1\56\2\34"+ - "\1\43\6\34\1\44\1\57\1\20\5\34\1\60\5\34"+ - "\1\61\6\34\1\62\2\34\1\36\2\34\1\14\1\63"+ - "\1\14\1\63\1\64\1\65\2\14\1\66\2\67\1\14"+ - "\1\67\2\14\3\67\1\14\1\17\1\14\24\67\5\14"+ - "\1\63\1\14\1\63\1\64\1\65\2\14\1\66\2\70"+ - "\1\14\1\70\2\14\3\70\1\14\1\17\1\14\24\70"+ - "\5\14\1\63\1\14\1\63\1\71\1\72\6\14\1\73"+ - "\6\14\1\17\32\14\1\63\1\14\1\63\5\14\2\67"+ - "\1\14\1\67\1\74\1\14\3\67\1\14\1\17\1\14"+ - "\24\67\5\14\1\63\1\14\1\63\5\14\2\70\1\14"+ - "\1\70\1\75\1\14\3\70\1\14\1\17\1\14\24\70"+ - "\5\14\1\63\1\14\1\63\1\76\1\77\6\14\1\73"+ - "\6\14\1\17\31\14\5\0\1\100\3\0\2\100\1\0"+ - "\1\100\2\0\3\100\4\0\23\100\62\0\1\15\1\0"+ - "\1\15\7\0\1\101\43\0\1\102\47\0\1\102\33\0"+ - "\1\103\66\0\1\104\37\0\1\105\54\0\1\106\64\0"+ - "\1\107\47\0\1\110\64\0\1\111\44\0\1\112\54\0"+ - "\1\113\24\0\1\35\1\0\1\35\7\0\1\114\42\0"+ - "\1\115\1\116\1\115\46\0\1\116\15\0\1\117\42\0"+ - "\1\45\1\0\1\45\113\0\1\120\53\0\1\121\56\0"+ - "\1\122\50\0\1\123\63\0\1\124\7\0\1\125\1\126"+ - "\1\125\46\0\1\126\45\0\1\127\37\0\1\130\57\0"+ - "\1\131\24\0\1\63\1\0\1\63\7\0\1\132\52\0"+ - "\2\67\1\0\1\67\2\0\3\67\3\0\24\67\15\0"+ - "\2\70\1\0\1\70\2\0\3\70\3\0\24\70\16\0"+ - "\1\133\1\0\1\134\53\0\1\135\103\0\1\136\53\0"+ - "\1\137\62\0\1\140\41\0\1\141\66\0\1\142\50\0"+ - "\1\143\60\0\1\144\52\0\1\145\53\0\1\146\24\0"+ - "\1\147\41\0\2\117\2\0\50\117\35\0\1\150\57\0"+ - "\1\151\56\0\1\152\55\0\1\153\52\0\1\154\55\0"+ - "\1\155\52\0\1\156\60\0\1\157\24\0\1\160\55\0"+ - "\1\161\40\0\2\135\2\0\50\135\32\0\1\162\71\0"+ - "\1\163\34\0\1\164\66\0\1\165\46\0\1\166\63\0"+ - "\1\167\56\0\1\170\56\0\1\171\53\0\1\172\10\0"+ - "\2\147\2\0\50\147\43\0\1\173\60\0\1\174\44\0"+ - "\1\175\63\0\1\176\55\0\1\177\37\0\1\200\67\0"+ - "\1\201\10\0\2\160\2\0\50\160\1\0\2\202\2\0"+ - "\10\202\1\203\37\202\41\0\1\204\56\0\1\205\46\0"+ - "\1\206\64\0\1\207\37\0\1\210\26\0\3\171\45\0"+ - "\1\211\37\0\1\212\54\0\1\213\62\0\1\214\43\0"+ - "\1\215\57\0\1\216\62\0\1\217\27\0\1\220\73\0"+ - "\1\221\31\0\2\222\1\0\1\223\2\0\3\222\4\0"+ - "\23\222\4\0\2\202\2\0\5\202\2\224\1\202\1\203"+ - "\2\202\3\224\4\202\23\224\3\202\31\0\1\225\25\0"+ - "\3\205\12\0\1\226\76\0\1\227\50\0\1\230\51\0"+ - "\1\231\23\0\53\232\1\0\1\232\41\0\1\233\51\0"+ - "\1\234\33\0\1\235\76\0\1\236\54\0\1\234\32\0"+ - "\1\237\100\0\1\240\24\0\2\222\1\0\1\222\2\0"+ - "\3\222\4\0\23\222\4\0\2\241\2\0\5\241\2\222"+ - "\1\241\1\223\2\241\3\222\4\241\23\222\3\241\32\0"+ - "\1\242\24\0\3\226\115\0\1\243\55\0\1\244\30\0"+ - "\1\245\33\0\53\232\1\246\1\232\40\0\1\247\45\0"+ - "\1\250\54\0\1\251\63\0\1\252\54\0\1\253\15\0"+ - "\3\243\45\0\1\254\44\0\1\255\44\0\1\256\24\0"+ - "\3\247\12\0\1\257\55\0\1\260\1\261\74\0\1\262"+ - "\31\0\1\263\66\0\1\264\25\0\53\265\1\0\1\265"+ - "\43\0\1\266\56\0\1\267\10\0\3\257\107\0\1\270"+ - "\56\0\1\271\61\0\1\272\43\0\1\273\20\0\53\265"+ - "\1\274\1\265\34\0\1\275\64\0\1\276\36\0\1\277"+ - "\64\0\1\300\44\0\1\301\57\0\1\302\54\0\1\303"+ - "\67\0\1\304\60\0\1\150\51\0\1\305\53\0\1\306"+ - "\54\0\1\307\54\0\1\310\44\0\1\311\21\0\3\307"+ - "\45\0\1\312\45\0\1\313\53\0\1\314\13\0\53\315"+ - "\1\0\1\315\26\0\1\316\66\0\1\150\14\0\53\315"+ - "\1\317\1\315\45\0\1\320\11\0\1\321\47\0\1\321"+ - "\35\0\1\150\74\0\1\317\1\0"; + "\1\16\1\17\1\20\1\17\26\16\1\21\1\22\1\16"+ + "\1\23\2\16\1\24\1\25\1\16\1\26\1\16\1\27"+ + "\1\30\2\16\1\31\2\16\1\32\1\33\1\34\1\35"+ + "\1\16\1\36\2\16\1\37\1\20\1\40\1\16\1\41"+ + "\1\42\1\43\1\42\2\44\1\45\1\46\1\47\2\41"+ + "\1\50\15\41\1\51\1\41\1\22\31\41\1\43\2\41"+ + "\1\0\1\52\1\20\1\52\2\53\27\0\1\54\1\0"+ + "\1\55\3\0\1\56\1\0\1\57\7\0\1\60\6\0"+ + "\1\61\1\20\1\62\1\0\1\41\1\17\1\43\1\17"+ + "\2\41\1\45\1\46\1\63\2\41\1\50\15\41\1\51"+ + "\1\64\1\22\7\41\1\65\6\41\1\66\6\41\1\67"+ + "\3\41\1\43\2\41\1\16\1\70\1\16\1\70\1\71"+ + "\1\72\2\16\1\73\2\74\1\16\1\74\2\16\12\74"+ + "\1\16\1\21\1\16\30\74\5\16\1\70\1\16\1\70"+ + "\1\71\1\72\2\16\1\73\2\75\1\16\1\75\2\16"+ + "\12\75\1\16\1\21\1\16\30\75\5\16\1\70\1\16"+ + "\1\70\1\76\1\77\6\16\1\100\15\16\1\21\36\16"+ + "\1\70\1\16\1\70\5\16\2\74\1\16\1\74\1\101"+ + "\1\16\12\74\1\16\1\21\1\16\30\74\5\16\1\70"+ + "\1\16\1\70\5\16\2\75\1\16\1\75\1\102\1\16"+ + "\12\75\1\16\1\21\1\16\30\75\5\16\1\70\1\16"+ + "\1\70\1\103\1\104\6\16\1\100\15\16\1\21\35\16"+ + "\1\0\1\52\1\0\1\52\1\0\1\105\3\0\2\105"+ + "\1\0\1\105\1\0\1\106\12\105\3\0\30\105\5\0"+ + "\1\52\1\0\1\52\1\0\1\107\3\0\2\107\1\0"+ + "\1\107\1\0\1\106\12\107\3\0\30\107\4\0\2\110"+ + "\1\20\61\110\1\111\1\20\1\112\1\110\71\0\1\17"+ + "\1\0\1\17\7\0\1\113\56\0\1\114\62\0\1\114"+ + "\56\0\1\115\54\0\1\116\110\0\1\117\62\0\1\120"+ + "\64\0\1\121\52\0\1\122\12\0\1\123\54\0\1\124"+ + "\102\0\1\125\7\0\1\126\50\0\1\127\16\0\1\130"+ + "\62\0\1\131\51\0\1\132\3\0\1\133\67\0\1\134"+ + "\27\0\1\42\1\0\1\42\7\0\1\135\55\0\1\136"+ + "\1\137\1\136\61\0\1\137\15\0\1\140\55\0\1\52"+ + "\1\0\1\52\140\0\1\141\66\0\1\142\71\0\1\143"+ + "\63\0\1\144\76\0\1\145\10\0\1\146\1\147\1\146"+ + "\61\0\1\147\57\0\1\150\47\0\1\151\73\0\1\152"+ + "\27\0\1\70\1\0\1\70\7\0\1\153\65\0\2\74"+ + "\1\0\1\74\2\0\12\74\3\0\30\74\15\0\2\75"+ + "\1\0\1\75\2\0\12\75\3\0\30\75\16\0\1\154"+ + "\1\0\1\155\60\0\1\105\3\0\2\105\1\0\1\105"+ + "\2\0\12\105\3\0\30\105\11\0\1\107\3\0\2\107"+ + "\1\0\1\107\2\0\12\107\3\0\30\107\17\0\1\156"+ + "\130\0\1\157\67\0\1\160\72\0\1\161\63\0\1\162"+ + "\73\0\1\163\71\0\1\164\53\0\1\165\67\0\1\166"+ + "\102\0\1\167\45\0\1\170\105\0\1\171\65\0\1\172"+ + "\75\0\1\173\64\0\1\174\1\175\67\0\1\176\66\0"+ + "\1\177\25\0\1\200\54\0\2\140\2\0\63\140\46\0"+ + "\1\201\73\0\1\202\71\0\1\203\70\0\1\204\65\0"+ + "\1\205\70\0\1\206\65\0\1\207\73\0\1\210\25\0"+ + "\1\211\70\0\1\212\53\0\2\156\2\0\63\156\51\0"+ + "\1\213\60\0\1\214\27\0\3\161\60\0\1\215\63\0"+ + "\1\216\50\0\1\217\63\0\1\220\104\0\1\221\67\0"+ + "\1\222\60\0\1\223\74\0\1\224\72\0\1\225\35\0"+ + "\1\226\1\0\1\227\121\0\1\230\55\0\1\231\73\0"+ + "\1\232\77\0\1\233\66\0\1\234\11\0\2\200\2\0"+ + "\63\200\55\0\1\235\73\0\1\236\57\0\1\237\76\0"+ + "\1\240\70\0\1\241\50\0\1\242\104\0\1\243\11\0"+ + "\2\211\2\0\63\211\1\0\2\244\2\0\10\244\1\245"+ + "\52\244\46\0\1\246\15\0\1\247\56\0\1\250\15\0"+ + "\66\251\1\0\1\251\54\0\1\252\63\0\1\253\61\0"+ + "\1\254\74\0\1\255\65\0\1\256\67\0\1\257\100\0"+ + "\1\260\51\0\1\261\77\0\1\262\56\0\1\263\71\0"+ + "\1\264\104\0\1\265\12\0\3\233\60\0\1\266\50\0"+ + "\1\267\67\0\1\270\76\0\1\271\54\0\1\272\73\0"+ + "\1\273\76\0\1\274\30\0\1\275\117\0\1\276\33\0"+ + "\2\277\1\0\1\300\2\0\12\277\4\0\27\277\4\0"+ + "\2\244\2\0\5\244\2\301\1\244\1\245\2\244\12\301"+ + "\4\244\27\301\3\244\40\0\1\302\104\0\1\303\53\0"+ + "\1\304\27\0\66\251\1\305\1\251\50\0\1\306\101\0"+ + "\1\307\6\0\3\310\24\0\1\311\33\0\1\312\55\0"+ + "\1\313\73\0\1\314\56\0\1\315\63\0\1\316\106\0"+ + "\1\317\50\0\1\320\105\0\1\321\10\0\2\265\2\0"+ + "\60\265\1\322\2\265\1\0\66\323\1\0\1\323\53\0"+ + "\1\324\64\0\1\325\34\0\1\326\123\0\1\327\67\0"+ + "\1\325\33\0\1\330\125\0\1\331\25\0\2\277\1\0"+ + "\1\277\2\0\12\277\4\0\27\277\4\0\2\332\2\0"+ + "\5\332\2\277\1\332\1\300\2\332\12\277\4\332\27\277"+ + "\3\332\36\0\1\333\102\0\1\334\60\0\1\335\73\0"+ + "\1\336\23\0\3\307\60\0\1\337\4\0\3\310\60\0"+ + "\1\312\50\0\1\340\100\0\1\341\55\0\1\342\102\0"+ + "\1\343\11\0\3\344\14\0\1\345\43\0\1\346\46\0"+ + "\1\347\43\0\1\350\4\0\1\351\62\0\1\350\50\0"+ + "\2\352\2\353\62\352\1\265\1\353\66\323\1\354\1\323"+ + "\52\0\1\355\56\0\1\356\67\0\1\357\100\0\1\360"+ + "\74\0\1\361\70\0\1\362\61\0\1\363\63\0\1\364"+ + "\21\0\66\365\1\0\1\365\54\0\1\366\14\0\3\341"+ + "\60\0\1\367\26\0\1\370\117\0\1\371\15\0\3\344"+ + "\60\0\1\346\56\0\1\372\14\0\66\373\1\0\1\373"+ + "\45\0\1\374\75\0\1\375\55\0\1\376\26\0\2\352"+ + "\2\353\62\352\1\377\67\353\1\u0100\1\353\17\0\1\u0101"+ + "\2\0\1\u0102\117\0\1\u0103\32\0\1\u0104\117\0\1\u0105"+ + "\65\0\1\u0106\63\0\1\u0107\31\0\3\364\60\0\1\u0108"+ + "\3\0\66\365\1\u0109\1\365\1\0\3\366\60\0\1\u010a"+ + "\3\0\66\u010b\1\0\1\u010b\50\0\1\u010c\74\0\1\u010d"+ + "\67\0\1\u010e\12\0\66\373\1\u010f\1\373\52\0\1\u0110"+ + "\66\0\1\u0111\75\0\1\u0112\60\0\1\u0113\71\0\1\u0114"+ + "\74\0\1\u0115\63\0\1\u0116\61\0\1\u0117\67\0\1\u0118"+ + "\22\0\66\u0119\1\0\1\u0119\66\u011a\1\0\1\u011a\66\u010b"+ + "\1\u011b\1\u010b\60\0\1\u011c\54\0\1\u011d\50\0\1\u011e"+ + "\70\0\1\u011f\114\0\1\u0120\71\0\1\u0121\46\0\1\u0122"+ + "\102\0\1\u0123\54\0\1\u0124\104\0\1\u0125\67\0\1\u0126"+ + "\56\0\1\u0127\26\0\66\u0119\1\u0128\1\u0119\66\u011a\1\u0129"+ + "\1\u011a\43\0\1\u012a\65\0\1\u012b\73\0\1\u012c\63\0"+ + "\1\u012d\63\0\1\u012e\110\0\1\u012f\74\0\1\201\63\0"+ + "\1\u0130\11\0\3\u0125\60\0\1\u0131\20\0\1\u0132\130\0"+ + "\1\u0133\56\0\1\u0134\100\0\1\u0135\36\0\1\u0136\117\0"+ + "\1\u0137\71\0\1\u0138\66\0\1\u0139\56\0\1\u013a\22\0"+ + "\66\u013b\1\0\1\u013b\52\0\1\341\16\0\3\u0135\60\0"+ + "\1\u013c\44\0\1\u013d\73\0\1\u013e\67\0\1\u013f\76\0"+ + "\1\u0140\66\0\1\u0141\14\0\66\u013b\1\u0142\1\u013b\66\u0143"+ + "\1\0\1\u0143\56\0\1\u0144\53\0\1\u0145\63\0\1\u0146"+ + "\66\0\1\u0147\104\0\1\201\15\0\66\u0143\1\u0148\1\u0143"+ + "\57\0\1\u0149\55\0\1\u014a\67\0\1\u014b\101\0\1\u014c"+ + "\12\0\1\u014d\62\0\1\u014d\60\0\1\344\52\0\1\u014e"+ + "\76\0\1\u014f\63\0\1\201\111\0\1\u0148\56\0\1\341"+ + "\57\0\1\u0150\101\0\1\u0151\73\0\1\u0132\4\0"; private static int [] zzUnpacktrans() { - int [] result = new int[7470]; + int [] result = new int[15680]; int offset = 0; offset = zzUnpacktrans(ZZ_TRANS_PACKED_0, offset, result); return result; @@ -319,18 +382,20 @@ 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 = - "\13\0\1\11\1\1\1\11\1\1\1\11\11\1\3\11"+ + "\15\0\1\11\1\1\1\11\1\1\1\11\14\1\3\11"+ "\1\1\4\11\2\1\1\11\1\1\1\11\5\0\2\11"+ - "\6\1\3\11\2\1\2\11\1\1\4\11\1\1\1\0"+ - "\1\11\13\0\1\11\1\1\6\0\1\11\6\0\1\1"+ - "\11\0\1\1\1\11\7\0\2\1\2\0\2\11\15\0"+ - "\1\1\14\0\1\11\1\0\3\1\1\0\1\1\6\0"+ - "\1\11\1\0\1\11\6\0\1\11\1\0\1\1\6\0"+ - "\1\1\3\0\1\11\10\0\1\11\1\0\1\11\7\0"+ - "\1\11\10\0\1\1\2\0"; + "\6\1\3\11\2\1\2\11\1\1\4\11\1\1\1\11"+ + "\1\1\3\11\1\0\1\11\22\0\1\11\1\1\6\0"+ + "\1\11\6\0\1\1\21\0\1\1\1\11\7\0\2\1"+ + "\5\0\1\1\1\0\1\11\22\0\1\1\4\0\1\11"+ + "\22\0\1\11\1\0\3\1\3\0\1\11\4\0\1\11"+ + "\13\0\1\11\1\0\1\11\23\0\2\11\1\1\20\0"+ + "\1\1\1\11\3\0\1\11\4\0\1\11\5\0\1\11"+ + "\13\0\1\11\5\0\1\11\6\0\2\11\10\0\2\11"+ + "\16\0\1\11\5\0\1\1\11\0"; private static int [] zzUnpackAttribute() { - int [] result = new int[209]; + int [] result = new int[337]; int offset = 0; offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); return result; @@ -400,6 +465,7 @@ the source of the yytext() string */ public BuildGradleLexer() { this((java.io.Reader)null); } + private int genericBracketsCounter = 0; private int dependenciesBracketsCounter = 0; private boolean DependenciesStarted = false; private boolean secondEnclosingSignForMap = false; @@ -675,253 +741,324 @@ else if (zzAtEOF) { { yybegin(YYINITIAL); return BAD_CHARACTER; } // fall through - case 51: break; + case 65: break; case 2: { return SPACE_CHARACTER; } // fall through - case 52: break; + case 66: break; case 3: { return CRLF; } // fall through - case 53: break; + case 67: break; case 4: { return BACKSLASH; } // fall through - case 54: break; + case 68: break; case 5: { return RSBRACE; } // fall through - case 55: break; + case 69: break; case 6: { return LCURBRACE; } // fall through - case 56: break; + case 70: break; case 7: { return RCURBRACE; } // fall through - case 57: break; + case 71: break; case 8: { return BAD_CHARACTER; } // fall through - case 58: break; + case 72: break; case 9: { yybegin(HANDLE_DEPENDENCIES); return CRLF; } // fall through - case 59: break; + case 73: break; case 10: { yybegin(EXTRACT_GROUP_STRING); } // fall through - case 60: break; + case 74: break; case 11: { return LPARENTHESIS; } // fall through - case 61: break; + case 75: break; case 12: { return RPARENTHESIS; } // fall through - case 62: break; + case 76: break; case 13: { return LSBRACE; } // fall through - case 63: break; + case 77: break; case 14: { yybegin(STRING_DEPENDENCY); yypushback(yylength()); } // fall through - case 64: break; + case 78: break; case 15: { dependenciesBracketsCounter++ ; return LCURBRACE; } // fall through - case 65: break; + case 79: break; case 16: { if(--dependenciesBracketsCounter == 0) { yybegin(YYINITIAL);} return RCURBRACE; } // fall through - case 66: break; + case 80: break; case 17: { return QUATATION_MARK; } // fall through - case 67: break; + case 81: break; case 18: { return APOSTROPHE; } // fall through - case 68: break; + case 82: break; case 19: { yybegin(MAP_DEPENDENCY); return COMMA; } // fall through - case 69: break; + case 83: break; case 20: { return GROUP_ID; } // fall through - case 70: break; + case 84: break; case 21: { return ARTIFACT_ID; } // fall through - case 71: break; + case 85: break; case 22: { this.checkIfReturnToMapDependency(); return QUATATION_MARK; } // fall through - case 72: break; + case 86: break; case 23: { this.checkIfReturnToMapDependency(); return APOSTROPHE; } // fall through - case 73: break; + case 87: break; case 24: { yybegin(EXTRACT_ARTIFACT_STRING); return COLON; } // fall through - case 74: break; + case 88: break; case 25: { yybegin(EXTRACT_VERSION_STRING); return COLON; } // fall through - case 75: break; + case 89: break; case 26: { yybegin(STRING_DEPENDENCY); return QUATATION_MARK; } // fall through - case 76: break; + case 90: break; case 27: { yybegin(STRING_DEPENDENCY); return APOSTROPHE; } // fall through - case 77: break; + case 91: break; case 28: { yybegin(YYINITIAL); return ROOT_GROUP_VERSION_VALUE; } // fall through - case 78: break; + case 92: break; case 29: - { + { return EQUALS; } // fall through - case 79: break; + case 93: break; case 30: - { yybegin(STRING_DEPENDENCY); + { yybegin(YYINITIAL); return ROOT_GENERIC_VALUE; } // fall through - case 80: break; + case 94: break; case 31: - { yybegin(HANDLE_DEPENDENCIES); return COMMENT; + { return JLINK_COMPONENT; } // fall through - case 81: break; + case 95: break; case 32: - { yybegin(MAP_DEPENDENCY); + { genericBracketsCounter++ ; return LCURBRACE; } // fall through - case 82: break; + case 96: break; case 33: - { return LINE_COMMENT; + { if (--genericBracketsCounter == 0) { + yybegin(YYINITIAL);} return RCURBRACE; } // fall through - case 83: break; + case 97: break; case 34: - { yybegin(HANDLE_DEPENDENCIES); return LINE_COMMENT; + { } // fall through - case 84: break; + case 98: break; case 35: - { return CONFIG_NAME; + { yybegin(STRING_DEPENDENCY); } // fall through - case 85: break; + case 99: break; case 36: - { yybegin(YYINITIAL); return LINE_COMMENT; + { yybegin(HANDLE_DEPENDENCIES); return COMMENT; } // fall through - case 86: break; + case 100: break; case 37: - { return VERSION; + { yybegin(MAP_DEPENDENCY); } // fall through - case 87: break; + case 101: break; case 38: - { return JAVA; + { return LINE_COMMENT; } // fall through - case 88: break; + case 102: break; case 39: - { return MAIN; + { yybegin(HANDLE_DEPENDENCIES); return LINE_COMMENT; } // fall through - case 89: break; + case 103: break; case 40: - { yybegin(HANDLE_ARTIFACT); return NAME_KEY; + { return CONFIG_NAME; } // fall through - case 90: break; + case 104: break; case 41: - { yybegin(GET_ROOT_VALUES); return ROOT_GROUP_KEY; + { yybegin(YYINITIAL); return LINE_COMMENT; } // fall through - case 91: break; + case 105: break; case 42: - { yybegin(MAP_DEPENDENCY); yypushback(yylength()); + { return VERSION; } // fall through - case 92: break; + case 106: break; case 43: - { yybegin(HANDLE_GROUP); return GROUP_KEY; + { return JAVA; } // fall through - case 93: break; + case 107: break; case 44: - { return TEST; + { return MAIN; } // fall through - case 94: break; + case 108: break; case 45: - { yybegin(GET_ROOT_VALUES); return ROOT_VERSION_KEY; + { yybegin(GET_ROOT_VALUES); return ROOT_GROUP_KEY; } // fall through - case 95: break; + case 109: break; case 46: - { yybegin(HANDLE_VERSION); return VERSION_KEY; + { yybegin(HANDLE_ARTIFACT); return NAME_KEY; } // fall through - case 96: break; + case 110: break; case 47: - { return PLUGINS; + { return EXT; } // fall through - case 97: break; + case 111: break; case 48: - { return SOURCE_SETS; + { yybegin(BYPASS_UNNECESSARY_BLOCK); genericBracketsCounter++; return JLINK_START; } // fall through - case 98: break; + case 112: break; case 49: - { yybegin(HANDLE_DEPENDENCIES); return DEPENDENCIES; + { yybegin(MAP_DEPENDENCY); yypushback(yylength()); } // fall through - case 99: break; + case 113: break; case 50: + { yybegin(HANDLE_GROUP); return GROUP_KEY; + } + // fall through + case 114: break; + case 51: + { return TEST; + } + // fall through + case 115: break; + case 52: + { yybegin(GET_ROOT_VALUES); return ROOT_VERSION_KEY; + } + // fall through + case 116: break; + case 53: + { return TASKS; + } + // fall through + case 117: break; + case 54: + { yybegin(HANDLE_VERSION); return VERSION_KEY; + } + // fall through + case 118: break; + case 55: + { return JAVAFX; + } + // fall through + case 119: break; + case 56: + { return RUNIDE; + } + // fall through + case 120: break; + case 57: + { return PLUGINS; + } + // fall through + case 121: break; + case 58: + { return SOURCE_SETS; + } + // fall through + case 122: break; + case 59: + { return INTELLIJ; + } + // fall through + case 123: break; + case 60: + { return JLINKZIP; + } + // fall through + case 124: break; + case 61: + { yybegin(GET_GENERIC_VALUES); return ROOT_GENERIC_KEY; + } + // fall through + case 125: break; + case 62: + { yybegin(HANDLE_DEPENDENCIES); return DEPENDENCIES; + } + // fall through + case 126: break; + case 63: + { return APPLICATION; + } + // fall through + case 127: break; + case 64: { return REPOSITORIES; } // fall through - case 100: break; + case 128: break; default: zzScanError(ZZ_NO_MATCH); } diff --git a/src/main/gen/org/jboss/tools/intellij/componentanalysis/gradle/build/parser/BuildGradleParser.java b/src/main/gen/org/jboss/tools/intellij/componentanalysis/gradle/build/parser/BuildGradleParser.java index 4c0105b..a3c730a 100644 --- a/src/main/gen/org/jboss/tools/intellij/componentanalysis/gradle/build/parser/BuildGradleParser.java +++ b/src/main/gen/org/jboss/tools/intellij/componentanalysis/gradle/build/parser/BuildGradleParser.java @@ -334,6 +334,118 @@ private static boolean group_map_4(PsiBuilder b, int l) { return r; } + /* ********************************************************** */ + // (JLINK_COMPONENT)+ ((LCURBRACE) (JLINK_COMPONENT)+ (RCURBRACE) (JLINK_COMPONENT)*)* (JLINK_COMPONENT)* (LCURBRACE|RCURBRACE)* CRLF + static boolean jlink_components(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "jlink_components")) return false; + if (!nextTokenIs(b, JLINK_COMPONENT)) return false; + boolean r; + Marker m = enter_section_(b); + r = jlink_components_0(b, l + 1); + r = r && jlink_components_1(b, l + 1); + r = r && jlink_components_2(b, l + 1); + r = r && jlink_components_3(b, l + 1); + r = r && consumeToken(b, CRLF); + exit_section_(b, m, null, r); + return r; + } + + // (JLINK_COMPONENT)+ + private static boolean jlink_components_0(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "jlink_components_0")) return false; + boolean r; + Marker m = enter_section_(b); + r = consumeToken(b, JLINK_COMPONENT); + while (r) { + int c = current_position_(b); + if (!consumeToken(b, JLINK_COMPONENT)) break; + if (!empty_element_parsed_guard_(b, "jlink_components_0", c)) break; + } + exit_section_(b, m, null, r); + return r; + } + + // ((LCURBRACE) (JLINK_COMPONENT)+ (RCURBRACE) (JLINK_COMPONENT)*)* + private static boolean jlink_components_1(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "jlink_components_1")) return false; + while (true) { + int c = current_position_(b); + if (!jlink_components_1_0(b, l + 1)) break; + if (!empty_element_parsed_guard_(b, "jlink_components_1", c)) break; + } + return true; + } + + // (LCURBRACE) (JLINK_COMPONENT)+ (RCURBRACE) (JLINK_COMPONENT)* + private static boolean jlink_components_1_0(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "jlink_components_1_0")) return false; + boolean r; + Marker m = enter_section_(b); + r = consumeToken(b, LCURBRACE); + r = r && jlink_components_1_0_1(b, l + 1); + r = r && consumeToken(b, RCURBRACE); + r = r && jlink_components_1_0_3(b, l + 1); + exit_section_(b, m, null, r); + return r; + } + + // (JLINK_COMPONENT)+ + private static boolean jlink_components_1_0_1(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "jlink_components_1_0_1")) return false; + boolean r; + Marker m = enter_section_(b); + r = consumeToken(b, JLINK_COMPONENT); + while (r) { + int c = current_position_(b); + if (!consumeToken(b, JLINK_COMPONENT)) break; + if (!empty_element_parsed_guard_(b, "jlink_components_1_0_1", c)) break; + } + exit_section_(b, m, null, r); + return r; + } + + // (JLINK_COMPONENT)* + private static boolean jlink_components_1_0_3(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "jlink_components_1_0_3")) return false; + while (true) { + int c = current_position_(b); + if (!consumeToken(b, JLINK_COMPONENT)) break; + if (!empty_element_parsed_guard_(b, "jlink_components_1_0_3", c)) break; + } + return true; + } + + // (JLINK_COMPONENT)* + private static boolean jlink_components_2(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "jlink_components_2")) return false; + while (true) { + int c = current_position_(b); + if (!consumeToken(b, JLINK_COMPONENT)) break; + if (!empty_element_parsed_guard_(b, "jlink_components_2", c)) break; + } + return true; + } + + // (LCURBRACE|RCURBRACE)* + private static boolean jlink_components_3(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "jlink_components_3")) return false; + while (true) { + int c = current_position_(b); + if (!jlink_components_3_0(b, l + 1)) break; + if (!empty_element_parsed_guard_(b, "jlink_components_3", c)) break; + } + return true; + } + + // LCURBRACE|RCURBRACE + private static boolean jlink_components_3_0(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "jlink_components_3_0")) return false; + boolean r; + r = consumeToken(b, LCURBRACE); + if (!r) r = consumeToken(b, RCURBRACE); + return r; + } + /* ********************************************************** */ // artifact | comment | CRLF| SPACE_CHARACTER | others static boolean line(PsiBuilder b, int l) { @@ -429,13 +541,14 @@ private static boolean map_notation_4_0(PsiBuilder b, int l) { } /* ********************************************************** */ - // PLUGINS | root_version | root_group | LCURBRACE | RCURBRACE | DEPENDENCIES | REPOSITORIES | ID_PREFIX | TEST | SOURCE_SETS | MAIN | JAVA + // PLUGINS | root_version | root_group | root_generic_key | LCURBRACE | RCURBRACE | DEPENDENCIES | REPOSITORIES | ID_PREFIX | TEST | SOURCE_SETS | MAIN | JAVA | EXT | APPLICATION | JAVAFX | JLINK_START | jlink_components | JLINKZIP | INTELLIJ | RUNIDE | TASKS static boolean others(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "others")) return false; boolean r; r = consumeToken(b, PLUGINS); if (!r) r = root_version(b, l + 1); if (!r) r = root_group(b, l + 1); + if (!r) r = root_generic_key(b, l + 1); if (!r) r = consumeToken(b, LCURBRACE); if (!r) r = consumeToken(b, RCURBRACE); if (!r) r = consumeToken(b, DEPENDENCIES); @@ -445,35 +558,198 @@ static boolean others(PsiBuilder b, int l) { if (!r) r = consumeToken(b, SOURCE_SETS); if (!r) r = consumeToken(b, MAIN); if (!r) r = consumeToken(b, JAVA); + if (!r) r = consumeToken(b, EXT); + if (!r) r = consumeToken(b, APPLICATION); + if (!r) r = consumeToken(b, JAVAFX); + if (!r) r = consumeToken(b, JLINK_START); + if (!r) r = jlink_components(b, l + 1); + if (!r) r = consumeToken(b, JLINKZIP); + if (!r) r = consumeToken(b, INTELLIJ); + if (!r) r = consumeToken(b, RUNIDE); + if (!r) r = consumeToken(b, TASKS); return r; } /* ********************************************************** */ - // ROOT_GROUP_KEY ROOT_GROUP_VERSION_VALUE + // ROOT_GENERIC_KEY (SPACE_CHARACTER* EQUALS SPACE_CHARACTER*|SPACE_CHARACTER) ROOT_GENERIC_VALUE + static boolean root_generic_key(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "root_generic_key")) return false; + if (!nextTokenIs(b, ROOT_GENERIC_KEY)) return false; + boolean r, p; + Marker m = enter_section_(b, l, _NONE_); + r = consumeToken(b, ROOT_GENERIC_KEY); + p = r; // pin = 1 + r = r && report_error_(b, root_generic_key_1(b, l + 1)); + r = p && consumeToken(b, ROOT_GENERIC_VALUE) && r; + exit_section_(b, l, m, r, p, null); + return r || p; + } + + // SPACE_CHARACTER* EQUALS SPACE_CHARACTER*|SPACE_CHARACTER + private static boolean root_generic_key_1(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "root_generic_key_1")) return false; + boolean r; + Marker m = enter_section_(b); + r = root_generic_key_1_0(b, l + 1); + if (!r) r = consumeToken(b, SPACE_CHARACTER); + exit_section_(b, m, null, r); + return r; + } + + // SPACE_CHARACTER* EQUALS SPACE_CHARACTER* + private static boolean root_generic_key_1_0(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "root_generic_key_1_0")) return false; + boolean r; + Marker m = enter_section_(b); + r = root_generic_key_1_0_0(b, l + 1); + r = r && consumeToken(b, EQUALS); + r = r && root_generic_key_1_0_2(b, l + 1); + exit_section_(b, m, null, r); + return r; + } + + // SPACE_CHARACTER* + private static boolean root_generic_key_1_0_0(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "root_generic_key_1_0_0")) return false; + while (true) { + int c = current_position_(b); + if (!consumeToken(b, SPACE_CHARACTER)) break; + if (!empty_element_parsed_guard_(b, "root_generic_key_1_0_0", c)) break; + } + return true; + } + + // SPACE_CHARACTER* + private static boolean root_generic_key_1_0_2(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "root_generic_key_1_0_2")) return false; + while (true) { + int c = current_position_(b); + if (!consumeToken(b, SPACE_CHARACTER)) break; + if (!empty_element_parsed_guard_(b, "root_generic_key_1_0_2", c)) break; + } + return true; + } + + /* ********************************************************** */ + // ROOT_GROUP_KEY (SPACE_CHARACTER* EQUALS SPACE_CHARACTER*|SPACE_CHARACTER) ROOT_GROUP_VERSION_VALUE static boolean root_group(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "root_group")) return false; if (!nextTokenIs(b, ROOT_GROUP_KEY)) return false; boolean r, p; Marker m = enter_section_(b, l, _NONE_); - r = consumeTokens(b, 1, ROOT_GROUP_KEY, ROOT_GROUP_VERSION_VALUE); + r = consumeToken(b, ROOT_GROUP_KEY); p = r; // pin = 1 + r = r && report_error_(b, root_group_1(b, l + 1)); + r = p && consumeToken(b, ROOT_GROUP_VERSION_VALUE) && r; exit_section_(b, l, m, r, p, null); return r || p; } + // SPACE_CHARACTER* EQUALS SPACE_CHARACTER*|SPACE_CHARACTER + private static boolean root_group_1(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "root_group_1")) return false; + boolean r; + Marker m = enter_section_(b); + r = root_group_1_0(b, l + 1); + if (!r) r = consumeToken(b, SPACE_CHARACTER); + exit_section_(b, m, null, r); + return r; + } + + // SPACE_CHARACTER* EQUALS SPACE_CHARACTER* + private static boolean root_group_1_0(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "root_group_1_0")) return false; + boolean r; + Marker m = enter_section_(b); + r = root_group_1_0_0(b, l + 1); + r = r && consumeToken(b, EQUALS); + r = r && root_group_1_0_2(b, l + 1); + exit_section_(b, m, null, r); + return r; + } + + // SPACE_CHARACTER* + private static boolean root_group_1_0_0(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "root_group_1_0_0")) return false; + while (true) { + int c = current_position_(b); + if (!consumeToken(b, SPACE_CHARACTER)) break; + if (!empty_element_parsed_guard_(b, "root_group_1_0_0", c)) break; + } + return true; + } + + // SPACE_CHARACTER* + private static boolean root_group_1_0_2(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "root_group_1_0_2")) return false; + while (true) { + int c = current_position_(b); + if (!consumeToken(b, SPACE_CHARACTER)) break; + if (!empty_element_parsed_guard_(b, "root_group_1_0_2", c)) break; + } + return true; + } + /* ********************************************************** */ - // ROOT_VERSION_KEY ROOT_GROUP_VERSION_VALUE + // ROOT_VERSION_KEY (SPACE_CHARACTER* EQUALS SPACE_CHARACTER*|SPACE_CHARACTER) ROOT_GROUP_VERSION_VALUE static boolean root_version(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "root_version")) return false; if (!nextTokenIs(b, ROOT_VERSION_KEY)) return false; boolean r, p; Marker m = enter_section_(b, l, _NONE_); - r = consumeTokens(b, 1, ROOT_VERSION_KEY, ROOT_GROUP_VERSION_VALUE); + r = consumeToken(b, ROOT_VERSION_KEY); p = r; // pin = 1 + r = r && report_error_(b, root_version_1(b, l + 1)); + r = p && consumeToken(b, ROOT_GROUP_VERSION_VALUE) && r; exit_section_(b, l, m, r, p, null); return r || p; } + // SPACE_CHARACTER* EQUALS SPACE_CHARACTER*|SPACE_CHARACTER + private static boolean root_version_1(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "root_version_1")) return false; + boolean r; + Marker m = enter_section_(b); + r = root_version_1_0(b, l + 1); + if (!r) r = consumeToken(b, SPACE_CHARACTER); + exit_section_(b, m, null, r); + return r; + } + + // SPACE_CHARACTER* EQUALS SPACE_CHARACTER* + private static boolean root_version_1_0(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "root_version_1_0")) return false; + boolean r; + Marker m = enter_section_(b); + r = root_version_1_0_0(b, l + 1); + r = r && consumeToken(b, EQUALS); + r = r && root_version_1_0_2(b, l + 1); + exit_section_(b, m, null, r); + return r; + } + + // SPACE_CHARACTER* + private static boolean root_version_1_0_0(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "root_version_1_0_0")) return false; + while (true) { + int c = current_position_(b); + if (!consumeToken(b, SPACE_CHARACTER)) break; + if (!empty_element_parsed_guard_(b, "root_version_1_0_0", c)) break; + } + return true; + } + + // SPACE_CHARACTER* + private static boolean root_version_1_0_2(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "root_version_1_0_2")) return false; + while (true) { + int c = current_position_(b); + if (!consumeToken(b, SPACE_CHARACTER)) break; + if (!empty_element_parsed_guard_(b, "root_version_1_0_2", c)) break; + } + return true; + } + /* ********************************************************** */ // (SPACE_CHARACTER | LPARENTHESIS)? (gav_colon) static boolean string_notation(PsiBuilder b, int l) { diff --git a/src/main/gen/org/jboss/tools/intellij/componentanalysis/gradle/build/psi/BuildGradleTypes.java b/src/main/gen/org/jboss/tools/intellij/componentanalysis/gradle/build/psi/BuildGradleTypes.java index d4f7562..a727cec 100644 --- a/src/main/gen/org/jboss/tools/intellij/componentanalysis/gradle/build/psi/BuildGradleTypes.java +++ b/src/main/gen/org/jboss/tools/intellij/componentanalysis/gradle/build/psi/BuildGradleTypes.java @@ -15,16 +15,24 @@ public interface BuildGradleTypes { IElementType VERSION = new BuildGradleElementType("VERSION"); IElementType APOSTROPHE = new BuildGradleTokenType("'"); + IElementType APPLICATION = new BuildGradleTokenType("APPLICATION"); IElementType BACKSLASH = new BuildGradleTokenType("\\\\"); IElementType COLON = new BuildGradleTokenType(":"); IElementType COMMA = new BuildGradleTokenType(","); IElementType CONFIG_NAME = new BuildGradleTokenType("CONFIG_NAME"); IElementType CRLF = new BuildGradleTokenType("CRLF"); IElementType DEPENDENCIES = new BuildGradleTokenType("dependencies"); + IElementType EQUALS = new BuildGradleTokenType("EQUALS"); + IElementType EXT = new BuildGradleTokenType("EXT"); IElementType GROUP_ID = new BuildGradleTokenType("GROUP_ID"); IElementType GROUP_KEY = new BuildGradleTokenType("GROUP_KEY"); IElementType ID_PREFIX = new BuildGradleTokenType("ID_PREFIX"); + IElementType INTELLIJ = new BuildGradleTokenType("INTELLIJ"); IElementType JAVA = new BuildGradleTokenType("java"); + IElementType JAVAFX = new BuildGradleTokenType("JAVAFX"); + IElementType JLINKZIP = new BuildGradleTokenType("JLINKZIP"); + IElementType JLINK_COMPONENT = new BuildGradleTokenType("JLINK_COMPONENT"); + IElementType JLINK_START = new BuildGradleTokenType("JLINK_START"); IElementType LCURBRACE = new BuildGradleTokenType("{"); IElementType LINE_COMMENT = new BuildGradleTokenType("LINE_COMMENT"); IElementType LPARENTHESIS = new BuildGradleTokenType("("); @@ -35,13 +43,17 @@ public interface BuildGradleTypes { IElementType QUATATION_MARK = new BuildGradleTokenType("\""); IElementType RCURBRACE = new BuildGradleTokenType("RCURBRACE"); IElementType REPOSITORIES = new BuildGradleTokenType("repositories"); + IElementType ROOT_GENERIC_KEY = new BuildGradleTokenType("ROOT_GENERIC_KEY"); + IElementType ROOT_GENERIC_VALUE = new BuildGradleTokenType("ROOT_GENERIC_VALUE"); IElementType ROOT_GROUP_KEY = new BuildGradleTokenType("ROOT_GROUP_KEY"); IElementType ROOT_GROUP_VERSION_VALUE = new BuildGradleTokenType("ROOT_GROUP_VERSION_VALUE"); IElementType ROOT_VERSION_KEY = new BuildGradleTokenType("ROOT_VERSION_KEY"); IElementType RPARENTHESIS = new BuildGradleTokenType(")"); IElementType RSBRACE = new BuildGradleTokenType("]"); + IElementType RUNIDE = new BuildGradleTokenType("RUNIDE"); IElementType SOURCE_SETS = new BuildGradleTokenType("sourceSets"); IElementType SPACE_CHARACTER = new BuildGradleTokenType("SPACE_CHARACTER"); + IElementType TASKS = new BuildGradleTokenType("TASKS"); IElementType TEST = new BuildGradleTokenType("test"); IElementType VERSION_KEY = new BuildGradleTokenType("VERSION_KEY"); IElementType WHITE_SPACE = new BuildGradleTokenType("WHITE_SPACE"); diff --git a/src/main/java/org/jboss/tools/intellij/componentanalysis/gradle/build/buildGradle.bnf b/src/main/java/org/jboss/tools/intellij/componentanalysis/gradle/build/buildGradle.bnf index eec1107..312a7f7 100644 --- a/src/main/java/org/jboss/tools/intellij/componentanalysis/gradle/build/buildGradle.bnf +++ b/src/main/java/org/jboss/tools/intellij/componentanalysis/gradle/build/buildGradle.bnf @@ -52,10 +52,12 @@ file ::= line* private line ::= artifact | comment | CRLF| SPACE_CHARACTER | others -private others::= PLUGINS | root_version | root_group | LCURBRACE | RCURBRACE | DEPENDENCIES | REPOSITORIES | ID_PREFIX | TEST | SOURCE_SETS | MAIN | JAVA +private others::= PLUGINS | root_version | root_group | root_generic_key | LCURBRACE | RCURBRACE | DEPENDENCIES | REPOSITORIES | ID_PREFIX | TEST | SOURCE_SETS | MAIN | JAVA | EXT | APPLICATION | JAVAFX | JLINK_START | jlink_components | JLINKZIP | INTELLIJ | RUNIDE | TASKS -private root_version::= ROOT_VERSION_KEY ROOT_GROUP_VERSION_VALUE { pin=1} -private root_group::= ROOT_GROUP_KEY ROOT_GROUP_VERSION_VALUE { pin=1} +private jlink_components::= ((JLINK_COMPONENT)+ ((LCURBRACE) (JLINK_COMPONENT)+ (RCURBRACE) (JLINK_COMPONENT)*)* (JLINK_COMPONENT)* (LCURBRACE|RCURBRACE)* CRLF) +private root_generic_key::= ROOT_GENERIC_KEY (SPACE_CHARACTER* EQUALS SPACE_CHARACTER*|SPACE_CHARACTER) ROOT_GENERIC_VALUE { pin=1} +private root_version::= ROOT_VERSION_KEY (SPACE_CHARACTER* EQUALS SPACE_CHARACTER*|SPACE_CHARACTER) ROOT_GROUP_VERSION_VALUE { pin=1} +private root_group::= ROOT_GROUP_KEY (SPACE_CHARACTER* EQUALS SPACE_CHARACTER*|SPACE_CHARACTER) ROOT_GROUP_VERSION_VALUE { pin=1} artifact ::= (CONFIG_NAME)? (string_notation | map_notation ) (comment)? {pin=2} private string_notation ::= (SPACE_CHARACTER | LPARENTHESIS)? (gav_colon) {pin=2} diff --git a/src/main/java/org/jboss/tools/intellij/componentanalysis/gradle/build/buildGradle.flex b/src/main/java/org/jboss/tools/intellij/componentanalysis/gradle/build/buildGradle.flex index 40191d4..f759a31 100644 --- a/src/main/java/org/jboss/tools/intellij/componentanalysis/gradle/build/buildGradle.flex +++ b/src/main/java/org/jboss/tools/intellij/componentanalysis/gradle/build/buildGradle.flex @@ -12,6 +12,7 @@ import static org.jboss.tools.intellij.componentanalysis.gradle.build.psi.BuildG public BuildGradleLexer() { this((java.io.Reader)null); } + private int genericBracketsCounter = 0; private int dependenciesBracketsCounter = 0; private boolean DependenciesStarted = false; private boolean secondEnclosingSignForMap = false; @@ -38,11 +39,24 @@ import static org.jboss.tools.intellij.componentanalysis.gradle.build.psi.BuildG return; %eof} -PLUGINS=plugins\s*[{][^}]+[}] +PLUGINS=(plugins|runPluginVerifier|publishPlugin)\s*[{][^}]+[}] +EXT=ext\s*[{][^}]+[}] +APPLICATION=application\s*[{][^}]+[}] +JAVAFX=javafx\s*[{][^}]+[}] +JLINK_START=jlink\s*[{] +JLINK_COMPONENT=[^\n\r\r\n{}] +JLINKZIP=jlinkZip\s*[{][^}]+[}] +INTELLIJ=intellij\s*[{][^}]+[}] +RUNIDE=(runIde|runIdeForUiTests)\s*[{][^}]+[}] +TASKS=tasks.*[{][^}]+[}] + + DEPENDENCIES="dependencies" -ROOT_GROUP_KEY=group\s*[=]\s* -ROOT_GROUP_VERSION_VALUE=[a-zA-Z0-9.'-]+ -ROOT_VERSION_KEY=version\s*[=]\s* +ROOT_GROUP_KEY=group +ROOT_GENERIC_KEY=sourceCompatibility|targetCompatibility|apply plugin: +ROOT_GENERIC_VALUE=[a-zA-Z0-9.'_-]+ +ROOT_GROUP_VERSION_VALUE=[a-zA-Z0-9.'_-]+ +ROOT_VERSION_KEY=version TEST=test\s*[{][^}]+[}] REPOSITORIES=repositories\s*[{][^}]+[}]([\n|\r|\r\n][}])* SOURCE_SETS=sourceSets @@ -62,6 +76,7 @@ LCURBRACE="{" RCURBRACE="}" LPARENTHESIS = "(" RPARENTHESIS = ")" +EQUALS = "=" //ENCLOSING_SIGNS=[{APOSTROPHE}{QUATATION_MARK}]? @@ -89,6 +104,8 @@ LINE_COMMENT={SPACE_CHARACTER}{COMMENT} %state EXTRACT_ARTIFACT_STRING %state EXTRACT_VERSION_STRING %xstate GET_ROOT_VALUES +%xstate GET_GENERIC_VALUES +%xstate BYPASS_UNNECESSARY_BLOCK %% @@ -96,8 +113,17 @@ LINE_COMMENT={SPACE_CHARACTER}{COMMENT} {PLUGINS} { return PLUGINS; } {ROOT_GROUP_KEY} { yybegin(GET_ROOT_VALUES); return ROOT_GROUP_KEY; } {ROOT_VERSION_KEY} { yybegin(GET_ROOT_VALUES); return ROOT_VERSION_KEY; } + {ROOT_GENERIC_KEY} { yybegin(GET_GENERIC_VALUES); return ROOT_GENERIC_KEY; } {REPOSITORIES} { return REPOSITORIES; } {TEST} { return TEST; } + {EXT} { return EXT; } + {APPLICATION} { return APPLICATION; } + {JAVAFX} { return JAVAFX; } + {JLINK_START} { yybegin(BYPASS_UNNECESSARY_BLOCK); genericBracketsCounter++; return JLINK_START; } + {JLINKZIP} { return JLINKZIP; } + {INTELLIJ} { return INTELLIJ; } + {RUNIDE} { return RUNIDE; } + {TASKS} { return TASKS; } {SOURCE_SETS} { return SOURCE_SETS; } {MAIN} { return MAIN; } {JAVA} { return JAVA; } @@ -110,8 +136,24 @@ LINE_COMMENT={SPACE_CHARACTER}{COMMENT} } { + {EQUALS} { return EQUALS; } + {SPACE_CHARACTER} { return SPACE_CHARACTER; } {ROOT_GROUP_VERSION_VALUE} { yybegin(YYINITIAL); return ROOT_GROUP_VERSION_VALUE; } } +{ + {EQUALS} { return EQUALS; } + {SPACE_CHARACTER} { return SPACE_CHARACTER; } + {ROOT_GENERIC_VALUE} { yybegin(YYINITIAL); return ROOT_GENERIC_VALUE; } +} + + { + {CRLF} { return CRLF; } + {JLINK_COMPONENT} { return JLINK_COMPONENT; } + {LCURBRACE} { genericBracketsCounter++ ; return LCURBRACE; } + {RCURBRACE} { if (--genericBracketsCounter == 0) { + yybegin(YYINITIAL);} return RCURBRACE; } +} + { {LCURBRACE} { dependenciesBracketsCounter++ ; return LCURBRACE; }