From 6188ae1cd1129ac89c6ee31f9691a4f79910ad7b Mon Sep 17 00:00:00 2001 From: nosharp Date: Fri, 12 Jun 2020 20:14:28 +0100 Subject: [PATCH 1/4] Class names can be members of tables. --- .idea/compiler.xml | 2 +- .idea/misc.xml | 20 - src/main/java/org/luapp/language/Luapp.java | 4 +- .../org/luapp/language/generator/luapp.interp | 2 +- .../language/generator/luappBaseListener.java | 2 +- .../language/generator/luappBaseVisitor.java | 2 +- .../luapp/language/generator/luappLexer.java | 2 +- .../language/generator/luappListener.java | 2 +- .../luapp/language/generator/luappParser.java | 901 +++++++++--------- .../language/generator/luappVisitor.java | 2 +- .../language/handlers/NewClassHandler.java | 18 + .../luapp/language/handlers/SafeHandler.java | 2 +- .../language/handlers/StatementHandler.java | 18 +- .../listeners/MasterLuaPPListener.java | 2 - .../java/org/luapp/language/parser/luapp.g4 | 6 +- src/main/java/org/luapp/language/test.lpp | 18 +- src/main/java/org/luapp/language/test.lua | 35 +- .../luapp/language/watcher/FileWatcher.java | 4 + 18 files changed, 522 insertions(+), 520 deletions(-) create mode 100644 src/main/java/org/luapp/language/watcher/FileWatcher.java diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 02f409a..3edce86 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -10,7 +10,7 @@ - + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 199b578..80cd069 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,24 +1,5 @@ - - - - - - \ No newline at end of file diff --git a/src/main/java/org/luapp/language/Luapp.java b/src/main/java/org/luapp/language/Luapp.java index 9247a6c..2f520d6 100644 --- a/src/main/java/org/luapp/language/Luapp.java +++ b/src/main/java/org/luapp/language/Luapp.java @@ -52,7 +52,9 @@ public void load(){ File newFile = new File(newPath); newFile.createNewFile(); FileWriter writeFile = new FileWriter(newPath); - writeFile.write("--[[\nWritten by nosharp (https://nosharp.cc),\ntom.bat (tomdotbat.dev),\nsamuel milton (smilton.dev)\n]]--" + this.currentResult); + writeFile.write("--[[\nWritten with Lua++.\n" + + "Don't remove this notice please\n" + + "\nhttps://github.com/LuaPlusPlus/lua-plus-plus\n]]--" + this.currentResult); writeFile.close(); }catch(IOException ex){ ex.printStackTrace(); diff --git a/src/main/java/org/luapp/language/generator/luapp.interp b/src/main/java/org/luapp/language/generator/luapp.interp index ed98e0a..dc178bb 100644 --- a/src/main/java/org/luapp/language/generator/luapp.interp +++ b/src/main/java/org/luapp/language/generator/luapp.interp @@ -220,4 +220,4 @@ safeOperator atn: -[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 82, 542, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 3, 2, 3, 2, 3, 2, 3, 3, 7, 3, 111, 10, 3, 12, 3, 14, 3, 114, 11, 3, 3, 3, 5, 3, 117, 10, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 7, 4, 153, 10, 4, 12, 4, 14, 4, 156, 11, 4, 3, 4, 3, 4, 5, 4, 160, 10, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 172, 10, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 194, 10, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 203, 10, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 215, 10, 4, 3, 4, 3, 4, 3, 4, 5, 4, 220, 10, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 227, 10, 4, 3, 4, 3, 4, 5, 4, 231, 10, 4, 3, 5, 3, 5, 5, 5, 235, 10, 5, 3, 5, 5, 5, 238, 10, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 7, 7, 247, 10, 7, 12, 7, 14, 7, 250, 11, 7, 3, 7, 3, 7, 5, 7, 254, 10, 7, 3, 8, 3, 8, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 7, 10, 263, 10, 10, 12, 10, 14, 10, 266, 11, 10, 3, 11, 3, 11, 3, 11, 7, 11, 271, 10, 11, 12, 11, 14, 11, 274, 11, 11, 3, 12, 3, 12, 3, 12, 7, 12, 279, 10, 12, 12, 12, 14, 12, 282, 11, 12, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 5, 13, 297, 10, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 7, 13, 331, 10, 13, 12, 13, 14, 13, 334, 11, 13, 3, 14, 3, 14, 7, 14, 338, 10, 14, 12, 14, 14, 14, 341, 11, 14, 3, 15, 3, 15, 6, 15, 345, 10, 15, 13, 15, 14, 15, 346, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 5, 16, 354, 10, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 5, 17, 362, 10, 17, 3, 17, 7, 17, 365, 10, 17, 12, 17, 14, 17, 368, 11, 17, 3, 18, 7, 18, 371, 10, 18, 12, 18, 14, 18, 374, 11, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 5, 18, 382, 10, 18, 3, 19, 3, 19, 5, 19, 386, 10, 19, 3, 19, 3, 19, 3, 20, 3, 20, 5, 20, 392, 10, 20, 3, 20, 3, 20, 3, 20, 5, 20, 397, 10, 20, 3, 21, 3, 21, 3, 21, 3, 22, 3, 22, 5, 22, 404, 10, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 23, 3, 23, 3, 23, 5, 23, 413, 10, 23, 3, 23, 5, 23, 416, 10, 23, 3, 24, 3, 24, 5, 24, 420, 10, 24, 3, 24, 3, 24, 3, 25, 3, 25, 3, 25, 3, 25, 7, 25, 428, 10, 25, 12, 25, 14, 25, 431, 11, 25, 3, 25, 5, 25, 434, 10, 25, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 446, 10, 26, 3, 27, 3, 27, 3, 28, 3, 28, 3, 29, 3, 29, 3, 30, 3, 30, 3, 31, 3, 31, 3, 32, 3, 32, 3, 33, 3, 33, 3, 34, 3, 34, 3, 35, 3, 35, 3, 36, 3, 36, 3, 37, 3, 37, 3, 38, 3, 38, 3, 39, 3, 39, 3, 39, 3, 39, 3, 40, 3, 40, 3, 40, 3, 40, 3, 41, 3, 41, 3, 41, 3, 41, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 43, 3, 43, 3, 44, 3, 44, 3, 44, 6, 44, 494, 10, 44, 13, 44, 14, 44, 495, 3, 44, 3, 44, 3, 45, 3, 45, 3, 45, 5, 45, 503, 10, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 46, 3, 46, 3, 46, 5, 46, 512, 10, 46, 3, 47, 3, 47, 3, 47, 3, 47, 7, 47, 518, 10, 47, 12, 47, 14, 47, 521, 11, 47, 3, 47, 3, 47, 3, 48, 3, 48, 3, 48, 3, 49, 3, 49, 3, 49, 3, 50, 3, 50, 3, 50, 3, 51, 3, 51, 3, 51, 3, 52, 3, 52, 3, 52, 3, 53, 3, 53, 3, 53, 2, 3, 24, 54, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 2, 11, 4, 2, 3, 3, 17, 17, 3, 2, 40, 45, 3, 2, 47, 48, 3, 2, 49, 52, 3, 2, 53, 57, 5, 2, 48, 48, 55, 55, 58, 59, 3, 2, 75, 78, 3, 2, 72, 74, 3, 2, 63, 64, 2, 569, 2, 106, 3, 2, 2, 2, 4, 112, 3, 2, 2, 2, 6, 230, 3, 2, 2, 2, 8, 232, 3, 2, 2, 2, 10, 239, 3, 2, 2, 2, 12, 243, 3, 2, 2, 2, 14, 255, 3, 2, 2, 2, 16, 257, 3, 2, 2, 2, 18, 259, 3, 2, 2, 2, 20, 267, 3, 2, 2, 2, 22, 275, 3, 2, 2, 2, 24, 296, 3, 2, 2, 2, 26, 335, 3, 2, 2, 2, 28, 342, 3, 2, 2, 2, 30, 353, 3, 2, 2, 2, 32, 361, 3, 2, 2, 2, 34, 372, 3, 2, 2, 2, 36, 385, 3, 2, 2, 2, 38, 396, 3, 2, 2, 2, 40, 398, 3, 2, 2, 2, 42, 401, 3, 2, 2, 2, 44, 415, 3, 2, 2, 2, 46, 417, 3, 2, 2, 2, 48, 423, 3, 2, 2, 2, 50, 445, 3, 2, 2, 2, 52, 447, 3, 2, 2, 2, 54, 449, 3, 2, 2, 2, 56, 451, 3, 2, 2, 2, 58, 453, 3, 2, 2, 2, 60, 455, 3, 2, 2, 2, 62, 457, 3, 2, 2, 2, 64, 459, 3, 2, 2, 2, 66, 461, 3, 2, 2, 2, 68, 463, 3, 2, 2, 2, 70, 465, 3, 2, 2, 2, 72, 467, 3, 2, 2, 2, 74, 469, 3, 2, 2, 2, 76, 471, 3, 2, 2, 2, 78, 475, 3, 2, 2, 2, 80, 479, 3, 2, 2, 2, 82, 483, 3, 2, 2, 2, 84, 488, 3, 2, 2, 2, 86, 490, 3, 2, 2, 2, 88, 499, 3, 2, 2, 2, 90, 511, 3, 2, 2, 2, 92, 519, 3, 2, 2, 2, 94, 524, 3, 2, 2, 2, 96, 527, 3, 2, 2, 2, 98, 530, 3, 2, 2, 2, 100, 533, 3, 2, 2, 2, 102, 536, 3, 2, 2, 2, 104, 539, 3, 2, 2, 2, 106, 107, 5, 4, 3, 2, 107, 108, 7, 2, 2, 3, 108, 3, 3, 2, 2, 2, 109, 111, 5, 6, 4, 2, 110, 109, 3, 2, 2, 2, 111, 114, 3, 2, 2, 2, 112, 110, 3, 2, 2, 2, 112, 113, 3, 2, 2, 2, 113, 116, 3, 2, 2, 2, 114, 112, 3, 2, 2, 2, 115, 117, 5, 8, 5, 2, 116, 115, 3, 2, 2, 2, 116, 117, 3, 2, 2, 2, 117, 5, 3, 2, 2, 2, 118, 231, 7, 3, 2, 2, 119, 120, 5, 18, 10, 2, 120, 121, 7, 4, 2, 2, 121, 122, 5, 22, 12, 2, 122, 231, 3, 2, 2, 2, 123, 231, 5, 28, 15, 2, 124, 231, 5, 10, 6, 2, 125, 231, 7, 5, 2, 2, 126, 127, 7, 6, 2, 2, 127, 231, 7, 71, 2, 2, 128, 129, 7, 7, 2, 2, 129, 130, 5, 4, 3, 2, 130, 131, 7, 8, 2, 2, 131, 231, 3, 2, 2, 2, 132, 133, 7, 9, 2, 2, 133, 134, 5, 24, 13, 2, 134, 135, 7, 7, 2, 2, 135, 136, 5, 4, 3, 2, 136, 137, 7, 8, 2, 2, 137, 231, 3, 2, 2, 2, 138, 139, 7, 10, 2, 2, 139, 140, 5, 4, 3, 2, 140, 141, 7, 11, 2, 2, 141, 142, 5, 24, 13, 2, 142, 231, 3, 2, 2, 2, 143, 144, 7, 12, 2, 2, 144, 145, 5, 24, 13, 2, 145, 146, 7, 13, 2, 2, 146, 154, 5, 4, 3, 2, 147, 148, 7, 14, 2, 2, 148, 149, 5, 24, 13, 2, 149, 150, 7, 13, 2, 2, 150, 151, 5, 4, 3, 2, 151, 153, 3, 2, 2, 2, 152, 147, 3, 2, 2, 2, 153, 156, 3, 2, 2, 2, 154, 152, 3, 2, 2, 2, 154, 155, 3, 2, 2, 2, 155, 159, 3, 2, 2, 2, 156, 154, 3, 2, 2, 2, 157, 158, 7, 15, 2, 2, 158, 160, 5, 4, 3, 2, 159, 157, 3, 2, 2, 2, 159, 160, 3, 2, 2, 2, 160, 161, 3, 2, 2, 2, 161, 162, 7, 8, 2, 2, 162, 231, 3, 2, 2, 2, 163, 164, 7, 16, 2, 2, 164, 165, 7, 71, 2, 2, 165, 166, 7, 4, 2, 2, 166, 167, 5, 24, 13, 2, 167, 168, 7, 17, 2, 2, 168, 171, 5, 24, 13, 2, 169, 170, 7, 17, 2, 2, 170, 172, 5, 24, 13, 2, 171, 169, 3, 2, 2, 2, 171, 172, 3, 2, 2, 2, 172, 173, 3, 2, 2, 2, 173, 174, 7, 7, 2, 2, 174, 175, 5, 4, 3, 2, 175, 176, 7, 8, 2, 2, 176, 231, 3, 2, 2, 2, 177, 178, 7, 16, 2, 2, 178, 179, 5, 20, 11, 2, 179, 180, 7, 18, 2, 2, 180, 181, 5, 22, 12, 2, 181, 182, 7, 7, 2, 2, 182, 183, 5, 4, 3, 2, 183, 184, 7, 8, 2, 2, 184, 231, 3, 2, 2, 2, 185, 186, 7, 19, 2, 2, 186, 187, 5, 12, 7, 2, 187, 188, 5, 42, 22, 2, 188, 231, 3, 2, 2, 2, 189, 190, 7, 20, 2, 2, 190, 193, 5, 14, 8, 2, 191, 192, 7, 21, 2, 2, 192, 194, 5, 16, 9, 2, 193, 191, 3, 2, 2, 2, 193, 194, 3, 2, 2, 2, 194, 195, 3, 2, 2, 2, 195, 196, 5, 92, 47, 2, 196, 231, 3, 2, 2, 2, 197, 198, 7, 22, 2, 2, 198, 199, 7, 20, 2, 2, 199, 202, 5, 14, 8, 2, 200, 201, 7, 21, 2, 2, 201, 203, 5, 16, 9, 2, 202, 200, 3, 2, 2, 2, 202, 203, 3, 2, 2, 2, 203, 204, 3, 2, 2, 2, 204, 205, 5, 92, 47, 2, 205, 231, 3, 2, 2, 2, 206, 207, 7, 22, 2, 2, 207, 208, 7, 19, 2, 2, 208, 209, 7, 71, 2, 2, 209, 231, 5, 42, 22, 2, 210, 211, 7, 22, 2, 2, 211, 214, 5, 20, 11, 2, 212, 213, 7, 4, 2, 2, 213, 215, 5, 22, 12, 2, 214, 212, 3, 2, 2, 2, 214, 215, 3, 2, 2, 2, 215, 231, 3, 2, 2, 2, 216, 217, 7, 23, 2, 2, 217, 231, 5, 104, 53, 2, 218, 220, 7, 22, 2, 2, 219, 218, 3, 2, 2, 2, 219, 220, 3, 2, 2, 2, 220, 221, 3, 2, 2, 2, 221, 222, 5, 20, 11, 2, 222, 223, 7, 4, 2, 2, 223, 224, 5, 76, 39, 2, 224, 231, 3, 2, 2, 2, 225, 227, 7, 22, 2, 2, 226, 225, 3, 2, 2, 2, 226, 227, 3, 2, 2, 2, 227, 228, 3, 2, 2, 2, 228, 229, 7, 71, 2, 2, 229, 231, 5, 102, 52, 2, 230, 118, 3, 2, 2, 2, 230, 119, 3, 2, 2, 2, 230, 123, 3, 2, 2, 2, 230, 124, 3, 2, 2, 2, 230, 125, 3, 2, 2, 2, 230, 126, 3, 2, 2, 2, 230, 128, 3, 2, 2, 2, 230, 132, 3, 2, 2, 2, 230, 138, 3, 2, 2, 2, 230, 143, 3, 2, 2, 2, 230, 163, 3, 2, 2, 2, 230, 177, 3, 2, 2, 2, 230, 185, 3, 2, 2, 2, 230, 189, 3, 2, 2, 2, 230, 197, 3, 2, 2, 2, 230, 206, 3, 2, 2, 2, 230, 210, 3, 2, 2, 2, 230, 216, 3, 2, 2, 2, 230, 219, 3, 2, 2, 2, 230, 226, 3, 2, 2, 2, 231, 7, 3, 2, 2, 2, 232, 234, 7, 24, 2, 2, 233, 235, 5, 22, 12, 2, 234, 233, 3, 2, 2, 2, 234, 235, 3, 2, 2, 2, 235, 237, 3, 2, 2, 2, 236, 238, 7, 3, 2, 2, 237, 236, 3, 2, 2, 2, 237, 238, 3, 2, 2, 2, 238, 9, 3, 2, 2, 2, 239, 240, 7, 25, 2, 2, 240, 241, 7, 71, 2, 2, 241, 242, 7, 25, 2, 2, 242, 11, 3, 2, 2, 2, 243, 248, 7, 71, 2, 2, 244, 245, 7, 26, 2, 2, 245, 247, 7, 71, 2, 2, 246, 244, 3, 2, 2, 2, 247, 250, 3, 2, 2, 2, 248, 246, 3, 2, 2, 2, 248, 249, 3, 2, 2, 2, 249, 253, 3, 2, 2, 2, 250, 248, 3, 2, 2, 2, 251, 252, 7, 27, 2, 2, 252, 254, 7, 71, 2, 2, 253, 251, 3, 2, 2, 2, 253, 254, 3, 2, 2, 2, 254, 13, 3, 2, 2, 2, 255, 256, 7, 71, 2, 2, 256, 15, 3, 2, 2, 2, 257, 258, 7, 71, 2, 2, 258, 17, 3, 2, 2, 2, 259, 264, 5, 32, 17, 2, 260, 261, 7, 17, 2, 2, 261, 263, 5, 32, 17, 2, 262, 260, 3, 2, 2, 2, 263, 266, 3, 2, 2, 2, 264, 262, 3, 2, 2, 2, 264, 265, 3, 2, 2, 2, 265, 19, 3, 2, 2, 2, 266, 264, 3, 2, 2, 2, 267, 272, 7, 71, 2, 2, 268, 269, 7, 17, 2, 2, 269, 271, 7, 71, 2, 2, 270, 268, 3, 2, 2, 2, 271, 274, 3, 2, 2, 2, 272, 270, 3, 2, 2, 2, 272, 273, 3, 2, 2, 2, 273, 21, 3, 2, 2, 2, 274, 272, 3, 2, 2, 2, 275, 280, 5, 24, 13, 2, 276, 277, 7, 17, 2, 2, 277, 279, 5, 24, 13, 2, 278, 276, 3, 2, 2, 2, 279, 282, 3, 2, 2, 2, 280, 278, 3, 2, 2, 2, 280, 281, 3, 2, 2, 2, 281, 23, 3, 2, 2, 2, 282, 280, 3, 2, 2, 2, 283, 284, 8, 13, 1, 2, 284, 297, 7, 28, 2, 2, 285, 297, 7, 29, 2, 2, 286, 297, 7, 30, 2, 2, 287, 297, 5, 72, 37, 2, 288, 297, 5, 74, 38, 2, 289, 297, 7, 31, 2, 2, 290, 297, 5, 40, 21, 2, 291, 297, 5, 26, 14, 2, 292, 297, 5, 46, 24, 2, 293, 294, 5, 68, 35, 2, 294, 295, 5, 24, 13, 10, 295, 297, 3, 2, 2, 2, 296, 283, 3, 2, 2, 2, 296, 285, 3, 2, 2, 2, 296, 286, 3, 2, 2, 2, 296, 287, 3, 2, 2, 2, 296, 288, 3, 2, 2, 2, 296, 289, 3, 2, 2, 2, 296, 290, 3, 2, 2, 2, 296, 291, 3, 2, 2, 2, 296, 292, 3, 2, 2, 2, 296, 293, 3, 2, 2, 2, 297, 332, 3, 2, 2, 2, 298, 299, 12, 11, 2, 2, 299, 300, 5, 70, 36, 2, 300, 301, 5, 24, 13, 11, 301, 331, 3, 2, 2, 2, 302, 303, 12, 9, 2, 2, 303, 304, 5, 64, 33, 2, 304, 305, 5, 24, 13, 10, 305, 331, 3, 2, 2, 2, 306, 307, 12, 8, 2, 2, 307, 308, 5, 62, 32, 2, 308, 309, 5, 24, 13, 9, 309, 331, 3, 2, 2, 2, 310, 311, 12, 7, 2, 2, 311, 312, 5, 60, 31, 2, 312, 313, 5, 24, 13, 7, 313, 331, 3, 2, 2, 2, 314, 315, 12, 6, 2, 2, 315, 316, 5, 58, 30, 2, 316, 317, 5, 24, 13, 7, 317, 331, 3, 2, 2, 2, 318, 319, 12, 5, 2, 2, 319, 320, 5, 56, 29, 2, 320, 321, 5, 24, 13, 6, 321, 331, 3, 2, 2, 2, 322, 323, 12, 4, 2, 2, 323, 324, 5, 54, 28, 2, 324, 325, 5, 24, 13, 5, 325, 331, 3, 2, 2, 2, 326, 327, 12, 3, 2, 2, 327, 328, 5, 66, 34, 2, 328, 329, 5, 24, 13, 4, 329, 331, 3, 2, 2, 2, 330, 298, 3, 2, 2, 2, 330, 302, 3, 2, 2, 2, 330, 306, 3, 2, 2, 2, 330, 310, 3, 2, 2, 2, 330, 314, 3, 2, 2, 2, 330, 318, 3, 2, 2, 2, 330, 322, 3, 2, 2, 2, 330, 326, 3, 2, 2, 2, 331, 334, 3, 2, 2, 2, 332, 330, 3, 2, 2, 2, 332, 333, 3, 2, 2, 2, 333, 25, 3, 2, 2, 2, 334, 332, 3, 2, 2, 2, 335, 339, 5, 30, 16, 2, 336, 338, 5, 36, 19, 2, 337, 336, 3, 2, 2, 2, 338, 341, 3, 2, 2, 2, 339, 337, 3, 2, 2, 2, 339, 340, 3, 2, 2, 2, 340, 27, 3, 2, 2, 2, 341, 339, 3, 2, 2, 2, 342, 344, 5, 30, 16, 2, 343, 345, 5, 36, 19, 2, 344, 343, 3, 2, 2, 2, 345, 346, 3, 2, 2, 2, 346, 344, 3, 2, 2, 2, 346, 347, 3, 2, 2, 2, 347, 29, 3, 2, 2, 2, 348, 354, 5, 32, 17, 2, 349, 350, 7, 32, 2, 2, 350, 351, 5, 24, 13, 2, 351, 352, 7, 33, 2, 2, 352, 354, 3, 2, 2, 2, 353, 348, 3, 2, 2, 2, 353, 349, 3, 2, 2, 2, 354, 31, 3, 2, 2, 2, 355, 362, 7, 71, 2, 2, 356, 357, 7, 32, 2, 2, 357, 358, 5, 24, 13, 2, 358, 359, 7, 33, 2, 2, 359, 360, 5, 34, 18, 2, 360, 362, 3, 2, 2, 2, 361, 355, 3, 2, 2, 2, 361, 356, 3, 2, 2, 2, 362, 366, 3, 2, 2, 2, 363, 365, 5, 34, 18, 2, 364, 363, 3, 2, 2, 2, 365, 368, 3, 2, 2, 2, 366, 364, 3, 2, 2, 2, 366, 367, 3, 2, 2, 2, 367, 33, 3, 2, 2, 2, 368, 366, 3, 2, 2, 2, 369, 371, 5, 36, 19, 2, 370, 369, 3, 2, 2, 2, 371, 374, 3, 2, 2, 2, 372, 370, 3, 2, 2, 2, 372, 373, 3, 2, 2, 2, 373, 381, 3, 2, 2, 2, 374, 372, 3, 2, 2, 2, 375, 376, 7, 34, 2, 2, 376, 377, 5, 24, 13, 2, 377, 378, 7, 35, 2, 2, 378, 382, 3, 2, 2, 2, 379, 380, 7, 26, 2, 2, 380, 382, 7, 71, 2, 2, 381, 375, 3, 2, 2, 2, 381, 379, 3, 2, 2, 2, 382, 35, 3, 2, 2, 2, 383, 384, 7, 27, 2, 2, 384, 386, 7, 71, 2, 2, 385, 383, 3, 2, 2, 2, 385, 386, 3, 2, 2, 2, 386, 387, 3, 2, 2, 2, 387, 388, 5, 38, 20, 2, 388, 37, 3, 2, 2, 2, 389, 391, 7, 32, 2, 2, 390, 392, 5, 22, 12, 2, 391, 390, 3, 2, 2, 2, 391, 392, 3, 2, 2, 2, 392, 393, 3, 2, 2, 2, 393, 397, 7, 33, 2, 2, 394, 397, 5, 46, 24, 2, 395, 397, 5, 74, 38, 2, 396, 389, 3, 2, 2, 2, 396, 394, 3, 2, 2, 2, 396, 395, 3, 2, 2, 2, 397, 39, 3, 2, 2, 2, 398, 399, 7, 19, 2, 2, 399, 400, 5, 42, 22, 2, 400, 41, 3, 2, 2, 2, 401, 403, 7, 32, 2, 2, 402, 404, 5, 44, 23, 2, 403, 402, 3, 2, 2, 2, 403, 404, 3, 2, 2, 2, 404, 405, 3, 2, 2, 2, 405, 406, 7, 33, 2, 2, 406, 407, 5, 4, 3, 2, 407, 408, 7, 8, 2, 2, 408, 43, 3, 2, 2, 2, 409, 412, 5, 20, 11, 2, 410, 411, 7, 17, 2, 2, 411, 413, 7, 31, 2, 2, 412, 410, 3, 2, 2, 2, 412, 413, 3, 2, 2, 2, 413, 416, 3, 2, 2, 2, 414, 416, 7, 31, 2, 2, 415, 409, 3, 2, 2, 2, 415, 414, 3, 2, 2, 2, 416, 45, 3, 2, 2, 2, 417, 419, 7, 36, 2, 2, 418, 420, 5, 48, 25, 2, 419, 418, 3, 2, 2, 2, 419, 420, 3, 2, 2, 2, 420, 421, 3, 2, 2, 2, 421, 422, 7, 37, 2, 2, 422, 47, 3, 2, 2, 2, 423, 429, 5, 50, 26, 2, 424, 425, 5, 52, 27, 2, 425, 426, 5, 50, 26, 2, 426, 428, 3, 2, 2, 2, 427, 424, 3, 2, 2, 2, 428, 431, 3, 2, 2, 2, 429, 427, 3, 2, 2, 2, 429, 430, 3, 2, 2, 2, 430, 433, 3, 2, 2, 2, 431, 429, 3, 2, 2, 2, 432, 434, 5, 52, 27, 2, 433, 432, 3, 2, 2, 2, 433, 434, 3, 2, 2, 2, 434, 49, 3, 2, 2, 2, 435, 436, 7, 34, 2, 2, 436, 437, 5, 24, 13, 2, 437, 438, 7, 35, 2, 2, 438, 439, 7, 4, 2, 2, 439, 440, 5, 24, 13, 2, 440, 446, 3, 2, 2, 2, 441, 442, 7, 71, 2, 2, 442, 443, 7, 4, 2, 2, 443, 446, 5, 24, 13, 2, 444, 446, 5, 24, 13, 2, 445, 435, 3, 2, 2, 2, 445, 441, 3, 2, 2, 2, 445, 444, 3, 2, 2, 2, 446, 51, 3, 2, 2, 2, 447, 448, 9, 2, 2, 2, 448, 53, 3, 2, 2, 2, 449, 450, 7, 38, 2, 2, 450, 55, 3, 2, 2, 2, 451, 452, 7, 39, 2, 2, 452, 57, 3, 2, 2, 2, 453, 454, 9, 3, 2, 2, 454, 59, 3, 2, 2, 2, 455, 456, 7, 46, 2, 2, 456, 61, 3, 2, 2, 2, 457, 458, 9, 4, 2, 2, 458, 63, 3, 2, 2, 2, 459, 460, 9, 5, 2, 2, 460, 65, 3, 2, 2, 2, 461, 462, 9, 6, 2, 2, 462, 67, 3, 2, 2, 2, 463, 464, 9, 7, 2, 2, 464, 69, 3, 2, 2, 2, 465, 466, 7, 60, 2, 2, 466, 71, 3, 2, 2, 2, 467, 468, 9, 8, 2, 2, 468, 73, 3, 2, 2, 2, 469, 470, 9, 9, 2, 2, 470, 75, 3, 2, 2, 2, 471, 472, 7, 61, 2, 2, 472, 473, 5, 12, 7, 2, 473, 474, 5, 38, 20, 2, 474, 77, 3, 2, 2, 2, 475, 476, 7, 20, 2, 2, 476, 477, 7, 71, 2, 2, 477, 478, 5, 92, 47, 2, 478, 79, 3, 2, 2, 2, 479, 480, 7, 19, 2, 2, 480, 481, 5, 12, 7, 2, 481, 482, 5, 42, 22, 2, 482, 81, 3, 2, 2, 2, 483, 484, 7, 62, 2, 2, 484, 485, 7, 19, 2, 2, 485, 486, 5, 12, 7, 2, 486, 487, 5, 42, 22, 2, 487, 83, 3, 2, 2, 2, 488, 489, 9, 10, 2, 2, 489, 85, 3, 2, 2, 2, 490, 491, 7, 71, 2, 2, 491, 493, 7, 36, 2, 2, 492, 494, 5, 84, 43, 2, 493, 492, 3, 2, 2, 2, 494, 495, 3, 2, 2, 2, 495, 493, 3, 2, 2, 2, 495, 496, 3, 2, 2, 2, 496, 497, 3, 2, 2, 2, 497, 498, 7, 37, 2, 2, 498, 87, 3, 2, 2, 2, 499, 500, 7, 65, 2, 2, 500, 502, 7, 32, 2, 2, 501, 503, 5, 44, 23, 2, 502, 501, 3, 2, 2, 2, 502, 503, 3, 2, 2, 2, 503, 504, 3, 2, 2, 2, 504, 505, 7, 33, 2, 2, 505, 506, 5, 4, 3, 2, 506, 507, 7, 8, 2, 2, 507, 89, 3, 2, 2, 2, 508, 512, 5, 80, 41, 2, 509, 512, 5, 86, 44, 2, 510, 512, 5, 88, 45, 2, 511, 508, 3, 2, 2, 2, 511, 509, 3, 2, 2, 2, 511, 510, 3, 2, 2, 2, 512, 91, 3, 2, 2, 2, 513, 518, 5, 82, 42, 2, 514, 518, 5, 80, 41, 2, 515, 518, 5, 86, 44, 2, 516, 518, 5, 88, 45, 2, 517, 513, 3, 2, 2, 2, 517, 514, 3, 2, 2, 2, 517, 515, 3, 2, 2, 2, 517, 516, 3, 2, 2, 2, 518, 521, 3, 2, 2, 2, 519, 517, 3, 2, 2, 2, 519, 520, 3, 2, 2, 2, 520, 522, 3, 2, 2, 2, 521, 519, 3, 2, 2, 2, 522, 523, 7, 8, 2, 2, 523, 93, 3, 2, 2, 2, 524, 525, 7, 71, 2, 2, 525, 526, 7, 66, 2, 2, 526, 95, 3, 2, 2, 2, 527, 528, 7, 71, 2, 2, 528, 529, 7, 67, 2, 2, 529, 97, 3, 2, 2, 2, 530, 531, 7, 71, 2, 2, 531, 532, 7, 68, 2, 2, 532, 99, 3, 2, 2, 2, 533, 534, 7, 71, 2, 2, 534, 535, 7, 69, 2, 2, 535, 101, 3, 2, 2, 2, 536, 537, 7, 71, 2, 2, 537, 538, 7, 70, 2, 2, 538, 103, 3, 2, 2, 2, 539, 540, 5, 32, 17, 2, 540, 105, 3, 2, 2, 2, 45, 112, 116, 154, 159, 171, 193, 202, 214, 219, 226, 230, 234, 237, 248, 253, 264, 272, 280, 296, 330, 332, 339, 346, 353, 361, 366, 372, 381, 385, 391, 396, 403, 412, 415, 419, 429, 433, 445, 495, 502, 511, 517, 519] \ No newline at end of file +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 82, 544, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 3, 2, 3, 2, 3, 2, 3, 3, 7, 3, 111, 10, 3, 12, 3, 14, 3, 114, 11, 3, 3, 3, 5, 3, 117, 10, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 7, 4, 153, 10, 4, 12, 4, 14, 4, 156, 11, 4, 3, 4, 3, 4, 5, 4, 160, 10, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 172, 10, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 194, 10, 4, 3, 4, 3, 4, 3, 4, 5, 4, 199, 10, 4, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 205, 10, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 217, 10, 4, 3, 4, 3, 4, 3, 4, 5, 4, 222, 10, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 229, 10, 4, 3, 4, 3, 4, 5, 4, 233, 10, 4, 3, 5, 3, 5, 5, 5, 237, 10, 5, 3, 5, 5, 5, 240, 10, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 7, 7, 249, 10, 7, 12, 7, 14, 7, 252, 11, 7, 3, 7, 3, 7, 5, 7, 256, 10, 7, 3, 8, 3, 8, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 7, 10, 265, 10, 10, 12, 10, 14, 10, 268, 11, 10, 3, 11, 3, 11, 3, 11, 7, 11, 273, 10, 11, 12, 11, 14, 11, 276, 11, 11, 3, 12, 3, 12, 3, 12, 7, 12, 281, 10, 12, 12, 12, 14, 12, 284, 11, 12, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 5, 13, 299, 10, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 7, 13, 333, 10, 13, 12, 13, 14, 13, 336, 11, 13, 3, 14, 3, 14, 7, 14, 340, 10, 14, 12, 14, 14, 14, 343, 11, 14, 3, 15, 3, 15, 6, 15, 347, 10, 15, 13, 15, 14, 15, 348, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 5, 16, 356, 10, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 5, 17, 364, 10, 17, 3, 17, 7, 17, 367, 10, 17, 12, 17, 14, 17, 370, 11, 17, 3, 18, 7, 18, 373, 10, 18, 12, 18, 14, 18, 376, 11, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 5, 18, 384, 10, 18, 3, 19, 3, 19, 5, 19, 388, 10, 19, 3, 19, 3, 19, 3, 20, 3, 20, 5, 20, 394, 10, 20, 3, 20, 3, 20, 3, 20, 5, 20, 399, 10, 20, 3, 21, 3, 21, 3, 21, 3, 22, 3, 22, 5, 22, 406, 10, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 23, 3, 23, 3, 23, 5, 23, 415, 10, 23, 3, 23, 5, 23, 418, 10, 23, 3, 24, 3, 24, 5, 24, 422, 10, 24, 3, 24, 3, 24, 3, 25, 3, 25, 3, 25, 3, 25, 7, 25, 430, 10, 25, 12, 25, 14, 25, 433, 11, 25, 3, 25, 5, 25, 436, 10, 25, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 448, 10, 26, 3, 27, 3, 27, 3, 28, 3, 28, 3, 29, 3, 29, 3, 30, 3, 30, 3, 31, 3, 31, 3, 32, 3, 32, 3, 33, 3, 33, 3, 34, 3, 34, 3, 35, 3, 35, 3, 36, 3, 36, 3, 37, 3, 37, 3, 38, 3, 38, 3, 39, 3, 39, 3, 39, 3, 39, 3, 40, 3, 40, 3, 40, 3, 40, 3, 41, 3, 41, 3, 41, 3, 41, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 43, 3, 43, 3, 44, 3, 44, 3, 44, 6, 44, 496, 10, 44, 13, 44, 14, 44, 497, 3, 44, 3, 44, 3, 45, 3, 45, 3, 45, 5, 45, 505, 10, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 46, 3, 46, 3, 46, 5, 46, 514, 10, 46, 3, 47, 3, 47, 3, 47, 3, 47, 7, 47, 520, 10, 47, 12, 47, 14, 47, 523, 11, 47, 3, 47, 3, 47, 3, 48, 3, 48, 3, 48, 3, 49, 3, 49, 3, 49, 3, 50, 3, 50, 3, 50, 3, 51, 3, 51, 3, 51, 3, 52, 3, 52, 3, 52, 3, 53, 3, 53, 3, 53, 2, 3, 24, 54, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 2, 11, 4, 2, 3, 3, 17, 17, 3, 2, 40, 45, 3, 2, 47, 48, 3, 2, 49, 52, 3, 2, 53, 57, 5, 2, 48, 48, 55, 55, 58, 59, 3, 2, 75, 78, 3, 2, 72, 74, 3, 2, 63, 64, 2, 572, 2, 106, 3, 2, 2, 2, 4, 112, 3, 2, 2, 2, 6, 232, 3, 2, 2, 2, 8, 234, 3, 2, 2, 2, 10, 241, 3, 2, 2, 2, 12, 245, 3, 2, 2, 2, 14, 257, 3, 2, 2, 2, 16, 259, 3, 2, 2, 2, 18, 261, 3, 2, 2, 2, 20, 269, 3, 2, 2, 2, 22, 277, 3, 2, 2, 2, 24, 298, 3, 2, 2, 2, 26, 337, 3, 2, 2, 2, 28, 344, 3, 2, 2, 2, 30, 355, 3, 2, 2, 2, 32, 363, 3, 2, 2, 2, 34, 374, 3, 2, 2, 2, 36, 387, 3, 2, 2, 2, 38, 398, 3, 2, 2, 2, 40, 400, 3, 2, 2, 2, 42, 403, 3, 2, 2, 2, 44, 417, 3, 2, 2, 2, 46, 419, 3, 2, 2, 2, 48, 425, 3, 2, 2, 2, 50, 447, 3, 2, 2, 2, 52, 449, 3, 2, 2, 2, 54, 451, 3, 2, 2, 2, 56, 453, 3, 2, 2, 2, 58, 455, 3, 2, 2, 2, 60, 457, 3, 2, 2, 2, 62, 459, 3, 2, 2, 2, 64, 461, 3, 2, 2, 2, 66, 463, 3, 2, 2, 2, 68, 465, 3, 2, 2, 2, 70, 467, 3, 2, 2, 2, 72, 469, 3, 2, 2, 2, 74, 471, 3, 2, 2, 2, 76, 473, 3, 2, 2, 2, 78, 477, 3, 2, 2, 2, 80, 481, 3, 2, 2, 2, 82, 485, 3, 2, 2, 2, 84, 490, 3, 2, 2, 2, 86, 492, 3, 2, 2, 2, 88, 501, 3, 2, 2, 2, 90, 513, 3, 2, 2, 2, 92, 521, 3, 2, 2, 2, 94, 526, 3, 2, 2, 2, 96, 529, 3, 2, 2, 2, 98, 532, 3, 2, 2, 2, 100, 535, 3, 2, 2, 2, 102, 538, 3, 2, 2, 2, 104, 541, 3, 2, 2, 2, 106, 107, 5, 4, 3, 2, 107, 108, 7, 2, 2, 3, 108, 3, 3, 2, 2, 2, 109, 111, 5, 6, 4, 2, 110, 109, 3, 2, 2, 2, 111, 114, 3, 2, 2, 2, 112, 110, 3, 2, 2, 2, 112, 113, 3, 2, 2, 2, 113, 116, 3, 2, 2, 2, 114, 112, 3, 2, 2, 2, 115, 117, 5, 8, 5, 2, 116, 115, 3, 2, 2, 2, 116, 117, 3, 2, 2, 2, 117, 5, 3, 2, 2, 2, 118, 233, 7, 3, 2, 2, 119, 120, 5, 18, 10, 2, 120, 121, 7, 4, 2, 2, 121, 122, 5, 22, 12, 2, 122, 233, 3, 2, 2, 2, 123, 233, 5, 28, 15, 2, 124, 233, 5, 10, 6, 2, 125, 233, 7, 5, 2, 2, 126, 127, 7, 6, 2, 2, 127, 233, 7, 71, 2, 2, 128, 129, 7, 7, 2, 2, 129, 130, 5, 4, 3, 2, 130, 131, 7, 8, 2, 2, 131, 233, 3, 2, 2, 2, 132, 133, 7, 9, 2, 2, 133, 134, 5, 24, 13, 2, 134, 135, 7, 7, 2, 2, 135, 136, 5, 4, 3, 2, 136, 137, 7, 8, 2, 2, 137, 233, 3, 2, 2, 2, 138, 139, 7, 10, 2, 2, 139, 140, 5, 4, 3, 2, 140, 141, 7, 11, 2, 2, 141, 142, 5, 24, 13, 2, 142, 233, 3, 2, 2, 2, 143, 144, 7, 12, 2, 2, 144, 145, 5, 24, 13, 2, 145, 146, 7, 13, 2, 2, 146, 154, 5, 4, 3, 2, 147, 148, 7, 14, 2, 2, 148, 149, 5, 24, 13, 2, 149, 150, 7, 13, 2, 2, 150, 151, 5, 4, 3, 2, 151, 153, 3, 2, 2, 2, 152, 147, 3, 2, 2, 2, 153, 156, 3, 2, 2, 2, 154, 152, 3, 2, 2, 2, 154, 155, 3, 2, 2, 2, 155, 159, 3, 2, 2, 2, 156, 154, 3, 2, 2, 2, 157, 158, 7, 15, 2, 2, 158, 160, 5, 4, 3, 2, 159, 157, 3, 2, 2, 2, 159, 160, 3, 2, 2, 2, 160, 161, 3, 2, 2, 2, 161, 162, 7, 8, 2, 2, 162, 233, 3, 2, 2, 2, 163, 164, 7, 16, 2, 2, 164, 165, 7, 71, 2, 2, 165, 166, 7, 4, 2, 2, 166, 167, 5, 24, 13, 2, 167, 168, 7, 17, 2, 2, 168, 171, 5, 24, 13, 2, 169, 170, 7, 17, 2, 2, 170, 172, 5, 24, 13, 2, 171, 169, 3, 2, 2, 2, 171, 172, 3, 2, 2, 2, 172, 173, 3, 2, 2, 2, 173, 174, 7, 7, 2, 2, 174, 175, 5, 4, 3, 2, 175, 176, 7, 8, 2, 2, 176, 233, 3, 2, 2, 2, 177, 178, 7, 16, 2, 2, 178, 179, 5, 20, 11, 2, 179, 180, 7, 18, 2, 2, 180, 181, 5, 22, 12, 2, 181, 182, 7, 7, 2, 2, 182, 183, 5, 4, 3, 2, 183, 184, 7, 8, 2, 2, 184, 233, 3, 2, 2, 2, 185, 186, 7, 19, 2, 2, 186, 187, 5, 12, 7, 2, 187, 188, 5, 42, 22, 2, 188, 233, 3, 2, 2, 2, 189, 190, 7, 20, 2, 2, 190, 193, 5, 14, 8, 2, 191, 192, 7, 21, 2, 2, 192, 194, 5, 16, 9, 2, 193, 191, 3, 2, 2, 2, 193, 194, 3, 2, 2, 2, 194, 195, 3, 2, 2, 2, 195, 196, 5, 92, 47, 2, 196, 233, 3, 2, 2, 2, 197, 199, 7, 22, 2, 2, 198, 197, 3, 2, 2, 2, 198, 199, 3, 2, 2, 2, 199, 200, 3, 2, 2, 2, 200, 201, 7, 20, 2, 2, 201, 204, 5, 14, 8, 2, 202, 203, 7, 21, 2, 2, 203, 205, 5, 16, 9, 2, 204, 202, 3, 2, 2, 2, 204, 205, 3, 2, 2, 2, 205, 206, 3, 2, 2, 2, 206, 207, 5, 92, 47, 2, 207, 233, 3, 2, 2, 2, 208, 209, 7, 22, 2, 2, 209, 210, 7, 19, 2, 2, 210, 211, 7, 71, 2, 2, 211, 233, 5, 42, 22, 2, 212, 213, 7, 22, 2, 2, 213, 216, 5, 20, 11, 2, 214, 215, 7, 4, 2, 2, 215, 217, 5, 22, 12, 2, 216, 214, 3, 2, 2, 2, 216, 217, 3, 2, 2, 2, 217, 233, 3, 2, 2, 2, 218, 219, 7, 23, 2, 2, 219, 233, 5, 104, 53, 2, 220, 222, 7, 22, 2, 2, 221, 220, 3, 2, 2, 2, 221, 222, 3, 2, 2, 2, 222, 223, 3, 2, 2, 2, 223, 224, 5, 20, 11, 2, 224, 225, 7, 4, 2, 2, 225, 226, 5, 76, 39, 2, 226, 233, 3, 2, 2, 2, 227, 229, 7, 22, 2, 2, 228, 227, 3, 2, 2, 2, 228, 229, 3, 2, 2, 2, 229, 230, 3, 2, 2, 2, 230, 231, 7, 71, 2, 2, 231, 233, 5, 102, 52, 2, 232, 118, 3, 2, 2, 2, 232, 119, 3, 2, 2, 2, 232, 123, 3, 2, 2, 2, 232, 124, 3, 2, 2, 2, 232, 125, 3, 2, 2, 2, 232, 126, 3, 2, 2, 2, 232, 128, 3, 2, 2, 2, 232, 132, 3, 2, 2, 2, 232, 138, 3, 2, 2, 2, 232, 143, 3, 2, 2, 2, 232, 163, 3, 2, 2, 2, 232, 177, 3, 2, 2, 2, 232, 185, 3, 2, 2, 2, 232, 189, 3, 2, 2, 2, 232, 198, 3, 2, 2, 2, 232, 208, 3, 2, 2, 2, 232, 212, 3, 2, 2, 2, 232, 218, 3, 2, 2, 2, 232, 221, 3, 2, 2, 2, 232, 228, 3, 2, 2, 2, 233, 7, 3, 2, 2, 2, 234, 236, 7, 24, 2, 2, 235, 237, 5, 22, 12, 2, 236, 235, 3, 2, 2, 2, 236, 237, 3, 2, 2, 2, 237, 239, 3, 2, 2, 2, 238, 240, 7, 3, 2, 2, 239, 238, 3, 2, 2, 2, 239, 240, 3, 2, 2, 2, 240, 9, 3, 2, 2, 2, 241, 242, 7, 25, 2, 2, 242, 243, 7, 71, 2, 2, 243, 244, 7, 25, 2, 2, 244, 11, 3, 2, 2, 2, 245, 250, 7, 71, 2, 2, 246, 247, 7, 26, 2, 2, 247, 249, 7, 71, 2, 2, 248, 246, 3, 2, 2, 2, 249, 252, 3, 2, 2, 2, 250, 248, 3, 2, 2, 2, 250, 251, 3, 2, 2, 2, 251, 255, 3, 2, 2, 2, 252, 250, 3, 2, 2, 2, 253, 254, 7, 27, 2, 2, 254, 256, 7, 71, 2, 2, 255, 253, 3, 2, 2, 2, 255, 256, 3, 2, 2, 2, 256, 13, 3, 2, 2, 2, 257, 258, 5, 32, 17, 2, 258, 15, 3, 2, 2, 2, 259, 260, 5, 32, 17, 2, 260, 17, 3, 2, 2, 2, 261, 266, 5, 32, 17, 2, 262, 263, 7, 17, 2, 2, 263, 265, 5, 32, 17, 2, 264, 262, 3, 2, 2, 2, 265, 268, 3, 2, 2, 2, 266, 264, 3, 2, 2, 2, 266, 267, 3, 2, 2, 2, 267, 19, 3, 2, 2, 2, 268, 266, 3, 2, 2, 2, 269, 274, 7, 71, 2, 2, 270, 271, 7, 17, 2, 2, 271, 273, 7, 71, 2, 2, 272, 270, 3, 2, 2, 2, 273, 276, 3, 2, 2, 2, 274, 272, 3, 2, 2, 2, 274, 275, 3, 2, 2, 2, 275, 21, 3, 2, 2, 2, 276, 274, 3, 2, 2, 2, 277, 282, 5, 24, 13, 2, 278, 279, 7, 17, 2, 2, 279, 281, 5, 24, 13, 2, 280, 278, 3, 2, 2, 2, 281, 284, 3, 2, 2, 2, 282, 280, 3, 2, 2, 2, 282, 283, 3, 2, 2, 2, 283, 23, 3, 2, 2, 2, 284, 282, 3, 2, 2, 2, 285, 286, 8, 13, 1, 2, 286, 299, 7, 28, 2, 2, 287, 299, 7, 29, 2, 2, 288, 299, 7, 30, 2, 2, 289, 299, 5, 72, 37, 2, 290, 299, 5, 74, 38, 2, 291, 299, 7, 31, 2, 2, 292, 299, 5, 40, 21, 2, 293, 299, 5, 26, 14, 2, 294, 299, 5, 46, 24, 2, 295, 296, 5, 68, 35, 2, 296, 297, 5, 24, 13, 10, 297, 299, 3, 2, 2, 2, 298, 285, 3, 2, 2, 2, 298, 287, 3, 2, 2, 2, 298, 288, 3, 2, 2, 2, 298, 289, 3, 2, 2, 2, 298, 290, 3, 2, 2, 2, 298, 291, 3, 2, 2, 2, 298, 292, 3, 2, 2, 2, 298, 293, 3, 2, 2, 2, 298, 294, 3, 2, 2, 2, 298, 295, 3, 2, 2, 2, 299, 334, 3, 2, 2, 2, 300, 301, 12, 11, 2, 2, 301, 302, 5, 70, 36, 2, 302, 303, 5, 24, 13, 11, 303, 333, 3, 2, 2, 2, 304, 305, 12, 9, 2, 2, 305, 306, 5, 64, 33, 2, 306, 307, 5, 24, 13, 10, 307, 333, 3, 2, 2, 2, 308, 309, 12, 8, 2, 2, 309, 310, 5, 62, 32, 2, 310, 311, 5, 24, 13, 9, 311, 333, 3, 2, 2, 2, 312, 313, 12, 7, 2, 2, 313, 314, 5, 60, 31, 2, 314, 315, 5, 24, 13, 7, 315, 333, 3, 2, 2, 2, 316, 317, 12, 6, 2, 2, 317, 318, 5, 58, 30, 2, 318, 319, 5, 24, 13, 7, 319, 333, 3, 2, 2, 2, 320, 321, 12, 5, 2, 2, 321, 322, 5, 56, 29, 2, 322, 323, 5, 24, 13, 6, 323, 333, 3, 2, 2, 2, 324, 325, 12, 4, 2, 2, 325, 326, 5, 54, 28, 2, 326, 327, 5, 24, 13, 5, 327, 333, 3, 2, 2, 2, 328, 329, 12, 3, 2, 2, 329, 330, 5, 66, 34, 2, 330, 331, 5, 24, 13, 4, 331, 333, 3, 2, 2, 2, 332, 300, 3, 2, 2, 2, 332, 304, 3, 2, 2, 2, 332, 308, 3, 2, 2, 2, 332, 312, 3, 2, 2, 2, 332, 316, 3, 2, 2, 2, 332, 320, 3, 2, 2, 2, 332, 324, 3, 2, 2, 2, 332, 328, 3, 2, 2, 2, 333, 336, 3, 2, 2, 2, 334, 332, 3, 2, 2, 2, 334, 335, 3, 2, 2, 2, 335, 25, 3, 2, 2, 2, 336, 334, 3, 2, 2, 2, 337, 341, 5, 30, 16, 2, 338, 340, 5, 36, 19, 2, 339, 338, 3, 2, 2, 2, 340, 343, 3, 2, 2, 2, 341, 339, 3, 2, 2, 2, 341, 342, 3, 2, 2, 2, 342, 27, 3, 2, 2, 2, 343, 341, 3, 2, 2, 2, 344, 346, 5, 30, 16, 2, 345, 347, 5, 36, 19, 2, 346, 345, 3, 2, 2, 2, 347, 348, 3, 2, 2, 2, 348, 346, 3, 2, 2, 2, 348, 349, 3, 2, 2, 2, 349, 29, 3, 2, 2, 2, 350, 356, 5, 32, 17, 2, 351, 352, 7, 32, 2, 2, 352, 353, 5, 24, 13, 2, 353, 354, 7, 33, 2, 2, 354, 356, 3, 2, 2, 2, 355, 350, 3, 2, 2, 2, 355, 351, 3, 2, 2, 2, 356, 31, 3, 2, 2, 2, 357, 364, 7, 71, 2, 2, 358, 359, 7, 32, 2, 2, 359, 360, 5, 24, 13, 2, 360, 361, 7, 33, 2, 2, 361, 362, 5, 34, 18, 2, 362, 364, 3, 2, 2, 2, 363, 357, 3, 2, 2, 2, 363, 358, 3, 2, 2, 2, 364, 368, 3, 2, 2, 2, 365, 367, 5, 34, 18, 2, 366, 365, 3, 2, 2, 2, 367, 370, 3, 2, 2, 2, 368, 366, 3, 2, 2, 2, 368, 369, 3, 2, 2, 2, 369, 33, 3, 2, 2, 2, 370, 368, 3, 2, 2, 2, 371, 373, 5, 36, 19, 2, 372, 371, 3, 2, 2, 2, 373, 376, 3, 2, 2, 2, 374, 372, 3, 2, 2, 2, 374, 375, 3, 2, 2, 2, 375, 383, 3, 2, 2, 2, 376, 374, 3, 2, 2, 2, 377, 378, 7, 34, 2, 2, 378, 379, 5, 24, 13, 2, 379, 380, 7, 35, 2, 2, 380, 384, 3, 2, 2, 2, 381, 382, 7, 26, 2, 2, 382, 384, 7, 71, 2, 2, 383, 377, 3, 2, 2, 2, 383, 381, 3, 2, 2, 2, 384, 35, 3, 2, 2, 2, 385, 386, 7, 27, 2, 2, 386, 388, 7, 71, 2, 2, 387, 385, 3, 2, 2, 2, 387, 388, 3, 2, 2, 2, 388, 389, 3, 2, 2, 2, 389, 390, 5, 38, 20, 2, 390, 37, 3, 2, 2, 2, 391, 393, 7, 32, 2, 2, 392, 394, 5, 22, 12, 2, 393, 392, 3, 2, 2, 2, 393, 394, 3, 2, 2, 2, 394, 395, 3, 2, 2, 2, 395, 399, 7, 33, 2, 2, 396, 399, 5, 46, 24, 2, 397, 399, 5, 74, 38, 2, 398, 391, 3, 2, 2, 2, 398, 396, 3, 2, 2, 2, 398, 397, 3, 2, 2, 2, 399, 39, 3, 2, 2, 2, 400, 401, 7, 19, 2, 2, 401, 402, 5, 42, 22, 2, 402, 41, 3, 2, 2, 2, 403, 405, 7, 32, 2, 2, 404, 406, 5, 44, 23, 2, 405, 404, 3, 2, 2, 2, 405, 406, 3, 2, 2, 2, 406, 407, 3, 2, 2, 2, 407, 408, 7, 33, 2, 2, 408, 409, 5, 4, 3, 2, 409, 410, 7, 8, 2, 2, 410, 43, 3, 2, 2, 2, 411, 414, 5, 20, 11, 2, 412, 413, 7, 17, 2, 2, 413, 415, 7, 31, 2, 2, 414, 412, 3, 2, 2, 2, 414, 415, 3, 2, 2, 2, 415, 418, 3, 2, 2, 2, 416, 418, 7, 31, 2, 2, 417, 411, 3, 2, 2, 2, 417, 416, 3, 2, 2, 2, 418, 45, 3, 2, 2, 2, 419, 421, 7, 36, 2, 2, 420, 422, 5, 48, 25, 2, 421, 420, 3, 2, 2, 2, 421, 422, 3, 2, 2, 2, 422, 423, 3, 2, 2, 2, 423, 424, 7, 37, 2, 2, 424, 47, 3, 2, 2, 2, 425, 431, 5, 50, 26, 2, 426, 427, 5, 52, 27, 2, 427, 428, 5, 50, 26, 2, 428, 430, 3, 2, 2, 2, 429, 426, 3, 2, 2, 2, 430, 433, 3, 2, 2, 2, 431, 429, 3, 2, 2, 2, 431, 432, 3, 2, 2, 2, 432, 435, 3, 2, 2, 2, 433, 431, 3, 2, 2, 2, 434, 436, 5, 52, 27, 2, 435, 434, 3, 2, 2, 2, 435, 436, 3, 2, 2, 2, 436, 49, 3, 2, 2, 2, 437, 438, 7, 34, 2, 2, 438, 439, 5, 24, 13, 2, 439, 440, 7, 35, 2, 2, 440, 441, 7, 4, 2, 2, 441, 442, 5, 24, 13, 2, 442, 448, 3, 2, 2, 2, 443, 444, 7, 71, 2, 2, 444, 445, 7, 4, 2, 2, 445, 448, 5, 24, 13, 2, 446, 448, 5, 24, 13, 2, 447, 437, 3, 2, 2, 2, 447, 443, 3, 2, 2, 2, 447, 446, 3, 2, 2, 2, 448, 51, 3, 2, 2, 2, 449, 450, 9, 2, 2, 2, 450, 53, 3, 2, 2, 2, 451, 452, 7, 38, 2, 2, 452, 55, 3, 2, 2, 2, 453, 454, 7, 39, 2, 2, 454, 57, 3, 2, 2, 2, 455, 456, 9, 3, 2, 2, 456, 59, 3, 2, 2, 2, 457, 458, 7, 46, 2, 2, 458, 61, 3, 2, 2, 2, 459, 460, 9, 4, 2, 2, 460, 63, 3, 2, 2, 2, 461, 462, 9, 5, 2, 2, 462, 65, 3, 2, 2, 2, 463, 464, 9, 6, 2, 2, 464, 67, 3, 2, 2, 2, 465, 466, 9, 7, 2, 2, 466, 69, 3, 2, 2, 2, 467, 468, 7, 60, 2, 2, 468, 71, 3, 2, 2, 2, 469, 470, 9, 8, 2, 2, 470, 73, 3, 2, 2, 2, 471, 472, 9, 9, 2, 2, 472, 75, 3, 2, 2, 2, 473, 474, 7, 61, 2, 2, 474, 475, 5, 12, 7, 2, 475, 476, 5, 38, 20, 2, 476, 77, 3, 2, 2, 2, 477, 478, 7, 20, 2, 2, 478, 479, 7, 71, 2, 2, 479, 480, 5, 92, 47, 2, 480, 79, 3, 2, 2, 2, 481, 482, 7, 19, 2, 2, 482, 483, 5, 12, 7, 2, 483, 484, 5, 42, 22, 2, 484, 81, 3, 2, 2, 2, 485, 486, 7, 62, 2, 2, 486, 487, 7, 19, 2, 2, 487, 488, 5, 12, 7, 2, 488, 489, 5, 42, 22, 2, 489, 83, 3, 2, 2, 2, 490, 491, 9, 10, 2, 2, 491, 85, 3, 2, 2, 2, 492, 493, 7, 71, 2, 2, 493, 495, 7, 36, 2, 2, 494, 496, 5, 84, 43, 2, 495, 494, 3, 2, 2, 2, 496, 497, 3, 2, 2, 2, 497, 495, 3, 2, 2, 2, 497, 498, 3, 2, 2, 2, 498, 499, 3, 2, 2, 2, 499, 500, 7, 37, 2, 2, 500, 87, 3, 2, 2, 2, 501, 502, 7, 65, 2, 2, 502, 504, 7, 32, 2, 2, 503, 505, 5, 44, 23, 2, 504, 503, 3, 2, 2, 2, 504, 505, 3, 2, 2, 2, 505, 506, 3, 2, 2, 2, 506, 507, 7, 33, 2, 2, 507, 508, 5, 4, 3, 2, 508, 509, 7, 8, 2, 2, 509, 89, 3, 2, 2, 2, 510, 514, 5, 80, 41, 2, 511, 514, 5, 86, 44, 2, 512, 514, 5, 88, 45, 2, 513, 510, 3, 2, 2, 2, 513, 511, 3, 2, 2, 2, 513, 512, 3, 2, 2, 2, 514, 91, 3, 2, 2, 2, 515, 520, 5, 82, 42, 2, 516, 520, 5, 80, 41, 2, 517, 520, 5, 86, 44, 2, 518, 520, 5, 88, 45, 2, 519, 515, 3, 2, 2, 2, 519, 516, 3, 2, 2, 2, 519, 517, 3, 2, 2, 2, 519, 518, 3, 2, 2, 2, 520, 523, 3, 2, 2, 2, 521, 519, 3, 2, 2, 2, 521, 522, 3, 2, 2, 2, 522, 524, 3, 2, 2, 2, 523, 521, 3, 2, 2, 2, 524, 525, 7, 8, 2, 2, 525, 93, 3, 2, 2, 2, 526, 527, 7, 71, 2, 2, 527, 528, 7, 66, 2, 2, 528, 95, 3, 2, 2, 2, 529, 530, 7, 71, 2, 2, 530, 531, 7, 67, 2, 2, 531, 97, 3, 2, 2, 2, 532, 533, 7, 71, 2, 2, 533, 534, 7, 68, 2, 2, 534, 99, 3, 2, 2, 2, 535, 536, 7, 71, 2, 2, 536, 537, 7, 69, 2, 2, 537, 101, 3, 2, 2, 2, 538, 539, 7, 71, 2, 2, 539, 540, 7, 70, 2, 2, 540, 103, 3, 2, 2, 2, 541, 542, 5, 32, 17, 2, 542, 105, 3, 2, 2, 2, 46, 112, 116, 154, 159, 171, 193, 198, 204, 216, 221, 228, 232, 236, 239, 250, 255, 266, 274, 282, 298, 332, 334, 341, 348, 355, 363, 368, 374, 383, 387, 393, 398, 405, 414, 417, 421, 431, 435, 447, 497, 504, 513, 519, 521] \ No newline at end of file diff --git a/src/main/java/org/luapp/language/generator/luappBaseListener.java b/src/main/java/org/luapp/language/generator/luappBaseListener.java index dda4aed..e0f24da 100644 --- a/src/main/java/org/luapp/language/generator/luappBaseListener.java +++ b/src/main/java/org/luapp/language/generator/luappBaseListener.java @@ -1,4 +1,4 @@ -// Generated from C:/Users/Harry/Desktop/Lua/lua-plus-plus/src/main/java/org/luapp/language/parser\luapp.g4 by ANTLR 4.8 +// Generated from C:/Users/Harry/Desktop/Lua/lpp2electricboogaloo/lua-plus-plus/src/main/java/org/luapp/language/parser\luapp.g4 by ANTLR 4.8 package org.luapp.language.generator; import org.antlr.v4.runtime.ParserRuleContext; diff --git a/src/main/java/org/luapp/language/generator/luappBaseVisitor.java b/src/main/java/org/luapp/language/generator/luappBaseVisitor.java index e18ede9..dc61a93 100644 --- a/src/main/java/org/luapp/language/generator/luappBaseVisitor.java +++ b/src/main/java/org/luapp/language/generator/luappBaseVisitor.java @@ -1,4 +1,4 @@ -// Generated from C:/Users/Harry/Desktop/Lua/lua-plus-plus/src/main/java/org/luapp/language/parser\luapp.g4 by ANTLR 4.8 +// Generated from C:/Users/Harry/Desktop/Lua/lpp2electricboogaloo/lua-plus-plus/src/main/java/org/luapp/language/parser\luapp.g4 by ANTLR 4.8 package org.luapp.language.generator; import org.antlr.v4.runtime.tree.AbstractParseTreeVisitor; diff --git a/src/main/java/org/luapp/language/generator/luappLexer.java b/src/main/java/org/luapp/language/generator/luappLexer.java index 1705e83..cddf075 100644 --- a/src/main/java/org/luapp/language/generator/luappLexer.java +++ b/src/main/java/org/luapp/language/generator/luappLexer.java @@ -1,4 +1,4 @@ -// Generated from C:/Users/Harry/Desktop/Lua/lua-plus-plus/src/main/java/org/luapp/language/parser\luapp.g4 by ANTLR 4.8 +// Generated from C:/Users/Harry/Desktop/Lua/lpp2electricboogaloo/lua-plus-plus/src/main/java/org/luapp/language/parser\luapp.g4 by ANTLR 4.8 package org.luapp.language.generator; import org.antlr.v4.runtime.Lexer; import org.antlr.v4.runtime.CharStream; diff --git a/src/main/java/org/luapp/language/generator/luappListener.java b/src/main/java/org/luapp/language/generator/luappListener.java index 427ab55..5a3da7c 100644 --- a/src/main/java/org/luapp/language/generator/luappListener.java +++ b/src/main/java/org/luapp/language/generator/luappListener.java @@ -1,4 +1,4 @@ -// Generated from C:/Users/Harry/Desktop/Lua/lua-plus-plus/src/main/java/org/luapp/language/parser\luapp.g4 by ANTLR 4.8 +// Generated from C:/Users/Harry/Desktop/Lua/lpp2electricboogaloo/lua-plus-plus/src/main/java/org/luapp/language/parser\luapp.g4 by ANTLR 4.8 package org.luapp.language.generator; import org.antlr.v4.runtime.tree.ParseTreeListener; diff --git a/src/main/java/org/luapp/language/generator/luappParser.java b/src/main/java/org/luapp/language/generator/luappParser.java index 6ab187b..41c1b7c 100644 --- a/src/main/java/org/luapp/language/generator/luappParser.java +++ b/src/main/java/org/luapp/language/generator/luappParser.java @@ -1,4 +1,4 @@ -// Generated from C:/Users/Harry/Desktop/Lua/lua-plus-plus/src/main/java/org/luapp/language/parser\luapp.g4 by ANTLR 4.8 +// Generated from C:/Users/Harry/Desktop/Lua/lpp2electricboogaloo/lua-plus-plus/src/main/java/org/luapp/language/parser\luapp.g4 by ANTLR 4.8 package org.luapp.language.generator; import org.antlr.v4.runtime.atn.*; import org.antlr.v4.runtime.dfa.DFA; @@ -334,9 +334,9 @@ public final StatContext stat() throws RecognitionException { enterRule(_localctx, 4, RULE_stat); int _la; try { - setState(228); + setState(230); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,10,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,11,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { @@ -562,56 +562,64 @@ public final StatContext stat() throws RecognitionException { case 15: enterOuterAlt(_localctx, 15); { - setState(195); - match(T__19); setState(196); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==T__19) { + { + setState(195); + match(T__19); + } + } + + setState(198); match(T__17); - setState(197); + setState(199); classname(); - setState(200); + setState(202); _errHandler.sync(this); _la = _input.LA(1); if (_la==T__18) { { - setState(198); + setState(200); match(T__18); - setState(199); + setState(201); abstractclassname(); } } - setState(202); + setState(204); classbody(); } break; case 16: enterOuterAlt(_localctx, 16); { - setState(204); + setState(206); match(T__19); - setState(205); + setState(207); match(T__16); - setState(206); + setState(208); match(NAME); - setState(207); + setState(209); funcbody(); } break; case 17: enterOuterAlt(_localctx, 17); { - setState(208); + setState(210); match(T__19); - setState(209); + setState(211); namelist(); - setState(212); + setState(214); _errHandler.sync(this); _la = _input.LA(1); if (_la==T__1) { { - setState(210); + setState(212); match(T__1); - setState(211); + setState(213); explist(); } } @@ -621,49 +629,49 @@ public final StatContext stat() throws RecognitionException { case 18: enterOuterAlt(_localctx, 18); { - setState(214); + setState(216); match(T__20); - setState(215); + setState(217); safeOperator(); } break; case 19: enterOuterAlt(_localctx, 19); { - setState(217); + setState(219); _errHandler.sync(this); _la = _input.LA(1); if (_la==T__19) { { - setState(216); + setState(218); match(T__19); } } - setState(219); + setState(221); namelist(); - setState(220); + setState(222); match(T__1); - setState(221); + setState(223); newclass(); } break; case 20: enterOuterAlt(_localctx, 20); { - setState(224); + setState(226); _errHandler.sync(this); _la = _input.LA(1); if (_la==T__19) { { - setState(223); + setState(225); match(T__19); } } - setState(226); + setState(228); match(NAME); - setState(227); + setState(229); minusEqual(); } break; @@ -710,24 +718,24 @@ public final RetstatContext retstat() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(230); - match(T__21); setState(232); + match(T__21); + setState(234); _errHandler.sync(this); _la = _input.LA(1); if (((((_la - 17)) & ~0x3f) == 0 && ((1L << (_la - 17)) & ((1L << (T__16 - 17)) | (1L << (T__25 - 17)) | (1L << (T__26 - 17)) | (1L << (T__27 - 17)) | (1L << (T__28 - 17)) | (1L << (T__29 - 17)) | (1L << (T__33 - 17)) | (1L << (T__45 - 17)) | (1L << (T__52 - 17)) | (1L << (T__55 - 17)) | (1L << (T__56 - 17)) | (1L << (NAME - 17)) | (1L << (NORMALSTRING - 17)) | (1L << (CHARSTRING - 17)) | (1L << (LONGSTRING - 17)) | (1L << (INT - 17)) | (1L << (HEX - 17)) | (1L << (FLOAT - 17)) | (1L << (HEX_FLOAT - 17)))) != 0)) { { - setState(231); + setState(233); explist(); } } - setState(235); + setState(237); _errHandler.sync(this); _la = _input.LA(1); if (_la==T__0) { { - setState(234); + setState(236); match(T__0); } } @@ -772,11 +780,11 @@ public final LabelContext label() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(237); + setState(239); match(T__22); - setState(238); + setState(240); match(NAME); - setState(239); + setState(241); match(T__22); } } @@ -822,32 +830,32 @@ public final FuncnameContext funcname() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(241); + setState(243); match(NAME); - setState(246); + setState(248); _errHandler.sync(this); _la = _input.LA(1); while (_la==T__23) { { { - setState(242); + setState(244); match(T__23); - setState(243); + setState(245); match(NAME); } } - setState(248); + setState(250); _errHandler.sync(this); _la = _input.LA(1); } - setState(251); + setState(253); _errHandler.sync(this); _la = _input.LA(1); if (_la==T__24) { { - setState(249); + setState(251); match(T__24); - setState(250); + setState(252); match(NAME); } } @@ -866,7 +874,9 @@ public final FuncnameContext funcname() throws RecognitionException { } public static class ClassnameContext extends ParserRuleContext { - public TerminalNode NAME() { return getToken(luappParser.NAME, 0); } + public VarContext var() { + return getRuleContext(VarContext.class,0); + } public ClassnameContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @@ -892,8 +902,8 @@ public final ClassnameContext classname() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(253); - match(NAME); + setState(255); + var(); } } catch (RecognitionException re) { @@ -908,7 +918,9 @@ public final ClassnameContext classname() throws RecognitionException { } public static class AbstractclassnameContext extends ParserRuleContext { - public TerminalNode NAME() { return getToken(luappParser.NAME, 0); } + public VarContext var() { + return getRuleContext(VarContext.class,0); + } public AbstractclassnameContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @@ -934,8 +946,8 @@ public final AbstractclassnameContext abstractclassname() throws RecognitionExce try { enterOuterAlt(_localctx, 1); { - setState(255); - match(NAME); + setState(257); + var(); } } catch (RecognitionException re) { @@ -982,21 +994,21 @@ public final VarlistContext varlist() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(257); + setState(259); var(); - setState(262); + setState(264); _errHandler.sync(this); _la = _input.LA(1); while (_la==T__14) { { { - setState(258); + setState(260); match(T__14); - setState(259); + setState(261); var(); } } - setState(264); + setState(266); _errHandler.sync(this); _la = _input.LA(1); } @@ -1044,25 +1056,25 @@ public final NamelistContext namelist() throws RecognitionException { int _alt; enterOuterAlt(_localctx, 1); { - setState(265); + setState(267); match(NAME); - setState(270); + setState(272); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,16,_ctx); + _alt = getInterpreter().adaptivePredict(_input,17,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - setState(266); + setState(268); match(T__14); - setState(267); + setState(269); match(NAME); } } } - setState(272); + setState(274); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,16,_ctx); + _alt = getInterpreter().adaptivePredict(_input,17,_ctx); } } } @@ -1110,21 +1122,21 @@ public final ExplistContext explist() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(273); + setState(275); exp(0); - setState(278); + setState(280); _errHandler.sync(this); _la = _input.LA(1); while (_la==T__14) { { { - setState(274); + setState(276); match(T__14); - setState(275); + setState(277); exp(0); } } - setState(280); + setState(282); _errHandler.sync(this); _la = _input.LA(1); } @@ -1224,24 +1236,24 @@ private ExpContext exp(int _p) throws RecognitionException { int _alt; enterOuterAlt(_localctx, 1); { - setState(294); + setState(296); _errHandler.sync(this); switch (_input.LA(1)) { case T__25: { - setState(282); + setState(284); match(T__25); } break; case T__26: { - setState(283); + setState(285); match(T__26); } break; case T__27: { - setState(284); + setState(286); match(T__27); } break; @@ -1250,7 +1262,7 @@ private ExpContext exp(int _p) throws RecognitionException { case FLOAT: case HEX_FLOAT: { - setState(285); + setState(287); number(); } break; @@ -1258,32 +1270,32 @@ private ExpContext exp(int _p) throws RecognitionException { case CHARSTRING: case LONGSTRING: { - setState(286); + setState(288); string(); } break; case T__28: { - setState(287); + setState(289); match(T__28); } break; case T__16: { - setState(288); + setState(290); functiondef(); } break; case T__29: case NAME: { - setState(289); + setState(291); prefixexp(); } break; case T__33: { - setState(290); + setState(292); tableconstructor(); } break; @@ -1292,9 +1304,9 @@ private ExpContext exp(int _p) throws RecognitionException { case T__55: case T__56: { - setState(291); + setState(293); operatorUnary(); - setState(292); + setState(294); exp(8); } break; @@ -1302,26 +1314,26 @@ private ExpContext exp(int _p) throws RecognitionException { throw new NoViableAltException(this); } _ctx.stop = _input.LT(-1); - setState(330); + setState(332); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,20,_ctx); + _alt = getInterpreter().adaptivePredict(_input,21,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { if ( _parseListeners!=null ) triggerExitRuleEvent(); _prevctx = _localctx; { - setState(328); + setState(330); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,19,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,20,_ctx) ) { case 1: { _localctx = new ExpContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_exp); - setState(296); + setState(298); if (!(precpred(_ctx, 9))) throw new FailedPredicateException(this, "precpred(_ctx, 9)"); - setState(297); + setState(299); operatorPower(); - setState(298); + setState(300); exp(9); } break; @@ -1329,11 +1341,11 @@ private ExpContext exp(int _p) throws RecognitionException { { _localctx = new ExpContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_exp); - setState(300); + setState(302); if (!(precpred(_ctx, 7))) throw new FailedPredicateException(this, "precpred(_ctx, 7)"); - setState(301); + setState(303); operatorMulDivMod(); - setState(302); + setState(304); exp(8); } break; @@ -1341,11 +1353,11 @@ private ExpContext exp(int _p) throws RecognitionException { { _localctx = new ExpContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_exp); - setState(304); + setState(306); if (!(precpred(_ctx, 6))) throw new FailedPredicateException(this, "precpred(_ctx, 6)"); - setState(305); + setState(307); operatorAddSub(); - setState(306); + setState(308); exp(7); } break; @@ -1353,11 +1365,11 @@ private ExpContext exp(int _p) throws RecognitionException { { _localctx = new ExpContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_exp); - setState(308); + setState(310); if (!(precpred(_ctx, 5))) throw new FailedPredicateException(this, "precpred(_ctx, 5)"); - setState(309); + setState(311); operatorStrcat(); - setState(310); + setState(312); exp(5); } break; @@ -1365,11 +1377,11 @@ private ExpContext exp(int _p) throws RecognitionException { { _localctx = new ExpContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_exp); - setState(312); + setState(314); if (!(precpred(_ctx, 4))) throw new FailedPredicateException(this, "precpred(_ctx, 4)"); - setState(313); + setState(315); operatorComparison(); - setState(314); + setState(316); exp(5); } break; @@ -1377,11 +1389,11 @@ private ExpContext exp(int _p) throws RecognitionException { { _localctx = new ExpContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_exp); - setState(316); + setState(318); if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)"); - setState(317); + setState(319); operatorAnd(); - setState(318); + setState(320); exp(4); } break; @@ -1389,11 +1401,11 @@ private ExpContext exp(int _p) throws RecognitionException { { _localctx = new ExpContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_exp); - setState(320); + setState(322); if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); - setState(321); + setState(323); operatorOr(); - setState(322); + setState(324); exp(3); } break; @@ -1401,20 +1413,20 @@ private ExpContext exp(int _p) throws RecognitionException { { _localctx = new ExpContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_exp); - setState(324); + setState(326); if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(325); + setState(327); operatorBitwise(); - setState(326); + setState(328); exp(2); } break; } } } - setState(332); + setState(334); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,20,_ctx); + _alt = getInterpreter().adaptivePredict(_input,21,_ctx); } } } @@ -1465,23 +1477,23 @@ public final PrefixexpContext prefixexp() throws RecognitionException { int _alt; enterOuterAlt(_localctx, 1); { - setState(333); + setState(335); varOrExp(); - setState(337); + setState(339); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,21,_ctx); + _alt = getInterpreter().adaptivePredict(_input,22,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - setState(334); + setState(336); nameAndArgs(); } } } - setState(339); + setState(341); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,21,_ctx); + _alt = getInterpreter().adaptivePredict(_input,22,_ctx); } } } @@ -1532,9 +1544,9 @@ public final FunctioncallContext functioncall() throws RecognitionException { int _alt; enterOuterAlt(_localctx, 1); { - setState(340); + setState(342); varOrExp(); - setState(342); + setState(344); _errHandler.sync(this); _alt = 1; do { @@ -1542,7 +1554,7 @@ public final FunctioncallContext functioncall() throws RecognitionException { case 1: { { - setState(341); + setState(343); nameAndArgs(); } } @@ -1550,9 +1562,9 @@ public final FunctioncallContext functioncall() throws RecognitionException { default: throw new NoViableAltException(this); } - setState(344); + setState(346); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,22,_ctx); + _alt = getInterpreter().adaptivePredict(_input,23,_ctx); } while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ); } } @@ -1597,24 +1609,24 @@ public final VarOrExpContext varOrExp() throws RecognitionException { VarOrExpContext _localctx = new VarOrExpContext(_ctx, getState()); enterRule(_localctx, 28, RULE_varOrExp); try { - setState(351); + setState(353); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,23,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,24,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(346); + setState(348); var(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(347); + setState(349); match(T__29); - setState(348); + setState(350); exp(0); - setState(349); + setState(351); match(T__30); } break; @@ -1668,45 +1680,45 @@ public final VarContext var() throws RecognitionException { int _alt; enterOuterAlt(_localctx, 1); { - setState(359); + setState(361); _errHandler.sync(this); switch (_input.LA(1)) { case NAME: { - setState(353); + setState(355); match(NAME); } break; case T__29: { - setState(354); + setState(356); match(T__29); - setState(355); + setState(357); exp(0); - setState(356); + setState(358); match(T__30); - setState(357); + setState(359); varSuffix(); } break; default: throw new NoViableAltException(this); } - setState(364); + setState(366); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,25,_ctx); + _alt = getInterpreter().adaptivePredict(_input,26,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - setState(361); + setState(363); varSuffix(); } } } - setState(366); + setState(368); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,25,_ctx); + _alt = getInterpreter().adaptivePredict(_input,26,_ctx); } } } @@ -1758,38 +1770,38 @@ public final VarSuffixContext varSuffix() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(370); + setState(372); _errHandler.sync(this); _la = _input.LA(1); while (((((_la - 25)) & ~0x3f) == 0 && ((1L << (_la - 25)) & ((1L << (T__24 - 25)) | (1L << (T__29 - 25)) | (1L << (T__33 - 25)) | (1L << (NORMALSTRING - 25)) | (1L << (CHARSTRING - 25)) | (1L << (LONGSTRING - 25)))) != 0)) { { { - setState(367); + setState(369); nameAndArgs(); } } - setState(372); + setState(374); _errHandler.sync(this); _la = _input.LA(1); } - setState(379); + setState(381); _errHandler.sync(this); switch (_input.LA(1)) { case T__31: { - setState(373); + setState(375); match(T__31); - setState(374); + setState(376); exp(0); - setState(375); + setState(377); match(T__32); } break; case T__23: { - setState(377); + setState(379); match(T__23); - setState(378); + setState(380); match(NAME); } break; @@ -1840,19 +1852,19 @@ public final NameAndArgsContext nameAndArgs() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(383); + setState(385); _errHandler.sync(this); _la = _input.LA(1); if (_la==T__24) { { - setState(381); + setState(383); match(T__24); - setState(382); + setState(384); match(NAME); } } - setState(385); + setState(387); args(); } } @@ -1901,32 +1913,32 @@ public final ArgsContext args() throws RecognitionException { enterRule(_localctx, 36, RULE_args); int _la; try { - setState(394); + setState(396); _errHandler.sync(this); switch (_input.LA(1)) { case T__29: enterOuterAlt(_localctx, 1); { - setState(387); - match(T__29); setState(389); + match(T__29); + setState(391); _errHandler.sync(this); _la = _input.LA(1); if (((((_la - 17)) & ~0x3f) == 0 && ((1L << (_la - 17)) & ((1L << (T__16 - 17)) | (1L << (T__25 - 17)) | (1L << (T__26 - 17)) | (1L << (T__27 - 17)) | (1L << (T__28 - 17)) | (1L << (T__29 - 17)) | (1L << (T__33 - 17)) | (1L << (T__45 - 17)) | (1L << (T__52 - 17)) | (1L << (T__55 - 17)) | (1L << (T__56 - 17)) | (1L << (NAME - 17)) | (1L << (NORMALSTRING - 17)) | (1L << (CHARSTRING - 17)) | (1L << (LONGSTRING - 17)) | (1L << (INT - 17)) | (1L << (HEX - 17)) | (1L << (FLOAT - 17)) | (1L << (HEX_FLOAT - 17)))) != 0)) { { - setState(388); + setState(390); explist(); } } - setState(391); + setState(393); match(T__30); } break; case T__33: enterOuterAlt(_localctx, 2); { - setState(392); + setState(394); tableconstructor(); } break; @@ -1935,7 +1947,7 @@ public final ArgsContext args() throws RecognitionException { case LONGSTRING: enterOuterAlt(_localctx, 3); { - setState(393); + setState(395); string(); } break; @@ -1983,9 +1995,9 @@ public final FunctiondefContext functiondef() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(396); + setState(398); match(T__16); - setState(397); + setState(399); funcbody(); } } @@ -2033,23 +2045,23 @@ public final FuncbodyContext funcbody() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(399); - match(T__29); setState(401); + match(T__29); + setState(403); _errHandler.sync(this); _la = _input.LA(1); if (_la==T__28 || _la==NAME) { { - setState(400); + setState(402); parlist(); } } - setState(403); + setState(405); match(T__30); - setState(404); + setState(406); block(); - setState(405); + setState(407); match(T__5); } } @@ -2092,22 +2104,22 @@ public final ParlistContext parlist() throws RecognitionException { enterRule(_localctx, 42, RULE_parlist); int _la; try { - setState(413); + setState(415); _errHandler.sync(this); switch (_input.LA(1)) { case NAME: enterOuterAlt(_localctx, 1); { - setState(407); + setState(409); namelist(); - setState(410); + setState(412); _errHandler.sync(this); _la = _input.LA(1); if (_la==T__14) { { - setState(408); + setState(410); match(T__14); - setState(409); + setState(411); match(T__28); } } @@ -2117,7 +2129,7 @@ public final ParlistContext parlist() throws RecognitionException { case T__28: enterOuterAlt(_localctx, 2); { - setState(412); + setState(414); match(T__28); } break; @@ -2166,19 +2178,19 @@ public final TableconstructorContext tableconstructor() throws RecognitionExcept try { enterOuterAlt(_localctx, 1); { - setState(415); - match(T__33); setState(417); + match(T__33); + setState(419); _errHandler.sync(this); _la = _input.LA(1); if (((((_la - 17)) & ~0x3f) == 0 && ((1L << (_la - 17)) & ((1L << (T__16 - 17)) | (1L << (T__25 - 17)) | (1L << (T__26 - 17)) | (1L << (T__27 - 17)) | (1L << (T__28 - 17)) | (1L << (T__29 - 17)) | (1L << (T__31 - 17)) | (1L << (T__33 - 17)) | (1L << (T__45 - 17)) | (1L << (T__52 - 17)) | (1L << (T__55 - 17)) | (1L << (T__56 - 17)) | (1L << (NAME - 17)) | (1L << (NORMALSTRING - 17)) | (1L << (CHARSTRING - 17)) | (1L << (LONGSTRING - 17)) | (1L << (INT - 17)) | (1L << (HEX - 17)) | (1L << (FLOAT - 17)) | (1L << (HEX_FLOAT - 17)))) != 0)) { { - setState(416); + setState(418); fieldlist(); } } - setState(419); + setState(421); match(T__34); } } @@ -2233,32 +2245,32 @@ public final FieldlistContext fieldlist() throws RecognitionException { int _alt; enterOuterAlt(_localctx, 1); { - setState(421); + setState(423); field(); - setState(427); + setState(429); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,35,_ctx); + _alt = getInterpreter().adaptivePredict(_input,36,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - setState(422); + setState(424); fieldsep(); - setState(423); + setState(425); field(); } } } - setState(429); + setState(431); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,35,_ctx); + _alt = getInterpreter().adaptivePredict(_input,36,_ctx); } - setState(431); + setState(433); _errHandler.sync(this); _la = _input.LA(1); if (_la==T__0 || _la==T__14) { { - setState(430); + setState(432); fieldsep(); } } @@ -2307,39 +2319,39 @@ public final FieldContext field() throws RecognitionException { FieldContext _localctx = new FieldContext(_ctx, getState()); enterRule(_localctx, 48, RULE_field); try { - setState(443); + setState(445); _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,37,_ctx) ) { + switch ( getInterpreter().adaptivePredict(_input,38,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(433); + setState(435); match(T__31); - setState(434); + setState(436); exp(0); - setState(435); + setState(437); match(T__32); - setState(436); + setState(438); match(T__1); - setState(437); + setState(439); exp(0); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(439); + setState(441); match(NAME); - setState(440); + setState(442); match(T__1); - setState(441); + setState(443); exp(0); } break; case 3: enterOuterAlt(_localctx, 3); { - setState(442); + setState(444); exp(0); } break; @@ -2383,7 +2395,7 @@ public final FieldsepContext fieldsep() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(445); + setState(447); _la = _input.LA(1); if ( !(_la==T__0 || _la==T__14) ) { _errHandler.recoverInline(this); @@ -2432,7 +2444,7 @@ public final OperatorOrContext operatorOr() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(447); + setState(449); match(T__35); } } @@ -2473,7 +2485,7 @@ public final OperatorAndContext operatorAnd() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(449); + setState(451); match(T__36); } } @@ -2515,7 +2527,7 @@ public final OperatorComparisonContext operatorComparison() throws RecognitionEx try { enterOuterAlt(_localctx, 1); { - setState(451); + setState(453); _la = _input.LA(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__37) | (1L << T__38) | (1L << T__39) | (1L << T__40) | (1L << T__41) | (1L << T__42))) != 0)) ) { _errHandler.recoverInline(this); @@ -2564,7 +2576,7 @@ public final OperatorStrcatContext operatorStrcat() throws RecognitionException try { enterOuterAlt(_localctx, 1); { - setState(453); + setState(455); match(T__43); } } @@ -2606,7 +2618,7 @@ public final OperatorAddSubContext operatorAddSub() throws RecognitionException try { enterOuterAlt(_localctx, 1); { - setState(455); + setState(457); _la = _input.LA(1); if ( !(_la==T__44 || _la==T__45) ) { _errHandler.recoverInline(this); @@ -2656,7 +2668,7 @@ public final OperatorMulDivModContext operatorMulDivMod() throws RecognitionExce try { enterOuterAlt(_localctx, 1); { - setState(457); + setState(459); _la = _input.LA(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__46) | (1L << T__47) | (1L << T__48) | (1L << T__49))) != 0)) ) { _errHandler.recoverInline(this); @@ -2706,7 +2718,7 @@ public final OperatorBitwiseContext operatorBitwise() throws RecognitionExceptio try { enterOuterAlt(_localctx, 1); { - setState(459); + setState(461); _la = _input.LA(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__50) | (1L << T__51) | (1L << T__52) | (1L << T__53) | (1L << T__54))) != 0)) ) { _errHandler.recoverInline(this); @@ -2756,7 +2768,7 @@ public final OperatorUnaryContext operatorUnary() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(461); + setState(463); _la = _input.LA(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__45) | (1L << T__52) | (1L << T__55) | (1L << T__56))) != 0)) ) { _errHandler.recoverInline(this); @@ -2805,7 +2817,7 @@ public final OperatorPowerContext operatorPower() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(463); + setState(465); match(T__57); } } @@ -2851,7 +2863,7 @@ public final NumberContext number() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(465); + setState(467); _la = _input.LA(1); if ( !(((((_la - 73)) & ~0x3f) == 0 && ((1L << (_la - 73)) & ((1L << (INT - 73)) | (1L << (HEX - 73)) | (1L << (FLOAT - 73)) | (1L << (HEX_FLOAT - 73)))) != 0)) ) { _errHandler.recoverInline(this); @@ -2904,7 +2916,7 @@ public final StringContext string() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(467); + setState(469); _la = _input.LA(1); if ( !(((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (NORMALSTRING - 70)) | (1L << (CHARSTRING - 70)) | (1L << (LONGSTRING - 70)))) != 0)) ) { _errHandler.recoverInline(this); @@ -2959,11 +2971,11 @@ public final NewclassContext newclass() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(469); + setState(471); match(T__58); - setState(470); + setState(472); funcname(); - setState(471); + setState(473); args(); } } @@ -3008,11 +3020,11 @@ public final ClassdefContext classdef() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(473); + setState(475); match(T__17); - setState(474); + setState(476); match(NAME); - setState(475); + setState(477); classbody(); } } @@ -3059,11 +3071,11 @@ public final ClassfunctionContext classfunction() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(477); + setState(479); match(T__16); - setState(478); + setState(480); funcname(); - setState(479); + setState(481); funcbody(); } } @@ -3110,13 +3122,13 @@ public final ClassstaticfunctionContext classstaticfunction() throws Recognition try { enterOuterAlt(_localctx, 1); { - setState(481); + setState(483); match(T__59); - setState(482); + setState(484); match(T__16); - setState(483); + setState(485); funcname(); - setState(484); + setState(486); funcbody(); } } @@ -3158,7 +3170,7 @@ public final ClassgetorsetContext classgetorset() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(486); + setState(488); _la = _input.LA(1); if ( !(_la==T__60 || _la==T__61) ) { _errHandler.recoverInline(this); @@ -3215,25 +3227,25 @@ public final ClassgetsetContext classgetset() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(488); + setState(490); match(NAME); - setState(489); + setState(491); match(T__33); - setState(491); + setState(493); _errHandler.sync(this); _la = _input.LA(1); do { { { - setState(490); + setState(492); classgetorset(); } } - setState(493); + setState(495); _errHandler.sync(this); _la = _input.LA(1); } while ( _la==T__60 || _la==T__61 ); - setState(495); + setState(497); match(T__34); } } @@ -3281,25 +3293,25 @@ public final ConstructorContext constructor() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(497); + setState(499); match(T__62); - setState(498); - match(T__29); setState(500); + match(T__29); + setState(502); _errHandler.sync(this); _la = _input.LA(1); if (_la==T__28 || _la==NAME) { { - setState(499); + setState(501); parlist(); } } - setState(502); + setState(504); match(T__30); - setState(503); + setState(505); block(); - setState(504); + setState(506); match(T__5); } } @@ -3347,27 +3359,27 @@ public final ClassmemberContext classmember() throws RecognitionException { ClassmemberContext _localctx = new ClassmemberContext(_ctx, getState()); enterRule(_localctx, 88, RULE_classmember); try { - setState(509); + setState(511); _errHandler.sync(this); switch (_input.LA(1)) { case T__16: enterOuterAlt(_localctx, 1); { - setState(506); + setState(508); classfunction(); } break; case NAME: enterOuterAlt(_localctx, 2); { - setState(507); + setState(509); classgetset(); } break; case T__62: enterOuterAlt(_localctx, 3); { - setState(508); + setState(510); constructor(); } break; @@ -3437,35 +3449,35 @@ public final ClassbodyContext classbody() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(517); + setState(519); _errHandler.sync(this); _la = _input.LA(1); while (((((_la - 17)) & ~0x3f) == 0 && ((1L << (_la - 17)) & ((1L << (T__16 - 17)) | (1L << (T__59 - 17)) | (1L << (T__62 - 17)) | (1L << (NAME - 17)))) != 0)) { { - setState(515); + setState(517); _errHandler.sync(this); switch (_input.LA(1)) { case T__59: { - setState(511); + setState(513); classstaticfunction(); } break; case T__16: { - setState(512); + setState(514); classfunction(); } break; case NAME: { - setState(513); + setState(515); classgetset(); } break; case T__62: { - setState(514); + setState(516); constructor(); } break; @@ -3473,11 +3485,11 @@ public final ClassbodyContext classbody() throws RecognitionException { throw new NoViableAltException(this); } } - setState(519); + setState(521); _errHandler.sync(this); _la = _input.LA(1); } - setState(520); + setState(522); match(T__5); } } @@ -3519,9 +3531,9 @@ public final AddOneContext addOne() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(522); + setState(524); match(NAME); - setState(523); + setState(525); match(T__63); } } @@ -3563,9 +3575,9 @@ public final PlusEqualContext plusEqual() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(525); + setState(527); match(NAME); - setState(526); + setState(528); match(T__64); } } @@ -3607,9 +3619,9 @@ public final MultiplyEqualContext multiplyEqual() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(528); + setState(530); match(NAME); - setState(529); + setState(531); match(T__65); } } @@ -3651,9 +3663,9 @@ public final DivEqualContext divEqual() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(531); + setState(533); match(NAME); - setState(532); + setState(534); match(T__66); } } @@ -3695,9 +3707,9 @@ public final MinusEqualContext minusEqual() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(534); + setState(536); match(NAME); - setState(535); + setState(537); match(T__67); } } @@ -3741,7 +3753,7 @@ public final SafeOperatorContext safeOperator() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(537); + setState(539); var(); } } @@ -3786,7 +3798,7 @@ private boolean exp_sempred(ExpContext _localctx, int predIndex) { } public static final String _serializedATN = - "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3R\u021e\4\2\t\2\4"+ + "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3R\u0220\4\2\t\2\4"+ "\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t"+ "\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+ "\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+ @@ -3798,190 +3810,191 @@ private boolean exp_sempred(ExpContext _localctx, int predIndex) { "\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\7\4\u0099"+ "\n\4\f\4\16\4\u009c\13\4\3\4\3\4\5\4\u00a0\n\4\3\4\3\4\3\4\3\4\3\4\3\4"+ "\3\4\3\4\3\4\3\4\5\4\u00ac\n\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4"+ - "\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\5\4\u00c2\n\4\3\4\3\4\3\4\3\4"+ - "\3\4\3\4\3\4\5\4\u00cb\n\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\5\4"+ - "\u00d7\n\4\3\4\3\4\3\4\5\4\u00dc\n\4\3\4\3\4\3\4\3\4\3\4\5\4\u00e3\n\4"+ - "\3\4\3\4\5\4\u00e7\n\4\3\5\3\5\5\5\u00eb\n\5\3\5\5\5\u00ee\n\5\3\6\3\6"+ - "\3\6\3\6\3\7\3\7\3\7\7\7\u00f7\n\7\f\7\16\7\u00fa\13\7\3\7\3\7\5\7\u00fe"+ - "\n\7\3\b\3\b\3\t\3\t\3\n\3\n\3\n\7\n\u0107\n\n\f\n\16\n\u010a\13\n\3\13"+ - "\3\13\3\13\7\13\u010f\n\13\f\13\16\13\u0112\13\13\3\f\3\f\3\f\7\f\u0117"+ - "\n\f\f\f\16\f\u011a\13\f\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3"+ - "\r\3\r\5\r\u0129\n\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3"+ - "\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r"+ - "\3\r\3\r\7\r\u014b\n\r\f\r\16\r\u014e\13\r\3\16\3\16\7\16\u0152\n\16\f"+ - "\16\16\16\u0155\13\16\3\17\3\17\6\17\u0159\n\17\r\17\16\17\u015a\3\20"+ - "\3\20\3\20\3\20\3\20\5\20\u0162\n\20\3\21\3\21\3\21\3\21\3\21\3\21\5\21"+ - "\u016a\n\21\3\21\7\21\u016d\n\21\f\21\16\21\u0170\13\21\3\22\7\22\u0173"+ - "\n\22\f\22\16\22\u0176\13\22\3\22\3\22\3\22\3\22\3\22\3\22\5\22\u017e"+ - "\n\22\3\23\3\23\5\23\u0182\n\23\3\23\3\23\3\24\3\24\5\24\u0188\n\24\3"+ - "\24\3\24\3\24\5\24\u018d\n\24\3\25\3\25\3\25\3\26\3\26\5\26\u0194\n\26"+ - "\3\26\3\26\3\26\3\26\3\27\3\27\3\27\5\27\u019d\n\27\3\27\5\27\u01a0\n"+ - "\27\3\30\3\30\5\30\u01a4\n\30\3\30\3\30\3\31\3\31\3\31\3\31\7\31\u01ac"+ - "\n\31\f\31\16\31\u01af\13\31\3\31\5\31\u01b2\n\31\3\32\3\32\3\32\3\32"+ - "\3\32\3\32\3\32\3\32\3\32\3\32\5\32\u01be\n\32\3\33\3\33\3\34\3\34\3\35"+ - "\3\35\3\36\3\36\3\37\3\37\3 \3 \3!\3!\3\"\3\"\3#\3#\3$\3$\3%\3%\3&\3&"+ - "\3\'\3\'\3\'\3\'\3(\3(\3(\3(\3)\3)\3)\3)\3*\3*\3*\3*\3*\3+\3+\3,\3,\3"+ - ",\6,\u01ee\n,\r,\16,\u01ef\3,\3,\3-\3-\3-\5-\u01f7\n-\3-\3-\3-\3-\3.\3"+ - ".\3.\5.\u0200\n.\3/\3/\3/\3/\7/\u0206\n/\f/\16/\u0209\13/\3/\3/\3\60\3"+ - "\60\3\60\3\61\3\61\3\61\3\62\3\62\3\62\3\63\3\63\3\63\3\64\3\64\3\64\3"+ - "\65\3\65\3\65\2\3\30\66\2\4\6\b\n\f\16\20\22\24\26\30\32\34\36 \"$&(*"+ - ",.\60\62\64\668:<>@BDFHJLNPRTVXZ\\^`bdfh\2\13\4\2\3\3\21\21\3\2(-\3\2"+ - "/\60\3\2\61\64\3\2\659\5\2\60\60\67\67:;\3\2KN\3\2HJ\3\2?@\2\u0239\2j"+ - "\3\2\2\2\4p\3\2\2\2\6\u00e6\3\2\2\2\b\u00e8\3\2\2\2\n\u00ef\3\2\2\2\f"+ - "\u00f3\3\2\2\2\16\u00ff\3\2\2\2\20\u0101\3\2\2\2\22\u0103\3\2\2\2\24\u010b"+ - "\3\2\2\2\26\u0113\3\2\2\2\30\u0128\3\2\2\2\32\u014f\3\2\2\2\34\u0156\3"+ - "\2\2\2\36\u0161\3\2\2\2 \u0169\3\2\2\2\"\u0174\3\2\2\2$\u0181\3\2\2\2"+ - "&\u018c\3\2\2\2(\u018e\3\2\2\2*\u0191\3\2\2\2,\u019f\3\2\2\2.\u01a1\3"+ - "\2\2\2\60\u01a7\3\2\2\2\62\u01bd\3\2\2\2\64\u01bf\3\2\2\2\66\u01c1\3\2"+ - "\2\28\u01c3\3\2\2\2:\u01c5\3\2\2\2<\u01c7\3\2\2\2>\u01c9\3\2\2\2@\u01cb"+ - "\3\2\2\2B\u01cd\3\2\2\2D\u01cf\3\2\2\2F\u01d1\3\2\2\2H\u01d3\3\2\2\2J"+ - "\u01d5\3\2\2\2L\u01d7\3\2\2\2N\u01db\3\2\2\2P\u01df\3\2\2\2R\u01e3\3\2"+ - "\2\2T\u01e8\3\2\2\2V\u01ea\3\2\2\2X\u01f3\3\2\2\2Z\u01ff\3\2\2\2\\\u0207"+ - "\3\2\2\2^\u020c\3\2\2\2`\u020f\3\2\2\2b\u0212\3\2\2\2d\u0215\3\2\2\2f"+ - "\u0218\3\2\2\2h\u021b\3\2\2\2jk\5\4\3\2kl\7\2\2\3l\3\3\2\2\2mo\5\6\4\2"+ - "nm\3\2\2\2or\3\2\2\2pn\3\2\2\2pq\3\2\2\2qt\3\2\2\2rp\3\2\2\2su\5\b\5\2"+ - "ts\3\2\2\2tu\3\2\2\2u\5\3\2\2\2v\u00e7\7\3\2\2wx\5\22\n\2xy\7\4\2\2yz"+ - "\5\26\f\2z\u00e7\3\2\2\2{\u00e7\5\34\17\2|\u00e7\5\n\6\2}\u00e7\7\5\2"+ - "\2~\177\7\6\2\2\177\u00e7\7G\2\2\u0080\u0081\7\7\2\2\u0081\u0082\5\4\3"+ - "\2\u0082\u0083\7\b\2\2\u0083\u00e7\3\2\2\2\u0084\u0085\7\t\2\2\u0085\u0086"+ - "\5\30\r\2\u0086\u0087\7\7\2\2\u0087\u0088\5\4\3\2\u0088\u0089\7\b\2\2"+ - "\u0089\u00e7\3\2\2\2\u008a\u008b\7\n\2\2\u008b\u008c\5\4\3\2\u008c\u008d"+ - "\7\13\2\2\u008d\u008e\5\30\r\2\u008e\u00e7\3\2\2\2\u008f\u0090\7\f\2\2"+ - "\u0090\u0091\5\30\r\2\u0091\u0092\7\r\2\2\u0092\u009a\5\4\3\2\u0093\u0094"+ - "\7\16\2\2\u0094\u0095\5\30\r\2\u0095\u0096\7\r\2\2\u0096\u0097\5\4\3\2"+ - "\u0097\u0099\3\2\2\2\u0098\u0093\3\2\2\2\u0099\u009c\3\2\2\2\u009a\u0098"+ - "\3\2\2\2\u009a\u009b\3\2\2\2\u009b\u009f\3\2\2\2\u009c\u009a\3\2\2\2\u009d"+ - "\u009e\7\17\2\2\u009e\u00a0\5\4\3\2\u009f\u009d\3\2\2\2\u009f\u00a0\3"+ - "\2\2\2\u00a0\u00a1\3\2\2\2\u00a1\u00a2\7\b\2\2\u00a2\u00e7\3\2\2\2\u00a3"+ - "\u00a4\7\20\2\2\u00a4\u00a5\7G\2\2\u00a5\u00a6\7\4\2\2\u00a6\u00a7\5\30"+ - "\r\2\u00a7\u00a8\7\21\2\2\u00a8\u00ab\5\30\r\2\u00a9\u00aa\7\21\2\2\u00aa"+ - "\u00ac\5\30\r\2\u00ab\u00a9\3\2\2\2\u00ab\u00ac\3\2\2\2\u00ac\u00ad\3"+ - "\2\2\2\u00ad\u00ae\7\7\2\2\u00ae\u00af\5\4\3\2\u00af\u00b0\7\b\2\2\u00b0"+ - "\u00e7\3\2\2\2\u00b1\u00b2\7\20\2\2\u00b2\u00b3\5\24\13\2\u00b3\u00b4"+ - "\7\22\2\2\u00b4\u00b5\5\26\f\2\u00b5\u00b6\7\7\2\2\u00b6\u00b7\5\4\3\2"+ - "\u00b7\u00b8\7\b\2\2\u00b8\u00e7\3\2\2\2\u00b9\u00ba\7\23\2\2\u00ba\u00bb"+ - "\5\f\7\2\u00bb\u00bc\5*\26\2\u00bc\u00e7\3\2\2\2\u00bd\u00be\7\24\2\2"+ - "\u00be\u00c1\5\16\b\2\u00bf\u00c0\7\25\2\2\u00c0\u00c2\5\20\t\2\u00c1"+ - "\u00bf\3\2\2\2\u00c1\u00c2\3\2\2\2\u00c2\u00c3\3\2\2\2\u00c3\u00c4\5\\"+ - "/\2\u00c4\u00e7\3\2\2\2\u00c5\u00c6\7\26\2\2\u00c6\u00c7\7\24\2\2\u00c7"+ - "\u00ca\5\16\b\2\u00c8\u00c9\7\25\2\2\u00c9\u00cb\5\20\t\2\u00ca\u00c8"+ - "\3\2\2\2\u00ca\u00cb\3\2\2\2\u00cb\u00cc\3\2\2\2\u00cc\u00cd\5\\/\2\u00cd"+ - "\u00e7\3\2\2\2\u00ce\u00cf\7\26\2\2\u00cf\u00d0\7\23\2\2\u00d0\u00d1\7"+ - "G\2\2\u00d1\u00e7\5*\26\2\u00d2\u00d3\7\26\2\2\u00d3\u00d6\5\24\13\2\u00d4"+ - "\u00d5\7\4\2\2\u00d5\u00d7\5\26\f\2\u00d6\u00d4\3\2\2\2\u00d6\u00d7\3"+ - "\2\2\2\u00d7\u00e7\3\2\2\2\u00d8\u00d9\7\27\2\2\u00d9\u00e7\5h\65\2\u00da"+ - "\u00dc\7\26\2\2\u00db\u00da\3\2\2\2\u00db\u00dc\3\2\2\2\u00dc\u00dd\3"+ - "\2\2\2\u00dd\u00de\5\24\13\2\u00de\u00df\7\4\2\2\u00df\u00e0\5L\'\2\u00e0"+ - "\u00e7\3\2\2\2\u00e1\u00e3\7\26\2\2\u00e2\u00e1\3\2\2\2\u00e2\u00e3\3"+ - "\2\2\2\u00e3\u00e4\3\2\2\2\u00e4\u00e5\7G\2\2\u00e5\u00e7\5f\64\2\u00e6"+ - "v\3\2\2\2\u00e6w\3\2\2\2\u00e6{\3\2\2\2\u00e6|\3\2\2\2\u00e6}\3\2\2\2"+ - "\u00e6~\3\2\2\2\u00e6\u0080\3\2\2\2\u00e6\u0084\3\2\2\2\u00e6\u008a\3"+ - "\2\2\2\u00e6\u008f\3\2\2\2\u00e6\u00a3\3\2\2\2\u00e6\u00b1\3\2\2\2\u00e6"+ - "\u00b9\3\2\2\2\u00e6\u00bd\3\2\2\2\u00e6\u00c5\3\2\2\2\u00e6\u00ce\3\2"+ - "\2\2\u00e6\u00d2\3\2\2\2\u00e6\u00d8\3\2\2\2\u00e6\u00db\3\2\2\2\u00e6"+ - "\u00e2\3\2\2\2\u00e7\7\3\2\2\2\u00e8\u00ea\7\30\2\2\u00e9\u00eb\5\26\f"+ - "\2\u00ea\u00e9\3\2\2\2\u00ea\u00eb\3\2\2\2\u00eb\u00ed\3\2\2\2\u00ec\u00ee"+ - "\7\3\2\2\u00ed\u00ec\3\2\2\2\u00ed\u00ee\3\2\2\2\u00ee\t\3\2\2\2\u00ef"+ - "\u00f0\7\31\2\2\u00f0\u00f1\7G\2\2\u00f1\u00f2\7\31\2\2\u00f2\13\3\2\2"+ - "\2\u00f3\u00f8\7G\2\2\u00f4\u00f5\7\32\2\2\u00f5\u00f7\7G\2\2\u00f6\u00f4"+ - "\3\2\2\2\u00f7\u00fa\3\2\2\2\u00f8\u00f6\3\2\2\2\u00f8\u00f9\3\2\2\2\u00f9"+ - "\u00fd\3\2\2\2\u00fa\u00f8\3\2\2\2\u00fb\u00fc\7\33\2\2\u00fc\u00fe\7"+ - "G\2\2\u00fd\u00fb\3\2\2\2\u00fd\u00fe\3\2\2\2\u00fe\r\3\2\2\2\u00ff\u0100"+ - "\7G\2\2\u0100\17\3\2\2\2\u0101\u0102\7G\2\2\u0102\21\3\2\2\2\u0103\u0108"+ - "\5 \21\2\u0104\u0105\7\21\2\2\u0105\u0107\5 \21\2\u0106\u0104\3\2\2\2"+ - "\u0107\u010a\3\2\2\2\u0108\u0106\3\2\2\2\u0108\u0109\3\2\2\2\u0109\23"+ - "\3\2\2\2\u010a\u0108\3\2\2\2\u010b\u0110\7G\2\2\u010c\u010d\7\21\2\2\u010d"+ - "\u010f\7G\2\2\u010e\u010c\3\2\2\2\u010f\u0112\3\2\2\2\u0110\u010e\3\2"+ - "\2\2\u0110\u0111\3\2\2\2\u0111\25\3\2\2\2\u0112\u0110\3\2\2\2\u0113\u0118"+ - "\5\30\r\2\u0114\u0115\7\21\2\2\u0115\u0117\5\30\r\2\u0116\u0114\3\2\2"+ - "\2\u0117\u011a\3\2\2\2\u0118\u0116\3\2\2\2\u0118\u0119\3\2\2\2\u0119\27"+ - "\3\2\2\2\u011a\u0118\3\2\2\2\u011b\u011c\b\r\1\2\u011c\u0129\7\34\2\2"+ - "\u011d\u0129\7\35\2\2\u011e\u0129\7\36\2\2\u011f\u0129\5H%\2\u0120\u0129"+ - "\5J&\2\u0121\u0129\7\37\2\2\u0122\u0129\5(\25\2\u0123\u0129\5\32\16\2"+ - "\u0124\u0129\5.\30\2\u0125\u0126\5D#\2\u0126\u0127\5\30\r\n\u0127\u0129"+ - "\3\2\2\2\u0128\u011b\3\2\2\2\u0128\u011d\3\2\2\2\u0128\u011e\3\2\2\2\u0128"+ - "\u011f\3\2\2\2\u0128\u0120\3\2\2\2\u0128\u0121\3\2\2\2\u0128\u0122\3\2"+ - "\2\2\u0128\u0123\3\2\2\2\u0128\u0124\3\2\2\2\u0128\u0125\3\2\2\2\u0129"+ - "\u014c\3\2\2\2\u012a\u012b\f\13\2\2\u012b\u012c\5F$\2\u012c\u012d\5\30"+ - "\r\13\u012d\u014b\3\2\2\2\u012e\u012f\f\t\2\2\u012f\u0130\5@!\2\u0130"+ - "\u0131\5\30\r\n\u0131\u014b\3\2\2\2\u0132\u0133\f\b\2\2\u0133\u0134\5"+ - "> \2\u0134\u0135\5\30\r\t\u0135\u014b\3\2\2\2\u0136\u0137\f\7\2\2\u0137"+ - "\u0138\5<\37\2\u0138\u0139\5\30\r\7\u0139\u014b\3\2\2\2\u013a\u013b\f"+ - "\6\2\2\u013b\u013c\5:\36\2\u013c\u013d\5\30\r\7\u013d\u014b\3\2\2\2\u013e"+ - "\u013f\f\5\2\2\u013f\u0140\58\35\2\u0140\u0141\5\30\r\6\u0141\u014b\3"+ - "\2\2\2\u0142\u0143\f\4\2\2\u0143\u0144\5\66\34\2\u0144\u0145\5\30\r\5"+ - "\u0145\u014b\3\2\2\2\u0146\u0147\f\3\2\2\u0147\u0148\5B\"\2\u0148\u0149"+ - "\5\30\r\4\u0149\u014b\3\2\2\2\u014a\u012a\3\2\2\2\u014a\u012e\3\2\2\2"+ - "\u014a\u0132\3\2\2\2\u014a\u0136\3\2\2\2\u014a\u013a\3\2\2\2\u014a\u013e"+ - "\3\2\2\2\u014a\u0142\3\2\2\2\u014a\u0146\3\2\2\2\u014b\u014e\3\2\2\2\u014c"+ - "\u014a\3\2\2\2\u014c\u014d\3\2\2\2\u014d\31\3\2\2\2\u014e\u014c\3\2\2"+ - "\2\u014f\u0153\5\36\20\2\u0150\u0152\5$\23\2\u0151\u0150\3\2\2\2\u0152"+ - "\u0155\3\2\2\2\u0153\u0151\3\2\2\2\u0153\u0154\3\2\2\2\u0154\33\3\2\2"+ - "\2\u0155\u0153\3\2\2\2\u0156\u0158\5\36\20\2\u0157\u0159\5$\23\2\u0158"+ - "\u0157\3\2\2\2\u0159\u015a\3\2\2\2\u015a\u0158\3\2\2\2\u015a\u015b\3\2"+ - "\2\2\u015b\35\3\2\2\2\u015c\u0162\5 \21\2\u015d\u015e\7 \2\2\u015e\u015f"+ - "\5\30\r\2\u015f\u0160\7!\2\2\u0160\u0162\3\2\2\2\u0161\u015c\3\2\2\2\u0161"+ - "\u015d\3\2\2\2\u0162\37\3\2\2\2\u0163\u016a\7G\2\2\u0164\u0165\7 \2\2"+ - "\u0165\u0166\5\30\r\2\u0166\u0167\7!\2\2\u0167\u0168\5\"\22\2\u0168\u016a"+ - "\3\2\2\2\u0169\u0163\3\2\2\2\u0169\u0164\3\2\2\2\u016a\u016e\3\2\2\2\u016b"+ - "\u016d\5\"\22\2\u016c\u016b\3\2\2\2\u016d\u0170\3\2\2\2\u016e\u016c\3"+ - "\2\2\2\u016e\u016f\3\2\2\2\u016f!\3\2\2\2\u0170\u016e\3\2\2\2\u0171\u0173"+ - "\5$\23\2\u0172\u0171\3\2\2\2\u0173\u0176\3\2\2\2\u0174\u0172\3\2\2\2\u0174"+ - "\u0175\3\2\2\2\u0175\u017d\3\2\2\2\u0176\u0174\3\2\2\2\u0177\u0178\7\""+ - "\2\2\u0178\u0179\5\30\r\2\u0179\u017a\7#\2\2\u017a\u017e\3\2\2\2\u017b"+ - "\u017c\7\32\2\2\u017c\u017e\7G\2\2\u017d\u0177\3\2\2\2\u017d\u017b\3\2"+ - "\2\2\u017e#\3\2\2\2\u017f\u0180\7\33\2\2\u0180\u0182\7G\2\2\u0181\u017f"+ - "\3\2\2\2\u0181\u0182\3\2\2\2\u0182\u0183\3\2\2\2\u0183\u0184\5&\24\2\u0184"+ - "%\3\2\2\2\u0185\u0187\7 \2\2\u0186\u0188\5\26\f\2\u0187\u0186\3\2\2\2"+ - "\u0187\u0188\3\2\2\2\u0188\u0189\3\2\2\2\u0189\u018d\7!\2\2\u018a\u018d"+ - "\5.\30\2\u018b\u018d\5J&\2\u018c\u0185\3\2\2\2\u018c\u018a\3\2\2\2\u018c"+ - "\u018b\3\2\2\2\u018d\'\3\2\2\2\u018e\u018f\7\23\2\2\u018f\u0190\5*\26"+ - "\2\u0190)\3\2\2\2\u0191\u0193\7 \2\2\u0192\u0194\5,\27\2\u0193\u0192\3"+ - "\2\2\2\u0193\u0194\3\2\2\2\u0194\u0195\3\2\2\2\u0195\u0196\7!\2\2\u0196"+ - "\u0197\5\4\3\2\u0197\u0198\7\b\2\2\u0198+\3\2\2\2\u0199\u019c\5\24\13"+ - "\2\u019a\u019b\7\21\2\2\u019b\u019d\7\37\2\2\u019c\u019a\3\2\2\2\u019c"+ - "\u019d\3\2\2\2\u019d\u01a0\3\2\2\2\u019e\u01a0\7\37\2\2\u019f\u0199\3"+ - "\2\2\2\u019f\u019e\3\2\2\2\u01a0-\3\2\2\2\u01a1\u01a3\7$\2\2\u01a2\u01a4"+ - "\5\60\31\2\u01a3\u01a2\3\2\2\2\u01a3\u01a4\3\2\2\2\u01a4\u01a5\3\2\2\2"+ - "\u01a5\u01a6\7%\2\2\u01a6/\3\2\2\2\u01a7\u01ad\5\62\32\2\u01a8\u01a9\5"+ - "\64\33\2\u01a9\u01aa\5\62\32\2\u01aa\u01ac\3\2\2\2\u01ab\u01a8\3\2\2\2"+ - "\u01ac\u01af\3\2\2\2\u01ad\u01ab\3\2\2\2\u01ad\u01ae\3\2\2\2\u01ae\u01b1"+ - "\3\2\2\2\u01af\u01ad\3\2\2\2\u01b0\u01b2\5\64\33\2\u01b1\u01b0\3\2\2\2"+ - "\u01b1\u01b2\3\2\2\2\u01b2\61\3\2\2\2\u01b3\u01b4\7\"\2\2\u01b4\u01b5"+ - "\5\30\r\2\u01b5\u01b6\7#\2\2\u01b6\u01b7\7\4\2\2\u01b7\u01b8\5\30\r\2"+ - "\u01b8\u01be\3\2\2\2\u01b9\u01ba\7G\2\2\u01ba\u01bb\7\4\2\2\u01bb\u01be"+ - "\5\30\r\2\u01bc\u01be\5\30\r\2\u01bd\u01b3\3\2\2\2\u01bd\u01b9\3\2\2\2"+ - "\u01bd\u01bc\3\2\2\2\u01be\63\3\2\2\2\u01bf\u01c0\t\2\2\2\u01c0\65\3\2"+ - "\2\2\u01c1\u01c2\7&\2\2\u01c2\67\3\2\2\2\u01c3\u01c4\7\'\2\2\u01c49\3"+ - "\2\2\2\u01c5\u01c6\t\3\2\2\u01c6;\3\2\2\2\u01c7\u01c8\7.\2\2\u01c8=\3"+ - "\2\2\2\u01c9\u01ca\t\4\2\2\u01ca?\3\2\2\2\u01cb\u01cc\t\5\2\2\u01ccA\3"+ - "\2\2\2\u01cd\u01ce\t\6\2\2\u01ceC\3\2\2\2\u01cf\u01d0\t\7\2\2\u01d0E\3"+ - "\2\2\2\u01d1\u01d2\7<\2\2\u01d2G\3\2\2\2\u01d3\u01d4\t\b\2\2\u01d4I\3"+ - "\2\2\2\u01d5\u01d6\t\t\2\2\u01d6K\3\2\2\2\u01d7\u01d8\7=\2\2\u01d8\u01d9"+ - "\5\f\7\2\u01d9\u01da\5&\24\2\u01daM\3\2\2\2\u01db\u01dc\7\24\2\2\u01dc"+ - "\u01dd\7G\2\2\u01dd\u01de\5\\/\2\u01deO\3\2\2\2\u01df\u01e0\7\23\2\2\u01e0"+ - "\u01e1\5\f\7\2\u01e1\u01e2\5*\26\2\u01e2Q\3\2\2\2\u01e3\u01e4\7>\2\2\u01e4"+ - "\u01e5\7\23\2\2\u01e5\u01e6\5\f\7\2\u01e6\u01e7\5*\26\2\u01e7S\3\2\2\2"+ - "\u01e8\u01e9\t\n\2\2\u01e9U\3\2\2\2\u01ea\u01eb\7G\2\2\u01eb\u01ed\7$"+ - "\2\2\u01ec\u01ee\5T+\2\u01ed\u01ec\3\2\2\2\u01ee\u01ef\3\2\2\2\u01ef\u01ed"+ - "\3\2\2\2\u01ef\u01f0\3\2\2\2\u01f0\u01f1\3\2\2\2\u01f1\u01f2\7%\2\2\u01f2"+ - "W\3\2\2\2\u01f3\u01f4\7A\2\2\u01f4\u01f6\7 \2\2\u01f5\u01f7\5,\27\2\u01f6"+ - "\u01f5\3\2\2\2\u01f6\u01f7\3\2\2\2\u01f7\u01f8\3\2\2\2\u01f8\u01f9\7!"+ - "\2\2\u01f9\u01fa\5\4\3\2\u01fa\u01fb\7\b\2\2\u01fbY\3\2\2\2\u01fc\u0200"+ - "\5P)\2\u01fd\u0200\5V,\2\u01fe\u0200\5X-\2\u01ff\u01fc\3\2\2\2\u01ff\u01fd"+ - "\3\2\2\2\u01ff\u01fe\3\2\2\2\u0200[\3\2\2\2\u0201\u0206\5R*\2\u0202\u0206"+ - "\5P)\2\u0203\u0206\5V,\2\u0204\u0206\5X-\2\u0205\u0201\3\2\2\2\u0205\u0202"+ - "\3\2\2\2\u0205\u0203\3\2\2\2\u0205\u0204\3\2\2\2\u0206\u0209\3\2\2\2\u0207"+ - "\u0205\3\2\2\2\u0207\u0208\3\2\2\2\u0208\u020a\3\2\2\2\u0209\u0207\3\2"+ - "\2\2\u020a\u020b\7\b\2\2\u020b]\3\2\2\2\u020c\u020d\7G\2\2\u020d\u020e"+ - "\7B\2\2\u020e_\3\2\2\2\u020f\u0210\7G\2\2\u0210\u0211\7C\2\2\u0211a\3"+ - "\2\2\2\u0212\u0213\7G\2\2\u0213\u0214\7D\2\2\u0214c\3\2\2\2\u0215\u0216"+ - "\7G\2\2\u0216\u0217\7E\2\2\u0217e\3\2\2\2\u0218\u0219\7G\2\2\u0219\u021a"+ - "\7F\2\2\u021ag\3\2\2\2\u021b\u021c\5 \21\2\u021ci\3\2\2\2-pt\u009a\u009f"+ - "\u00ab\u00c1\u00ca\u00d6\u00db\u00e2\u00e6\u00ea\u00ed\u00f8\u00fd\u0108"+ - "\u0110\u0118\u0128\u014a\u014c\u0153\u015a\u0161\u0169\u016e\u0174\u017d"+ - "\u0181\u0187\u018c\u0193\u019c\u019f\u01a3\u01ad\u01b1\u01bd\u01ef\u01f6"+ - "\u01ff\u0205\u0207"; + "\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\5\4\u00c2\n\4\3\4\3\4\3\4\5\4"+ + "\u00c7\n\4\3\4\3\4\3\4\3\4\5\4\u00cd\n\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3"+ + "\4\3\4\3\4\5\4\u00d9\n\4\3\4\3\4\3\4\5\4\u00de\n\4\3\4\3\4\3\4\3\4\3\4"+ + "\5\4\u00e5\n\4\3\4\3\4\5\4\u00e9\n\4\3\5\3\5\5\5\u00ed\n\5\3\5\5\5\u00f0"+ + "\n\5\3\6\3\6\3\6\3\6\3\7\3\7\3\7\7\7\u00f9\n\7\f\7\16\7\u00fc\13\7\3\7"+ + "\3\7\5\7\u0100\n\7\3\b\3\b\3\t\3\t\3\n\3\n\3\n\7\n\u0109\n\n\f\n\16\n"+ + "\u010c\13\n\3\13\3\13\3\13\7\13\u0111\n\13\f\13\16\13\u0114\13\13\3\f"+ + "\3\f\3\f\7\f\u0119\n\f\f\f\16\f\u011c\13\f\3\r\3\r\3\r\3\r\3\r\3\r\3\r"+ + "\3\r\3\r\3\r\3\r\3\r\3\r\5\r\u012b\n\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r"+ + "\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3"+ + "\r\3\r\3\r\3\r\3\r\3\r\3\r\7\r\u014d\n\r\f\r\16\r\u0150\13\r\3\16\3\16"+ + "\7\16\u0154\n\16\f\16\16\16\u0157\13\16\3\17\3\17\6\17\u015b\n\17\r\17"+ + "\16\17\u015c\3\20\3\20\3\20\3\20\3\20\5\20\u0164\n\20\3\21\3\21\3\21\3"+ + "\21\3\21\3\21\5\21\u016c\n\21\3\21\7\21\u016f\n\21\f\21\16\21\u0172\13"+ + "\21\3\22\7\22\u0175\n\22\f\22\16\22\u0178\13\22\3\22\3\22\3\22\3\22\3"+ + "\22\3\22\5\22\u0180\n\22\3\23\3\23\5\23\u0184\n\23\3\23\3\23\3\24\3\24"+ + "\5\24\u018a\n\24\3\24\3\24\3\24\5\24\u018f\n\24\3\25\3\25\3\25\3\26\3"+ + "\26\5\26\u0196\n\26\3\26\3\26\3\26\3\26\3\27\3\27\3\27\5\27\u019f\n\27"+ + "\3\27\5\27\u01a2\n\27\3\30\3\30\5\30\u01a6\n\30\3\30\3\30\3\31\3\31\3"+ + "\31\3\31\7\31\u01ae\n\31\f\31\16\31\u01b1\13\31\3\31\5\31\u01b4\n\31\3"+ + "\32\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\32\5\32\u01c0\n\32\3\33"+ + "\3\33\3\34\3\34\3\35\3\35\3\36\3\36\3\37\3\37\3 \3 \3!\3!\3\"\3\"\3#\3"+ + "#\3$\3$\3%\3%\3&\3&\3\'\3\'\3\'\3\'\3(\3(\3(\3(\3)\3)\3)\3)\3*\3*\3*\3"+ + "*\3*\3+\3+\3,\3,\3,\6,\u01f0\n,\r,\16,\u01f1\3,\3,\3-\3-\3-\5-\u01f9\n"+ + "-\3-\3-\3-\3-\3.\3.\3.\5.\u0202\n.\3/\3/\3/\3/\7/\u0208\n/\f/\16/\u020b"+ + "\13/\3/\3/\3\60\3\60\3\60\3\61\3\61\3\61\3\62\3\62\3\62\3\63\3\63\3\63"+ + "\3\64\3\64\3\64\3\65\3\65\3\65\2\3\30\66\2\4\6\b\n\f\16\20\22\24\26\30"+ + "\32\34\36 \"$&(*,.\60\62\64\668:<>@BDFHJLNPRTVXZ\\^`bdfh\2\13\4\2\3\3"+ + "\21\21\3\2(-\3\2/\60\3\2\61\64\3\2\659\5\2\60\60\67\67:;\3\2KN\3\2HJ\3"+ + "\2?@\2\u023c\2j\3\2\2\2\4p\3\2\2\2\6\u00e8\3\2\2\2\b\u00ea\3\2\2\2\n\u00f1"+ + "\3\2\2\2\f\u00f5\3\2\2\2\16\u0101\3\2\2\2\20\u0103\3\2\2\2\22\u0105\3"+ + "\2\2\2\24\u010d\3\2\2\2\26\u0115\3\2\2\2\30\u012a\3\2\2\2\32\u0151\3\2"+ + "\2\2\34\u0158\3\2\2\2\36\u0163\3\2\2\2 \u016b\3\2\2\2\"\u0176\3\2\2\2"+ + "$\u0183\3\2\2\2&\u018e\3\2\2\2(\u0190\3\2\2\2*\u0193\3\2\2\2,\u01a1\3"+ + "\2\2\2.\u01a3\3\2\2\2\60\u01a9\3\2\2\2\62\u01bf\3\2\2\2\64\u01c1\3\2\2"+ + "\2\66\u01c3\3\2\2\28\u01c5\3\2\2\2:\u01c7\3\2\2\2<\u01c9\3\2\2\2>\u01cb"+ + "\3\2\2\2@\u01cd\3\2\2\2B\u01cf\3\2\2\2D\u01d1\3\2\2\2F\u01d3\3\2\2\2H"+ + "\u01d5\3\2\2\2J\u01d7\3\2\2\2L\u01d9\3\2\2\2N\u01dd\3\2\2\2P\u01e1\3\2"+ + "\2\2R\u01e5\3\2\2\2T\u01ea\3\2\2\2V\u01ec\3\2\2\2X\u01f5\3\2\2\2Z\u0201"+ + "\3\2\2\2\\\u0209\3\2\2\2^\u020e\3\2\2\2`\u0211\3\2\2\2b\u0214\3\2\2\2"+ + "d\u0217\3\2\2\2f\u021a\3\2\2\2h\u021d\3\2\2\2jk\5\4\3\2kl\7\2\2\3l\3\3"+ + "\2\2\2mo\5\6\4\2nm\3\2\2\2or\3\2\2\2pn\3\2\2\2pq\3\2\2\2qt\3\2\2\2rp\3"+ + "\2\2\2su\5\b\5\2ts\3\2\2\2tu\3\2\2\2u\5\3\2\2\2v\u00e9\7\3\2\2wx\5\22"+ + "\n\2xy\7\4\2\2yz\5\26\f\2z\u00e9\3\2\2\2{\u00e9\5\34\17\2|\u00e9\5\n\6"+ + "\2}\u00e9\7\5\2\2~\177\7\6\2\2\177\u00e9\7G\2\2\u0080\u0081\7\7\2\2\u0081"+ + "\u0082\5\4\3\2\u0082\u0083\7\b\2\2\u0083\u00e9\3\2\2\2\u0084\u0085\7\t"+ + "\2\2\u0085\u0086\5\30\r\2\u0086\u0087\7\7\2\2\u0087\u0088\5\4\3\2\u0088"+ + "\u0089\7\b\2\2\u0089\u00e9\3\2\2\2\u008a\u008b\7\n\2\2\u008b\u008c\5\4"+ + "\3\2\u008c\u008d\7\13\2\2\u008d\u008e\5\30\r\2\u008e\u00e9\3\2\2\2\u008f"+ + "\u0090\7\f\2\2\u0090\u0091\5\30\r\2\u0091\u0092\7\r\2\2\u0092\u009a\5"+ + "\4\3\2\u0093\u0094\7\16\2\2\u0094\u0095\5\30\r\2\u0095\u0096\7\r\2\2\u0096"+ + "\u0097\5\4\3\2\u0097\u0099\3\2\2\2\u0098\u0093\3\2\2\2\u0099\u009c\3\2"+ + "\2\2\u009a\u0098\3\2\2\2\u009a\u009b\3\2\2\2\u009b\u009f\3\2\2\2\u009c"+ + "\u009a\3\2\2\2\u009d\u009e\7\17\2\2\u009e\u00a0\5\4\3\2\u009f\u009d\3"+ + "\2\2\2\u009f\u00a0\3\2\2\2\u00a0\u00a1\3\2\2\2\u00a1\u00a2\7\b\2\2\u00a2"+ + "\u00e9\3\2\2\2\u00a3\u00a4\7\20\2\2\u00a4\u00a5\7G\2\2\u00a5\u00a6\7\4"+ + "\2\2\u00a6\u00a7\5\30\r\2\u00a7\u00a8\7\21\2\2\u00a8\u00ab\5\30\r\2\u00a9"+ + "\u00aa\7\21\2\2\u00aa\u00ac\5\30\r\2\u00ab\u00a9\3\2\2\2\u00ab\u00ac\3"+ + "\2\2\2\u00ac\u00ad\3\2\2\2\u00ad\u00ae\7\7\2\2\u00ae\u00af\5\4\3\2\u00af"+ + "\u00b0\7\b\2\2\u00b0\u00e9\3\2\2\2\u00b1\u00b2\7\20\2\2\u00b2\u00b3\5"+ + "\24\13\2\u00b3\u00b4\7\22\2\2\u00b4\u00b5\5\26\f\2\u00b5\u00b6\7\7\2\2"+ + "\u00b6\u00b7\5\4\3\2\u00b7\u00b8\7\b\2\2\u00b8\u00e9\3\2\2\2\u00b9\u00ba"+ + "\7\23\2\2\u00ba\u00bb\5\f\7\2\u00bb\u00bc\5*\26\2\u00bc\u00e9\3\2\2\2"+ + "\u00bd\u00be\7\24\2\2\u00be\u00c1\5\16\b\2\u00bf\u00c0\7\25\2\2\u00c0"+ + "\u00c2\5\20\t\2\u00c1\u00bf\3\2\2\2\u00c1\u00c2\3\2\2\2\u00c2\u00c3\3"+ + "\2\2\2\u00c3\u00c4\5\\/\2\u00c4\u00e9\3\2\2\2\u00c5\u00c7\7\26\2\2\u00c6"+ + "\u00c5\3\2\2\2\u00c6\u00c7\3\2\2\2\u00c7\u00c8\3\2\2\2\u00c8\u00c9\7\24"+ + "\2\2\u00c9\u00cc\5\16\b\2\u00ca\u00cb\7\25\2\2\u00cb\u00cd\5\20\t\2\u00cc"+ + "\u00ca\3\2\2\2\u00cc\u00cd\3\2\2\2\u00cd\u00ce\3\2\2\2\u00ce\u00cf\5\\"+ + "/\2\u00cf\u00e9\3\2\2\2\u00d0\u00d1\7\26\2\2\u00d1\u00d2\7\23\2\2\u00d2"+ + "\u00d3\7G\2\2\u00d3\u00e9\5*\26\2\u00d4\u00d5\7\26\2\2\u00d5\u00d8\5\24"+ + "\13\2\u00d6\u00d7\7\4\2\2\u00d7\u00d9\5\26\f\2\u00d8\u00d6\3\2\2\2\u00d8"+ + "\u00d9\3\2\2\2\u00d9\u00e9\3\2\2\2\u00da\u00db\7\27\2\2\u00db\u00e9\5"+ + "h\65\2\u00dc\u00de\7\26\2\2\u00dd\u00dc\3\2\2\2\u00dd\u00de\3\2\2\2\u00de"+ + "\u00df\3\2\2\2\u00df\u00e0\5\24\13\2\u00e0\u00e1\7\4\2\2\u00e1\u00e2\5"+ + "L\'\2\u00e2\u00e9\3\2\2\2\u00e3\u00e5\7\26\2\2\u00e4\u00e3\3\2\2\2\u00e4"+ + "\u00e5\3\2\2\2\u00e5\u00e6\3\2\2\2\u00e6\u00e7\7G\2\2\u00e7\u00e9\5f\64"+ + "\2\u00e8v\3\2\2\2\u00e8w\3\2\2\2\u00e8{\3\2\2\2\u00e8|\3\2\2\2\u00e8}"+ + "\3\2\2\2\u00e8~\3\2\2\2\u00e8\u0080\3\2\2\2\u00e8\u0084\3\2\2\2\u00e8"+ + "\u008a\3\2\2\2\u00e8\u008f\3\2\2\2\u00e8\u00a3\3\2\2\2\u00e8\u00b1\3\2"+ + "\2\2\u00e8\u00b9\3\2\2\2\u00e8\u00bd\3\2\2\2\u00e8\u00c6\3\2\2\2\u00e8"+ + "\u00d0\3\2\2\2\u00e8\u00d4\3\2\2\2\u00e8\u00da\3\2\2\2\u00e8\u00dd\3\2"+ + "\2\2\u00e8\u00e4\3\2\2\2\u00e9\7\3\2\2\2\u00ea\u00ec\7\30\2\2\u00eb\u00ed"+ + "\5\26\f\2\u00ec\u00eb\3\2\2\2\u00ec\u00ed\3\2\2\2\u00ed\u00ef\3\2\2\2"+ + "\u00ee\u00f0\7\3\2\2\u00ef\u00ee\3\2\2\2\u00ef\u00f0\3\2\2\2\u00f0\t\3"+ + "\2\2\2\u00f1\u00f2\7\31\2\2\u00f2\u00f3\7G\2\2\u00f3\u00f4\7\31\2\2\u00f4"+ + "\13\3\2\2\2\u00f5\u00fa\7G\2\2\u00f6\u00f7\7\32\2\2\u00f7\u00f9\7G\2\2"+ + "\u00f8\u00f6\3\2\2\2\u00f9\u00fc\3\2\2\2\u00fa\u00f8\3\2\2\2\u00fa\u00fb"+ + "\3\2\2\2\u00fb\u00ff\3\2\2\2\u00fc\u00fa\3\2\2\2\u00fd\u00fe\7\33\2\2"+ + "\u00fe\u0100\7G\2\2\u00ff\u00fd\3\2\2\2\u00ff\u0100\3\2\2\2\u0100\r\3"+ + "\2\2\2\u0101\u0102\5 \21\2\u0102\17\3\2\2\2\u0103\u0104\5 \21\2\u0104"+ + "\21\3\2\2\2\u0105\u010a\5 \21\2\u0106\u0107\7\21\2\2\u0107\u0109\5 \21"+ + "\2\u0108\u0106\3\2\2\2\u0109\u010c\3\2\2\2\u010a\u0108\3\2\2\2\u010a\u010b"+ + "\3\2\2\2\u010b\23\3\2\2\2\u010c\u010a\3\2\2\2\u010d\u0112\7G\2\2\u010e"+ + "\u010f\7\21\2\2\u010f\u0111\7G\2\2\u0110\u010e\3\2\2\2\u0111\u0114\3\2"+ + "\2\2\u0112\u0110\3\2\2\2\u0112\u0113\3\2\2\2\u0113\25\3\2\2\2\u0114\u0112"+ + "\3\2\2\2\u0115\u011a\5\30\r\2\u0116\u0117\7\21\2\2\u0117\u0119\5\30\r"+ + "\2\u0118\u0116\3\2\2\2\u0119\u011c\3\2\2\2\u011a\u0118\3\2\2\2\u011a\u011b"+ + "\3\2\2\2\u011b\27\3\2\2\2\u011c\u011a\3\2\2\2\u011d\u011e\b\r\1\2\u011e"+ + "\u012b\7\34\2\2\u011f\u012b\7\35\2\2\u0120\u012b\7\36\2\2\u0121\u012b"+ + "\5H%\2\u0122\u012b\5J&\2\u0123\u012b\7\37\2\2\u0124\u012b\5(\25\2\u0125"+ + "\u012b\5\32\16\2\u0126\u012b\5.\30\2\u0127\u0128\5D#\2\u0128\u0129\5\30"+ + "\r\n\u0129\u012b\3\2\2\2\u012a\u011d\3\2\2\2\u012a\u011f\3\2\2\2\u012a"+ + "\u0120\3\2\2\2\u012a\u0121\3\2\2\2\u012a\u0122\3\2\2\2\u012a\u0123\3\2"+ + "\2\2\u012a\u0124\3\2\2\2\u012a\u0125\3\2\2\2\u012a\u0126\3\2\2\2\u012a"+ + "\u0127\3\2\2\2\u012b\u014e\3\2\2\2\u012c\u012d\f\13\2\2\u012d\u012e\5"+ + "F$\2\u012e\u012f\5\30\r\13\u012f\u014d\3\2\2\2\u0130\u0131\f\t\2\2\u0131"+ + "\u0132\5@!\2\u0132\u0133\5\30\r\n\u0133\u014d\3\2\2\2\u0134\u0135\f\b"+ + "\2\2\u0135\u0136\5> \2\u0136\u0137\5\30\r\t\u0137\u014d\3\2\2\2\u0138"+ + "\u0139\f\7\2\2\u0139\u013a\5<\37\2\u013a\u013b\5\30\r\7\u013b\u014d\3"+ + "\2\2\2\u013c\u013d\f\6\2\2\u013d\u013e\5:\36\2\u013e\u013f\5\30\r\7\u013f"+ + "\u014d\3\2\2\2\u0140\u0141\f\5\2\2\u0141\u0142\58\35\2\u0142\u0143\5\30"+ + "\r\6\u0143\u014d\3\2\2\2\u0144\u0145\f\4\2\2\u0145\u0146\5\66\34\2\u0146"+ + "\u0147\5\30\r\5\u0147\u014d\3\2\2\2\u0148\u0149\f\3\2\2\u0149\u014a\5"+ + "B\"\2\u014a\u014b\5\30\r\4\u014b\u014d\3\2\2\2\u014c\u012c\3\2\2\2\u014c"+ + "\u0130\3\2\2\2\u014c\u0134\3\2\2\2\u014c\u0138\3\2\2\2\u014c\u013c\3\2"+ + "\2\2\u014c\u0140\3\2\2\2\u014c\u0144\3\2\2\2\u014c\u0148\3\2\2\2\u014d"+ + "\u0150\3\2\2\2\u014e\u014c\3\2\2\2\u014e\u014f\3\2\2\2\u014f\31\3\2\2"+ + "\2\u0150\u014e\3\2\2\2\u0151\u0155\5\36\20\2\u0152\u0154\5$\23\2\u0153"+ + "\u0152\3\2\2\2\u0154\u0157\3\2\2\2\u0155\u0153\3\2\2\2\u0155\u0156\3\2"+ + "\2\2\u0156\33\3\2\2\2\u0157\u0155\3\2\2\2\u0158\u015a\5\36\20\2\u0159"+ + "\u015b\5$\23\2\u015a\u0159\3\2\2\2\u015b\u015c\3\2\2\2\u015c\u015a\3\2"+ + "\2\2\u015c\u015d\3\2\2\2\u015d\35\3\2\2\2\u015e\u0164\5 \21\2\u015f\u0160"+ + "\7 \2\2\u0160\u0161\5\30\r\2\u0161\u0162\7!\2\2\u0162\u0164\3\2\2\2\u0163"+ + "\u015e\3\2\2\2\u0163\u015f\3\2\2\2\u0164\37\3\2\2\2\u0165\u016c\7G\2\2"+ + "\u0166\u0167\7 \2\2\u0167\u0168\5\30\r\2\u0168\u0169\7!\2\2\u0169\u016a"+ + "\5\"\22\2\u016a\u016c\3\2\2\2\u016b\u0165\3\2\2\2\u016b\u0166\3\2\2\2"+ + "\u016c\u0170\3\2\2\2\u016d\u016f\5\"\22\2\u016e\u016d\3\2\2\2\u016f\u0172"+ + "\3\2\2\2\u0170\u016e\3\2\2\2\u0170\u0171\3\2\2\2\u0171!\3\2\2\2\u0172"+ + "\u0170\3\2\2\2\u0173\u0175\5$\23\2\u0174\u0173\3\2\2\2\u0175\u0178\3\2"+ + "\2\2\u0176\u0174\3\2\2\2\u0176\u0177\3\2\2\2\u0177\u017f\3\2\2\2\u0178"+ + "\u0176\3\2\2\2\u0179\u017a\7\"\2\2\u017a\u017b\5\30\r\2\u017b\u017c\7"+ + "#\2\2\u017c\u0180\3\2\2\2\u017d\u017e\7\32\2\2\u017e\u0180\7G\2\2\u017f"+ + "\u0179\3\2\2\2\u017f\u017d\3\2\2\2\u0180#\3\2\2\2\u0181\u0182\7\33\2\2"+ + "\u0182\u0184\7G\2\2\u0183\u0181\3\2\2\2\u0183\u0184\3\2\2\2\u0184\u0185"+ + "\3\2\2\2\u0185\u0186\5&\24\2\u0186%\3\2\2\2\u0187\u0189\7 \2\2\u0188\u018a"+ + "\5\26\f\2\u0189\u0188\3\2\2\2\u0189\u018a\3\2\2\2\u018a\u018b\3\2\2\2"+ + "\u018b\u018f\7!\2\2\u018c\u018f\5.\30\2\u018d\u018f\5J&\2\u018e\u0187"+ + "\3\2\2\2\u018e\u018c\3\2\2\2\u018e\u018d\3\2\2\2\u018f\'\3\2\2\2\u0190"+ + "\u0191\7\23\2\2\u0191\u0192\5*\26\2\u0192)\3\2\2\2\u0193\u0195\7 \2\2"+ + "\u0194\u0196\5,\27\2\u0195\u0194\3\2\2\2\u0195\u0196\3\2\2\2\u0196\u0197"+ + "\3\2\2\2\u0197\u0198\7!\2\2\u0198\u0199\5\4\3\2\u0199\u019a\7\b\2\2\u019a"+ + "+\3\2\2\2\u019b\u019e\5\24\13\2\u019c\u019d\7\21\2\2\u019d\u019f\7\37"+ + "\2\2\u019e\u019c\3\2\2\2\u019e\u019f\3\2\2\2\u019f\u01a2\3\2\2\2\u01a0"+ + "\u01a2\7\37\2\2\u01a1\u019b\3\2\2\2\u01a1\u01a0\3\2\2\2\u01a2-\3\2\2\2"+ + "\u01a3\u01a5\7$\2\2\u01a4\u01a6\5\60\31\2\u01a5\u01a4\3\2\2\2\u01a5\u01a6"+ + "\3\2\2\2\u01a6\u01a7\3\2\2\2\u01a7\u01a8\7%\2\2\u01a8/\3\2\2\2\u01a9\u01af"+ + "\5\62\32\2\u01aa\u01ab\5\64\33\2\u01ab\u01ac\5\62\32\2\u01ac\u01ae\3\2"+ + "\2\2\u01ad\u01aa\3\2\2\2\u01ae\u01b1\3\2\2\2\u01af\u01ad\3\2\2\2\u01af"+ + "\u01b0\3\2\2\2\u01b0\u01b3\3\2\2\2\u01b1\u01af\3\2\2\2\u01b2\u01b4\5\64"+ + "\33\2\u01b3\u01b2\3\2\2\2\u01b3\u01b4\3\2\2\2\u01b4\61\3\2\2\2\u01b5\u01b6"+ + "\7\"\2\2\u01b6\u01b7\5\30\r\2\u01b7\u01b8\7#\2\2\u01b8\u01b9\7\4\2\2\u01b9"+ + "\u01ba\5\30\r\2\u01ba\u01c0\3\2\2\2\u01bb\u01bc\7G\2\2\u01bc\u01bd\7\4"+ + "\2\2\u01bd\u01c0\5\30\r\2\u01be\u01c0\5\30\r\2\u01bf\u01b5\3\2\2\2\u01bf"+ + "\u01bb\3\2\2\2\u01bf\u01be\3\2\2\2\u01c0\63\3\2\2\2\u01c1\u01c2\t\2\2"+ + "\2\u01c2\65\3\2\2\2\u01c3\u01c4\7&\2\2\u01c4\67\3\2\2\2\u01c5\u01c6\7"+ + "\'\2\2\u01c69\3\2\2\2\u01c7\u01c8\t\3\2\2\u01c8;\3\2\2\2\u01c9\u01ca\7"+ + ".\2\2\u01ca=\3\2\2\2\u01cb\u01cc\t\4\2\2\u01cc?\3\2\2\2\u01cd\u01ce\t"+ + "\5\2\2\u01ceA\3\2\2\2\u01cf\u01d0\t\6\2\2\u01d0C\3\2\2\2\u01d1\u01d2\t"+ + "\7\2\2\u01d2E\3\2\2\2\u01d3\u01d4\7<\2\2\u01d4G\3\2\2\2\u01d5\u01d6\t"+ + "\b\2\2\u01d6I\3\2\2\2\u01d7\u01d8\t\t\2\2\u01d8K\3\2\2\2\u01d9\u01da\7"+ + "=\2\2\u01da\u01db\5\f\7\2\u01db\u01dc\5&\24\2\u01dcM\3\2\2\2\u01dd\u01de"+ + "\7\24\2\2\u01de\u01df\7G\2\2\u01df\u01e0\5\\/\2\u01e0O\3\2\2\2\u01e1\u01e2"+ + "\7\23\2\2\u01e2\u01e3\5\f\7\2\u01e3\u01e4\5*\26\2\u01e4Q\3\2\2\2\u01e5"+ + "\u01e6\7>\2\2\u01e6\u01e7\7\23\2\2\u01e7\u01e8\5\f\7\2\u01e8\u01e9\5*"+ + "\26\2\u01e9S\3\2\2\2\u01ea\u01eb\t\n\2\2\u01ebU\3\2\2\2\u01ec\u01ed\7"+ + "G\2\2\u01ed\u01ef\7$\2\2\u01ee\u01f0\5T+\2\u01ef\u01ee\3\2\2\2\u01f0\u01f1"+ + "\3\2\2\2\u01f1\u01ef\3\2\2\2\u01f1\u01f2\3\2\2\2\u01f2\u01f3\3\2\2\2\u01f3"+ + "\u01f4\7%\2\2\u01f4W\3\2\2\2\u01f5\u01f6\7A\2\2\u01f6\u01f8\7 \2\2\u01f7"+ + "\u01f9\5,\27\2\u01f8\u01f7\3\2\2\2\u01f8\u01f9\3\2\2\2\u01f9\u01fa\3\2"+ + "\2\2\u01fa\u01fb\7!\2\2\u01fb\u01fc\5\4\3\2\u01fc\u01fd\7\b\2\2\u01fd"+ + "Y\3\2\2\2\u01fe\u0202\5P)\2\u01ff\u0202\5V,\2\u0200\u0202\5X-\2\u0201"+ + "\u01fe\3\2\2\2\u0201\u01ff\3\2\2\2\u0201\u0200\3\2\2\2\u0202[\3\2\2\2"+ + "\u0203\u0208\5R*\2\u0204\u0208\5P)\2\u0205\u0208\5V,\2\u0206\u0208\5X"+ + "-\2\u0207\u0203\3\2\2\2\u0207\u0204\3\2\2\2\u0207\u0205\3\2\2\2\u0207"+ + "\u0206\3\2\2\2\u0208\u020b\3\2\2\2\u0209\u0207\3\2\2\2\u0209\u020a\3\2"+ + "\2\2\u020a\u020c\3\2\2\2\u020b\u0209\3\2\2\2\u020c\u020d\7\b\2\2\u020d"+ + "]\3\2\2\2\u020e\u020f\7G\2\2\u020f\u0210\7B\2\2\u0210_\3\2\2\2\u0211\u0212"+ + "\7G\2\2\u0212\u0213\7C\2\2\u0213a\3\2\2\2\u0214\u0215\7G\2\2\u0215\u0216"+ + "\7D\2\2\u0216c\3\2\2\2\u0217\u0218\7G\2\2\u0218\u0219\7E\2\2\u0219e\3"+ + "\2\2\2\u021a\u021b\7G\2\2\u021b\u021c\7F\2\2\u021cg\3\2\2\2\u021d\u021e"+ + "\5 \21\2\u021ei\3\2\2\2.pt\u009a\u009f\u00ab\u00c1\u00c6\u00cc\u00d8\u00dd"+ + "\u00e4\u00e8\u00ec\u00ef\u00fa\u00ff\u010a\u0112\u011a\u012a\u014c\u014e"+ + "\u0155\u015c\u0163\u016b\u0170\u0176\u017f\u0183\u0189\u018e\u0195\u019e"+ + "\u01a1\u01a5\u01af\u01b3\u01bf\u01f1\u01f8\u0201\u0207\u0209"; public static final ATN _ATN = new ATNDeserializer().deserialize(_serializedATN.toCharArray()); static { diff --git a/src/main/java/org/luapp/language/generator/luappVisitor.java b/src/main/java/org/luapp/language/generator/luappVisitor.java index 74867ad..30d1174 100644 --- a/src/main/java/org/luapp/language/generator/luappVisitor.java +++ b/src/main/java/org/luapp/language/generator/luappVisitor.java @@ -1,4 +1,4 @@ -// Generated from C:/Users/Harry/Desktop/Lua/lua-plus-plus/src/main/java/org/luapp/language/parser\luapp.g4 by ANTLR 4.8 +// Generated from C:/Users/Harry/Desktop/Lua/lpp2electricboogaloo/lua-plus-plus/src/main/java/org/luapp/language/parser\luapp.g4 by ANTLR 4.8 package org.luapp.language.generator; import org.antlr.v4.runtime.tree.ParseTreeVisitor; diff --git a/src/main/java/org/luapp/language/handlers/NewClassHandler.java b/src/main/java/org/luapp/language/handlers/NewClassHandler.java index a9e2815..9067acf 100644 --- a/src/main/java/org/luapp/language/handlers/NewClassHandler.java +++ b/src/main/java/org/luapp/language/handlers/NewClassHandler.java @@ -1,13 +1,16 @@ package org.luapp.language.handlers; import org.antlr.v4.runtime.ParserRuleContext; +import org.antlr.v4.runtime.tree.ParseTree; import org.luapp.language.generator.luappParser; import org.luapp.language.listeners.LuaPPListener; import org.luapp.language.loader.ListenerManager; public class NewClassHandler extends LuaPPListener { + public NewClassHandler(){ this.setTarget(luappParser.RULE_newclass); + //this.ignoreCheck = true; } @Override @@ -17,6 +20,21 @@ public void onSetManager() { @Override public void onEnterContext(ParserRuleContext enterContext) { + System.out.println(enterContext.getText()); + boolean isLocal = enterContext.getText().startsWith("local"); + System.out.println(isLocal); + String name = this.getLuaPP().getRawFromContext((ParserRuleContext) enterContext.getChild(isLocal ? 1 : 0)); + ParseTree newClass = enterContext.getChild(isLocal ? 3 : 2); + ParseTree paramsChild = newClass.getChild(2); + + String params = paramsChild instanceof luappParser.ArgsContext ? + "" : + this.getLuaPP().getRawFromContext((ParserRuleContext) paramsChild); + + String className = this.getLuaPP().getRawFromContext((ParserRuleContext) newClass.getChild(1)); + System.out.println( (isLocal ? "local " : "") + name + " = " + className + ".new" + params); + this.addToLuaPPResult( (isLocal ? "local " : "") + name + " = " + className + ".new" + params); + } diff --git a/src/main/java/org/luapp/language/handlers/SafeHandler.java b/src/main/java/org/luapp/language/handlers/SafeHandler.java index d66ccf2..2a83eb8 100644 --- a/src/main/java/org/luapp/language/handlers/SafeHandler.java +++ b/src/main/java/org/luapp/language/handlers/SafeHandler.java @@ -9,7 +9,7 @@ public class SafeHandler extends LuaPPListener { public SafeHandler() { this.setTarget(luappParser.RULE_safeOperator); - this.ignoreCheck = true; + //this.ignoreCheck = true; } @Override diff --git a/src/main/java/org/luapp/language/handlers/StatementHandler.java b/src/main/java/org/luapp/language/handlers/StatementHandler.java index 27bdabf..edfbb7b 100644 --- a/src/main/java/org/luapp/language/handlers/StatementHandler.java +++ b/src/main/java/org/luapp/language/handlers/StatementHandler.java @@ -64,6 +64,8 @@ public void onEnterContext(ParserRuleContext enterContext) { boolean removeSafeIndex = false; + + boolean isNewStatement = false; if (enterContext.children != null) { for (ParseTree child : enterContext.children) { if(child instanceof TerminalNodeImpl) continue; @@ -79,13 +81,22 @@ public void onEnterContext(ParserRuleContext enterContext) { .handleEnterContext(enterContext); return; } + if(((ParserRuleContext) child).getRuleIndex() == luappParser.RULE_newclass){ + System.out.println("Done?"); + isNewStatement = true; + + } } } + if(isNewStatement){ - - + this.listenerManager + .GetInstangeByTarget(luappParser.RULE_newclass) + .handleEnterContext(enterContext); + return; + } if(this.isParentClass(enterContext)) { - System.out.println("Parent is a class!"); + //System.out.println("Parent is a class!"); return; } @@ -97,6 +108,7 @@ public void onEnterContext(ParserRuleContext enterContext) { return; } + //System.out.println("NewLine:" + this.getLuaPP().getRawFromContext(enterContext)); diff --git a/src/main/java/org/luapp/language/listeners/MasterLuaPPListener.java b/src/main/java/org/luapp/language/listeners/MasterLuaPPListener.java index 2ac16d2..79840ef 100644 --- a/src/main/java/org/luapp/language/listeners/MasterLuaPPListener.java +++ b/src/main/java/org/luapp/language/listeners/MasterLuaPPListener.java @@ -25,12 +25,10 @@ public void exitChunk(luappParser.ChunkContext ctx) { @Override public void enterBlock(luappParser.BlockContext ctx) { - } @Override public void exitBlock(luappParser.BlockContext ctx) { - } @Override diff --git a/src/main/java/org/luapp/language/parser/luapp.g4 b/src/main/java/org/luapp/language/parser/luapp.g4 index 5312570..54d8e62 100644 --- a/src/main/java/org/luapp/language/parser/luapp.g4 +++ b/src/main/java/org/luapp/language/parser/luapp.g4 @@ -23,7 +23,7 @@ stat | 'for' namelist 'in' explist 'do' block 'end' | 'function' funcname funcbody | 'class' classname ('extends' abstractclassname)? classbody - | 'local' 'class' classname ('extends' abstractclassname)? classbody + | ('local')? 'class' classname ('extends' abstractclassname)? classbody | 'local' 'function' NAME funcbody | 'local' namelist ('=' explist)? | 'safe' safeOperator @@ -44,11 +44,11 @@ funcname ; classname - : NAME + : var ; abstractclassname - : NAME + : var ; varlist diff --git a/src/main/java/org/luapp/language/test.lpp b/src/main/java/org/luapp/language/test.lpp index d22685c..e8da2c1 100644 --- a/src/main/java/org/luapp/language/test.lpp +++ b/src/main/java/org/luapp/language/test.lpp @@ -1,21 +1,13 @@ -class cat extends animal +class ogl_suits.abilityMeta name {get set} - age {get set} - type {get } constructor(name) - self.name = name + self.name = name end - function isCat() - return true + function addHook(hookName, func) + hook.Add(hookName, hookName .. "suits_ability", func) end - static function testing() - return "test13" - end -end - -print("hello world?") -if 1==1 then print("helloworld2") end \ No newline at end of file +end \ No newline at end of file diff --git a/src/main/java/org/luapp/language/test.lua b/src/main/java/org/luapp/language/test.lua index 6f7915c..9c9717c 100644 --- a/src/main/java/org/luapp/language/test.lua +++ b/src/main/java/org/luapp/language/test.lua @@ -4,38 +4,21 @@ Don't remove this notice please https://github.com/LuaPlusPlus/lua-plus-plus ]]-- -cat = {} -cat.__index = cat -function cat:new(name) +ogl_suits.abilityMeta = {} +ogl_suits.abilityMeta.__index = ogl_suits.abilityMeta +function ogl_suits.abilityMeta:new(name) local self = {} - setmetatable(self, cat) + setmetatable(self, ogl_suits.abilityMeta) - for k,v in pairs(animal) do - self[k] = v - end self.name = name return self end -function cat:isCat() - return true +function ogl_suits.abilityMeta:addHook(hookName, func) + hook.Add(hookName, hookName .. "suits_ability", func) end -function cat.testing() - return "test13" - end -function cat:getName() +function ogl_suits.abilityMeta:getName() return self.name end -function cat:setName(obj) +function ogl_suits.abilityMeta:setName(obj) self.name = obj -end -function cat:getAge() - return self.age -end -function cat:setAge(obj) - self.age = obj -end -function cat:getType() - return self.type -end -print("hello world?") -if 1==1 then print("helloworld2") end \ No newline at end of file +end \ No newline at end of file diff --git a/src/main/java/org/luapp/language/watcher/FileWatcher.java b/src/main/java/org/luapp/language/watcher/FileWatcher.java new file mode 100644 index 0000000..6bf6fc8 --- /dev/null +++ b/src/main/java/org/luapp/language/watcher/FileWatcher.java @@ -0,0 +1,4 @@ +package org.luapp.language.watcher; + +public class FileWatcher { +} From 576edeec883d6c84e2663f33e44a639a7f9cb8b7 Mon Sep 17 00:00:00 2001 From: nosharp Date: Fri, 12 Jun 2020 20:16:40 +0100 Subject: [PATCH 2/4] updated gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 5b086e8..ad0607c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .idea/**/** .idea/modules.xml target/** +.idea/vcs.xml From 1ae48c3e635fa3b07f8680700803a6a187660c36 Mon Sep 17 00:00:00 2001 From: nosharp Date: Fri, 12 Jun 2020 20:27:27 +0100 Subject: [PATCH 3/4] Change ":" to "." in ConstructorHandler as it is a static instantiation --- .../java/org/luapp/language/handlers/ConstructorHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/luapp/language/handlers/ConstructorHandler.java b/src/main/java/org/luapp/language/handlers/ConstructorHandler.java index 7f3b17f..02a976d 100644 --- a/src/main/java/org/luapp/language/handlers/ConstructorHandler.java +++ b/src/main/java/org/luapp/language/handlers/ConstructorHandler.java @@ -31,7 +31,7 @@ public void onEnterContext(ParserRuleContext enterContext) { String abstractClass = this.getLuaPP().currentAbstract == null ? "" : this.getLuaPP().currentAbstract; String currentClass = this.getLuaPP().currentClass == null ? "" : this.getLuaPP().currentClass; - this.addToLuaPPResult("function " + currentClass + ":new(" + params + ")\n" + + this.addToLuaPPResult("function " + currentClass + ".new(" + params + ")\n" + "\tlocal self = {}\n" + "\tsetmetatable(self, " + currentClass +")" + "\n" + (abstractClass.isEmpty() ? "" : ("\n\tfor k,v in pairs(" + abstractClass + ") do \n" + From e3603c0a73a08edd6f8152bf34b72a8b9a89159a Mon Sep 17 00:00:00 2001 From: nosharp Date: Fri, 12 Jun 2020 20:54:10 +0100 Subject: [PATCH 4/4] Removes the new Keyword until we can find a better way to implement. --- .idea/misc.xml | 16 + src/main/java/org/luapp/language/Luapp.java | 13 +- .../org/luapp/language/generator/luapp.interp | 5 +- .../org/luapp/language/generator/luapp.tokens | 44 +- .../language/generator/luappBaseListener.java | 12 - .../language/generator/luappBaseVisitor.java | 7 - .../language/generator/luappLexer.interp | 5 +- .../luapp/language/generator/luappLexer.java | 481 ++++--- .../language/generator/luappLexer.tokens | 44 +- .../language/generator/luappListener.java | 10 - .../luapp/language/generator/luappParser.java | 1172 ++++++++--------- .../language/generator/luappVisitor.java | 6 - .../language/handlers/NewClassHandler.java | 45 - .../language/handlers/StatementHandler.java | 11 - .../listeners/LuaPPFileWatchingService.java | 4 + .../listeners/MasterLuaPPListener.java | 9 - .../java/org/luapp/language/parser/luapp.g4 | 4 - src/main/java/org/luapp/language/test.lpp | 21 +- src/main/java/org/luapp/language/test.lua | 26 +- .../luapp/language/watcher/FileWatcher.java | 10 + 20 files changed, 881 insertions(+), 1064 deletions(-) delete mode 100644 src/main/java/org/luapp/language/handlers/NewClassHandler.java create mode 100644 src/main/java/org/luapp/language/listeners/LuaPPFileWatchingService.java diff --git a/.idea/misc.xml b/.idea/misc.xml index 80cd069..ddfafd0 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,5 +1,21 @@ + + +