Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
// Generated from /home/jesper/git/extendj/java4/build/tmp/preprocessParser/JavaParser.all
package org.extendj.parser;
import org.extendj.ast.*;
import org.extendj.scanner.JavaScanner;
import org.extendj.scanner.Unicode;
import beaver.*;
import java.util.ArrayList;
/**
* This class is a LALR parser generated by
* Beaver v0.9.6.1
* from the grammar specification "JavaParser.beaver".
*/
public class JavaParser extends Parser {
static public class Terminals {
static public final short EOF = 0;
static public final short SEMICOLON = 1;
static public final short IDENTIFIER = 2;
static public final short RBRACE = 3;
static public final short BOOLEAN = 4;
static public final short BYTE = 5;
static public final short SHORT = 6;
static public final short INT = 7;
static public final short LONG = 8;
static public final short CHAR = 9;
static public final short FLOAT = 10;
static public final short DOUBLE = 11;
static public final short PLUSPLUS = 12;
static public final short MINUSMINUS = 13;
static public final short VOID = 14;
static public final short RPAREN = 15;
static public final short SYNCHRONIZED = 16;
static public final short LPAREN = 17;
static public final short PUBLIC = 18;
static public final short PROTECTED = 19;
static public final short PRIVATE = 20;
static public final short STATIC = 21;
static public final short ABSTRACT = 22;
static public final short FINAL = 23;
static public final short NATIVE = 24;
static public final short TRANSIENT = 25;
static public final short VOLATILE = 26;
static public final short STRICTFP = 27;
static public final short LBRACE = 28;
static public final short CLASS = 29;
static public final short COMMA = 30;
static public final short NEW = 31;
static public final short SUPER = 32;
static public final short THIS = 33;
static public final short INTEGER_LITERAL = 34;
static public final short LONG_LITERAL = 35;
static public final short FLOATING_POINT_LITERAL = 36;
static public final short DOUBLE_LITERAL = 37;
static public final short BOOLEAN_LITERAL = 38;
static public final short CHARACTER_LITERAL = 39;
static public final short STRING_LITERAL = 40;
static public final short NULL_LITERAL = 41;
static public final short PLUS = 42;
static public final short MINUS = 43;
static public final short COLON = 44;
static public final short RBRACK = 45;
static public final short QUESTION = 46;
static public final short OROR = 47;
static public final short ANDAND = 48;
static public final short OR = 49;
static public final short XOR = 50;
static public final short INTERFACE = 51;
static public final short AND = 52;
static public final short EQEQ = 53;
static public final short NOTEQ = 54;
static public final short LT = 55;
static public final short GT = 56;
static public final short LTEQ = 57;
static public final short GTEQ = 58;
static public final short INSTANCEOF = 59;
static public final short DOT = 60;
static public final short LBRACK = 61;
static public final short LSHIFT = 62;
static public final short RSHIFT = 63;
static public final short URSHIFT = 64;
static public final short DOCUMENTATION_COMMENT = 65;
static public final short MULT = 66;
static public final short DIV = 67;
static public final short MOD = 68;
static public final short EQ = 69;
static public final short WHILE = 70;
static public final short DO = 71;
static public final short FOR = 72;
static public final short IF = 73;
static public final short SWITCH = 74;
static public final short BREAK = 75;
static public final short CONTINUE = 76;
static public final short ASSERT = 77;
static public final short RETURN = 78;
static public final short THROW = 79;
static public final short TRY = 80;
static public final short MULTEQ = 81;
static public final short DIVEQ = 82;
static public final short MODEQ = 83;
static public final short PLUSEQ = 84;
static public final short MINUSEQ = 85;
static public final short LSHIFTEQ = 86;
static public final short RSHIFTEQ = 87;
static public final short URSHIFTEQ = 88;
static public final short ANDEQ = 89;
static public final short XOREQ = 90;
static public final short OREQ = 91;
static public final short COMP = 92;
static public final short NOT = 93;
static public final short CASE = 94;
static public final short DEFAULT = 95;
static public final short ELSE = 96;
static public final short IMPORT = 97;
static public final short IMPLEMENTS = 98;
static public final short THROWS = 99;
static public final short CATCH = 100;
static public final short FINALLY = 101;
static public final short PACKAGE = 102;
static public final short EXTENDS = 103;
static public final String[] NAMES = {
"EOF",
"SEMICOLON",
"IDENTIFIER",
"RBRACE",
"BOOLEAN",
"BYTE",
"SHORT",
"INT",
"LONG",
"CHAR",
"FLOAT",
"DOUBLE",
"PLUSPLUS",
"MINUSMINUS",
"VOID",
"RPAREN",
"SYNCHRONIZED",
"LPAREN",
"PUBLIC",
"PROTECTED",
"PRIVATE",
"STATIC",
"ABSTRACT",
"FINAL",
"NATIVE",
"TRANSIENT",
"VOLATILE",
"STRICTFP",
"LBRACE",
"CLASS",
"COMMA",
"NEW",
"SUPER",
"THIS",
"INTEGER_LITERAL",
"LONG_LITERAL",
"FLOATING_POINT_LITERAL",
"DOUBLE_LITERAL",
"BOOLEAN_LITERAL",
"CHARACTER_LITERAL",
"STRING_LITERAL",
"NULL_LITERAL",
"PLUS",
"MINUS",
"COLON",
"RBRACK",
"QUESTION",
"OROR",
"ANDAND",
"OR",
"XOR",
"INTERFACE",
"AND",
"EQEQ",
"NOTEQ",
"LT",
"GT",
"LTEQ",
"GTEQ",
"INSTANCEOF",
"DOT",
"LBRACK",
"LSHIFT",
"RSHIFT",
"URSHIFT",
"DOCUMENTATION_COMMENT",
"MULT",
"DIV",
"MOD",
"EQ",
"WHILE",
"DO",
"FOR",
"IF",
"SWITCH",
"BREAK",
"CONTINUE",
"ASSERT",
"RETURN",
"THROW",
"TRY",
"MULTEQ",
"DIVEQ",
"MODEQ",
"PLUSEQ",
"MINUSEQ",
"LSHIFTEQ",
"RSHIFTEQ",
"URSHIFTEQ",
"ANDEQ",
"XOREQ",
"OREQ",
"COMP",
"NOT",
"CASE",
"DEFAULT",
"ELSE",
"IMPORT",
"IMPLEMENTS",
"THROWS",
"CATCH",
"FINALLY",
"PACKAGE",
"EXTENDS"
};
}
static final ParsingTables PARSING_TABLES = new ParsingTables(
"U9pjNGMy5SKNFhFlyHeUA0OApnO34rjGUO021Wec0X9IejXTeA240eg0cAYO8A20BM80AeZ" +
"T1PYOsBtp$oRktPhPj$ToWUVVk#StTtRFT#RCDx6pitc9Jfx1R$ft2Xr67UNQZVzEeVjfZb" +
"oRzEyKUe1coRKR$fr2yy0ViVi9LIEyGz$IT$GzhQGVw4VwoVq4keS5He#7CMfD#rCRpe4#J" +
"#$IO$GolKAlqclqEhr1Rz9R8crGUCkeBYNK8RrMpOw8v7Me9TKGkfotjGixF0wbLXQzB1bR" +
"Xzwch#aRztHg3zqpxY3KGhq8ix707gQ6G1#tU7k16ffhIEDe0Um3OlsUEA7hur1dTqigr13" +
"hH1sfjJEDsZWDQH$egkcGI3ake8leOQIu5ItTWXfQl1dBGMVJkHA$AqvetJZKkT6IgW7j8$" +
"cZ7DIEVK5RGrVD#bdutqNRWlywu6$sPkSlyDlZX8wDGvqRBAcE0$yRsQsQ$uDi9dJLx4iB$" +
"zlPHF1lI3jRlDdv2$pkE65jub3QpQBVXxr6mvrjvPvsCtkTtmnTDNlQmlzk$XdsWyzG$sPl" +
"Tlu2lpDMpen3tRTigMXFPo$tBS7VUTgPxopWTwB$xstXVoU$1VnleRtCtcBu2$osM3az3dN" +
"VjgN2A7Mw#xRSZnzYiwcQtuPmjeN$RMAavcVpoMPlCVm5VaUid16BdcLDDHdXBCb$0NiEtE" +
"z0AB3mluCEeiVPrwpCx2s6Fr3t3xlWw1Q3id9BgXdO5szWMz4akV#Efj7YAC2sCBDtptC7i" +
"ULE6wUjnPkP$TLqgyRdYDcGg2Nt5xiu9yUXhA5PZsFQ16f3qzGnZQwWANG9tKQtqm9wZkwX" +
"UsagpQU5T2QTHUVJCFgLZgBVw4#ovEKSuRGL0NLHpeVIQ3xK6UAqOiyuGtLkhTYpD4kk$sm" +
"NFZGEfPSi#WnBmW#K9VdKx8rrT2$4aVKSrj4vcL$kdCGlvyUprlnuVg32dHRehUV8zL$jmY" +
"#FHItwBDlaRxCty3$NESazZNVbl$AkeYVH2FufZUIVQ1RdqbLe4x4s9KvGtXYKDREace7yR" +
"d1s9ZaZbhDAU7BsiEpdmDXokf5kidWppvS#v$jAj3Nx3FEpsxnwOylOX#mZzZ5RwjKRUvzz" +
"m9UYLZvdxucKT0lThMTs$LNiD62RqIwCiIFO2SoX7LXVDe2DuNjZkmtjo7gmdgmNwyrEP7t" +
"OIMmWEvcTmWQnKzbfx7Hs1ZkJdKNxqKxkAHWHzdCg#K7K32bVek5yALzACqKjkAUmLy6r03" +
"dMKLpvvxGTQcgwCuGgHKgaQktiw9N5QHfJbf#Tsy7rFKRWsbBC6Ub5Qilw8x#VsLkI1yhYR" +
"E4l2zLtZgDj4fLb1kr4#xgdqODE9QkWPlG8pMPlyv#Hwoxq4Bsdoz5TbmDbv2sSZPEpfrsH" +
"mwFiFMS3UfAtG3cs5ZpH4WTZjYzRGxBlvsVlxC7tutMIi7VwqqxExavxUigff0veYKPqAFi" +
"Qny8PuVxd7CCRiKht8jR5wSqwioFPKUneTWmxbXt7ZcTTMJVUYEzY5#U4M7HtivureATfCU" +
"hm0sTlUj$fwknE7wF$5rgE8cUmKim1vpZNcht570ELnSvsSQhZK5ParhkdiNfEQrPV7iChs" +
"FfiOrO5$fjQ#M#3O$ZM68cCtcBuAukTxE9S4eUofcQzUvfpgRC7srxoFuXrO8Uo8enolrZv" +
"TmJ$2y7Vw2s6lxBOqIxkgN4eEz#MYbq2$aCa$ylP5MmukmhrFzBAVopuNykkCtkBuQyiTeY" +
"HuN4ecs3MEuUnyNmukrdmTozcazdj3ETmrDJA$sxmlyyvtEmjXh#oQ1OZLyIXRAe5kO3Tpw" +
"zWqsNzFy3ci4SPZb$kcLR#Sx7$DkKNcBt5y5SMsyV8HN4ecsTBHKtPVBPGydy1wo#onUW$h" +
"rZvlulwRyO#DtkBuQyijekH4N6eUwu5ESyz7oaBvJdebkmlzezx5lPVoopSSVZcE0VQZ9zd" +
"zXR3NrbiQnTdM1pADxQa6icuqvfNoNFGGbxgb0h#Jh65VxbJ5$oBdAlCtcBuAujjOkJ2EDH" +
"PrvRAsTHPpzbCyj$AsPgrbloti$3VmMc6$lEvqzpiBOQ$icWQ8nV7eSvkjbGORQgT3f9$E#" +
"TGfwFJ6Tj7slg$SpGzxXplz3LxY#6lBBQEaVFZKAURBPKp07mlaFmlTWPZ$Gg44LR#ey1$j" +
"3F6x2s6lx9eOXVdfbZq6hEUcZftu3nwLtaENKsjd1b4uB$GolyvZ9zOBDxi$9N5HdQ1ponG" +
"IYs2VsgfHh3m1wBucxtP#IkBTUm2drcWj7j6$CzZw#7Sx42Ci6PlPlv4UsWyyTcP8e8pcWQ" +
"Qapuxm$dN4KJET6XmJW0B$ncDIB5kqhCpfptE2OZTW4JDU8COsISETMQQzQ8M#JwHMYHd8D" +
"zGd66mISOpZ0qjkJp3dwR3WJx7d#NFmClzgQPIkFkdNOYoGOLlvrdaAlBGkThxXQGY#xN5c" +
"xLVAvoNs0NvPu5cjbzw$2tUxFkbiY2xK0ncHxFcR$Pcvoznbzk5iaApvM$nPky$oY9cWSyi" +
"qApvcxtP#Qlb7xl0PnPerlpDtkpybSNVTe7FBD2i#PkzsVahYx$i0fzPe5dpDtkpyrSMlza" +
"5FhD0i#PlzcRdhon#iWjyPe5cpT$ipSvVMVnk5$ZC0isQlzcRdR#o#D4ky9a5cZL$ipSxVs" +
"NnWrtWCmiqQ$vcRtR#4kVrxO9ZUXPejlmjtkpp1sMnfrtWCmlKpvzrmJpTC5i6sfn2YzsRq" +
"qSQ1EvLQFkjCZWlsPKF5kSbAhVK6GZEIrxcFtdtAeBd9K08gPASbn3jf3mxbJX7QHOesXm3" +
"#v$uJqwZZDZ$ADWxUmJPqy7y1wxsMN6dvR80U#mBVA#CsPDYZvJ4VzI#m#n$u3yuFJDYlvU" +
"fxfq3qdLaF2V4aX5xsbwmvzLs0VSiq71VJRnFchtPzqc1jx8BF6Q1#ZXxOqeIzcPlTlO2Fy" +
"0ky9W5cZLxipSxUu7lRnTup0BDchtPcvszm5VVM9ufUxCtEtk1xs4NUCm2pPgzsPkTlS1tj" +
"miyPe5cpTxipSvUuBlP1HwpGBDcR$PcPo$mvdQ1nopGhDcRlTdP2tnNky1Z5cZMxCtUxEm5" +
"tjWky9W5cZLxipSxUu5lQXTup0BDchtPcvszm3Un2pncWMRDtkpDpbxWPNQ1nopGhDcRlTd" +
"P2xpOBl2O1PerUxCtEtkWR3GxcrrlyypkOCkDPsrDgIxPhaXdoPuDPlUmOUmyTWsRmMQnDz" +
"Z3x0dsb9szUEgUrxCBwYCBDEkwDtkprxt0wze57hD0isPlzcPdB$0Aky1Z5cZMxCtUxEm5N" +
"cuNUCm2pPgzsPkTlS0hxGAFCIZVm9OAwJP8imy#3NgbEoYD4X$cAwabBzPVeqZ9bgJEv$am" +
"jaZcbVngmHmvCkYh1Sw1WWUs#xFdqpnoUBKWyplR55XIpntdZ5U7dF7obXpLbxDFfhoSFTS" +
"4Br5VufZcdfFJOrgcJ$AJV9BVDH$J93$B6pvhaDyWsp6NjxOBzhiiqApuVMxDgurTa2OBD2" +
"j#VzYyYVPrri#sVPtDdIOvQD$Jv1vcxN$EXckv$trP0x#DrYA$Cz8Zb9rVuxN8xvnuVln4k" +
"w3FPe5coE#y53zBFhtjWZHPe1dokp3DpvnFBxiWJHPeXlmkJlCpvzFJBaYJ1PeXlylI$8pU" +
"vFxHVIsEVqCJxByzrkB##rK2VhtM8hzV4l0xCHj#VANbpR#PV2L2G6J$cfaAKQ6cVAPb$Fj" +
"OIBgFhaIkmeFKfK9qyI6XUvn27nQJBYMilsVbdVtWTr4g9wCibMyMobbnYg4pHUaGoaICfP" +
"ZAdVqqkev449nz3QnBb4U$25kRo3SDKnnChCtfbWlHh9UcMKiTGfc8GwmFaGY2XVNoi0XRc" +
"u1rsih8sfnkcH3DUdcQjTGXb8aunFeeYI1OM2yBYx2r2UtgMNbtmP7B0PgrEPM$jowBxjC9" +
"pWeJZGFoxEjPZ0F4Bc8$9ZZxgc5XwUCP#udzp7vXXZUZxTpv9PboPnlIC7u9ExTcxlnx#F$" +
"En1d8B86mFxBdpeUawjtHTo3vjy8pv3lu3bvZ0QBEUaMg9FMEdlzDcbkmvyzH27DLdlpRBB" +
"XVAdg#UCh4wQAvVorwFlz6#Wvo$phD$LAiNPg8#rSMxhCKukWy#TVPz9aqz#6fN2JthwJlo" +
"EZkNMrWGvDmz$LimuY3lEgiIdzNt16F5HxSpztFvOX3JfLnt$AuNrqpTtUH47zwuL$fbDwf" +
"vtuUuauAbPPHMHGMpgAwA6OgYpNbOY7SKJMlUKuHEcmj9d4NI7GNZDQ1aYcKDAgMIsamVak" +
"KHxy8Mvjuc8crDUM7G3waSHuR6N#ez6m7jXFRXJLdkxCzsTviNzQIxS$4ypaDPIgnHFgfI1" +
"iKaoubhBzdPUgdbdJpW8WmoDSkNxZpKdhMIEcSWvsM7YxzpTD#1tbQ4KJQe4HrD94rrcjpq" +
"he3P6eV3vMBKR3Vo12mTZz8wHL3iBuouAoXGlsi$Mc3OjAbiJcULJ9lKZu2yX655lSZipx0" +
"seAAj44nwQ9OKcz2z7mqjAJdgKGVseX7KtbfayzJFIofDo#TdJNRzb$9kcrjPEtYwEM#5xP" +
"rtpFhWpOsVLXCkYYMr9kKTu2y4x5znwmFsjZqOJ7febXIRr9M05aHiLrXrWTjRFgmc7HHBA" +
"atAPy1#InY#vbP7xInwSDYqaMnfDwal0latOZjksPzqCQc3uj95yMIUfEo4iZAYErAipveO" +
"zE7nQYxCumbzIRb6I3FH6oVCUk3DZPzM4owA9RKcnJCqznl8hRVcFL16vi#B2PT54lgJGhE" +
"tqG8sNvjrWTjRFgmc7HHBAatAJXZ5Y5a#wrP7xInwSDYqaMnfDwau0pK$IfY#vLP7xInwSD" +
"YqaMnfDwaY9du5n7RBypwe8rD7nQJBeebzIO5PxAfircVxUTcVT36fW#BIHV5adgJyYcGJo" +
"EsdvhrGHkRFYmcNHHBwatAbq2#ZDX#QTO7RMpwi9XqKIofDodBWIoFs2utwuCsDdrOJBeeb" +
"jIRb6L0baLibvdrGHkRFYmcNHHBwatAKY1B8xPBpVgWZKqV5fCkYYNr9kLZ897xHUx7PdtG" +
"ngOFYqaNnP9wa$8#aFSZjk#RzK4Rcpui9bqKI#fD27TnHkc6RSMd8Kpwe8rD7nQJBeebzIR" +
"b7o3$H6p$CUk3DZPzM4owA9RKcvI$WVmTiVtRh0$QsFHXCUcYM59lKlu2ybV4zY#pFcXZqu" +
"V5f8jYIRr9#HF8dn7RFytwe8rD7nQJBeebzIP5FD$sHyJs3xC#Q6FJXyMaYs99lKdv7SZl4" +
"TlVpVgWZKqV5fCkYYNr9kKt8Bz5R7ypwuCsDdrOJBeebjIR4FS5ZEGlX6tT5ypwe8rD7nQJ" +
"BeebzIPbFf3v4TlvPdtGngOFYqaNnP9wa$8waDSZjg#RzK4Rcpui9Xsh26D9lKbv3SXh4Tl" +
"NpFgWZKqV5gDkLXXBwatA4Y1B8hPBpFgWZKqV5fCkYYNr9kKb82z5R5yowuCsDdrOJBeebj" +
"IRb9U1l1onVTci3zhOz64nwQ9OKczItWJoPiJsJRC#Q6FJXyMamzuOmf9wa$86a3SYjc#Oz" +
"K4RcpuiHjsiC9RKcvI5G1P6R1UQzK4Rcpui9bqKI#fDohD0detOFclM1sri#h2OT54igJSf" +
"pmDvFcBxl5aVjB7fmsBIHR6atgGy1#IvYErpPdtGngOFYqaNnP9wa$8Ya1SZjY#QzK4Rcpu" +
"i9bqKI#fDoW8W2oAs2ypwe8rD7nQJBeebzIQ47umvxC5XMtwmMUz$CuqVx4n9grFlbHTJkK" +
"WR5EKlf2i9OqJEFSA5SwzpNv29GJe0wH1XtS6i3x3ku4nndZAmxX0MvI#aAmbZ5jQHb5BQ0" +
"MaNOTtEh0#mRcUfwtPXKVv2kf8mPc4TIId4VHfzv#amD$TfizxFsdtQp5ga3Oho5z1SIILX" +
"pCmwwatAzq2#Zx3#tgmFsjZqOOdJULXIRrA#0n9vwjRzpgmFsjZqOOdJULXIRr9U0V9AnFO" +
"LipveOzE79KxdOKczINaLoAiHsrVD#g2DJH#ME9s79VKcXBV7Vje#RClRc$L16vi#B74w3q" +
"lgJTfcyqH#eiNtbE#v2Tw7NXCyBgqbF8RM4XvNrn8UzsR3WwwDVLktctYRdHMp4bfAIqWSb" +
"UwWyTITkjAHs8EleKu8Ud57go3NdtIlSP$qM2ezj4#ANvcImgWlfHRgJPtTqUverevE46c3" +
"mWuBQr9vg5myNNI9UfFo11s34BPzGkYY#g2DJH#MgCwpyx2atgJC1Z8xOYoVTpVe$Vuig3i" +
"xB56TPvUEnvczcPztTp57TPyAsxfFcVL16vi#B56TP#TXIRr9cGjaRiHshbaVjB7fmnBLUN" +
"OUbjIRjCtfNe#bqshmw5ywMqft0LLJz1$4Ks#VTh6yVQeyshzOTNpEIpCvkw#6Q8zzQHIsn" +
"zGgLkASv#RQnOfEakaNrJ9MwdcUZse3AxPvSFzX6zKALbk6M6sNUrPy6atcquAIoezFOrF2" +
"cC8z6x0wS3NKLJNgAlAVGZg$H5z9TpPPawp4FnrPMVaMPyjQoMhxMibgrzMo3mQFduBFFFd" +
"EtWPKpHfbobYbLJxq6tcTxU$jEGTvR$UP5lDxUxck0VPOhbkQtPB5lkfRs8ZLKCPm#tvgRr" +
"yxJvtsfeJlPPAzVTaZ$zxsfMjMhNsTifplnNV1urngmpR9cSSdSjuETNFkiKakFSglshQtd" +
"YCypipFMpULl#Pp1DENF1Fq5CjNRNDRrj$O1GdA6doVFAwiniN$tGDd$$Jxv9ivbvCuyXVJ" +
"vWvZzpX5xC$eru8CTHVYvqpIhbDVdexZv$rZvyRKc9fG5MrgvXmgmPfeYxFPPRMXBUnVRlg" +
"lj8NCPLpEM$VEd8ugMIvhgFQcvTpZapdt#6REFRw3lVEJN8xEEFxMWZvZ7frpVYJwkuQoHh" +
"vgabbP0oFVXQcHppdRKL$SBdREiPTLjaNiwEUShpsVvyioXfzp1WKMvqmdmVUmrbHRE0Nvj" +
"gW5RN5Txdon7NFeQ#SS#jerXxvsow6lFNBeQwyS#jedXxvQvD3NVZdqTK0EVLNBkpxsyIBk" +
"hazEl#aUPSSEpecd7hdyoZ$xmVUzhxu8tsRYdQtqUtSl4K5uTwzLmVCElV8kzUaKycum#rw" +
"ar1g1wdlHRANogb1sfNjjIgYtTo#Q1PxDYjwBXlUQxqMJKqB61TvNlSrweKSUNTE$UqIMev" +
"3x8VP$zrX5NYUcik7FcqNykmSN$vxnV8nDoiUBPb6On9#tst3hy#BkLIgaSactIdzFxqoH3" +
"0LMfZmvrr4vq6hgOgvpzogWiiwTk$1JvFDzb7Cdrkp$gFA2MQI75rB1RbFZ8lyF1hRM4Oo$" +
"u8wXnzqnXhJeBz3R#uj0oUCHPEIEKK8zAT5$qLYustElfeUoy2cMc1B1Pw3ch4jD9OhERqL" +
"znfV8jyHVPK5$3DrPZUFZtAfh8rsYm5KM#tzBZqKhZdLkIUVXkyhYZesfcpJgt1Q1rdV7Aa" +
"6$47oownaKnplEfpiAVNsKXVMesBu#Ajqcu1ryxjeTvOuIOuJShh54OenmvlXpTkwiiQ$RI" +
"pGI9HffAT78s1ADZ2dHI7TaXYLwp9$pAfLe14eqmbAY4R4b6X5JeX7kY0nB57XsRvLAD1mb" +
"6ax61Vgu4dcf8kEHEzo7hfuHrbwYAr6YAyrEeOyhqPM1t4CfVUYQBj4LAD4LbX9T4LkYAmA" +
"vXrBwq3LSeXYVOabq799pjXFC8c3nguBTnbYYo0BhRcPH67vbiDbeBrtCeZ29TxFRA3$yEB" +
"CeJE9Tx3OwhsFCeZ297sUtqNdrC8l297wCtKRdrTqi2fDu3xkDpkjOioXCujtjDYelB5iuz" +
"MazqtrCvsfn5isFLMVHj5NqdqLKNjh71dOVpaLs7rGQd9Evmx1tYd2t2gd5kKZfnUBNopbP" +
"gTGEKtCoz#xedCmT1haxBC9JIBDXIWU7fzCA#ZbovojcCS$9V7LaV293rz7DCNMKsel6cqG" +
"X8ZWNcIsaJQdsSPr952BHyMOBYOxNFiQPH24IlSvi8T7hj8zhJQ8GYOupMqXKFr7Ehp69GY" +
"HwhTb2elhg11zh4eL8z1gpXKJrsmfyZ4aK8j6nPWk9wZav7sqIXKXqZDb2eleiaLzj4eL8T" +
"BJPGgBwNGj#bKaK8j6hpHOIlLhxECKa2f7eLMOBYUgpVJx890gHw2bc2px8dSfFSQV2Plte" +
"7kfELK$sAuo7lya#LUUzVX13gf14TPvT6iDHNWR3cmHARv8KQbhSnyCIrNbsQGnd02BmzGm" +
"U7rFl39WmbKhMntfXVLYYEiykZJsAjKVDRpmelV4T1OqQ#JqQbgZEiqjZujcqHomU1VQqwU" +
"tU56hMXoMgy#oSRRHEp6xbVD3mbh7McoI56dWy79QephDBOmzXxI6BHui#7dKV2ajKvzcbC" +
"PnxktCi7YtwUDIT4vQephDBOxEmDilYqQAFHzrPOOdgFBiqzY3M7hHujEZZKVV1i4HrdbqQ" +
"Um1h3rWyMlJngFj0MA8wpowDtO#r#oqUBVfurBq$B56TPvV6xiBQNHQF5dqywjuLbgZEioC" +
"zCtNlW#O#YqUBFXvrxmjBLEVPfR5xiNQlnQD57u#wzuObglFiqjWqh4spUBJeur5tMbYYEi" +
"ykZTs3jNii7YtwUDIz9onHdMT7gVun7Phf5eyMVJpgJWzBLEVPfR4PM9jXyMZHnwFkZB14T" +
"PvT6fk9jPaMZnPzFEhE34jKvzcbOdwoIOIT#5N1RgCMVf9952BHayqM4jL#U5#JA4IY9vaj" +
"97gIzj7V90gHQ5#pXKJxQXyZJQ8GYVOtMqXKNrVc0qsY48cED5j8L5#bvmDCeX293ZHRI7I" +
"Wzj7790gHw02pXKG7Q1$zJA8GYVOnMqYqZ$OnoYGAaMW$iuL4#saVbvb48H8TPRQGgBwNmq" +
"ypYK8aUfdPGgBwFuNvgIPHY4HFCrj8z3JjOw9952BHKyqM4ZrL#vXW4eL8TABPGg8JzOwxX" +
"LFVCRuffg#sJOYvsZP1yxZU90eHmRd8R25jIiqZMNXH$gnOvb#jI9o2VQjJf1VdNAfsJWdN" +
"6N#VAbITiMzDp$cmBbJN#8xJHAhhJWoMY7qbhYvYV0xfrLN7L9sv4zaeBuM$BjaATw9VfAS" +
"1j0pfAoJxKyFisOfKYrlV4$5TzvC#Jg$v#ghHH#gwNsUJA4G4z1eZBcrIFZgPH24IxMp6PT" +
"3lxlCZJA8GYNOoupBejndvuIPHY4IFCECo7A5zT3I9GYHwk1cNuN3jup2JA4IY7Ssu31srZ" +
"qDDeX297cR6PJXC#pZ490gHwA5cN8P3jO#ZJA8GYHvYncKuHFiuqYGAaUXHPbo6etnzVMBC" +
"27calQ#hl10VRHA5Y82#Ri3TAIAOHqXtIbYZ$9bGzmxukKEkdafVk5C2SaTeUufAhzPqgfI" +
"VsrNGVku8oEsXxJjKpcfDfqhvkLC5xUVsWDmPshvTvQpMTAheCpF2pvr#4RPXJKeN$qouSv" +
"rpJlAZWuDZe3kKlUSEJNiCF1FkwLCBy$tlbK2TyK4yzKouEzGTocUZNMS7HRQrr3lNXp4Xp" +
"Y0U#5eEdoL2K7pwsM5CuJnmvOW$A49GVFfPOKpXF73LXpyWGb1y#WV3cC9vu8eDdob2K7pw" +
"1yAOmddWR8dF424eFltCCAPm7ZZpuzD528fFFoECAPm7pcBv$I84nQUV7iOKpWDNZjIt8A9" +
"VZz3w#sl#UWIsn9s9gK7nwQU5CONpgG4VzuaG59z#QXXJE0zSzU7tYX0Kd$w#CAPm7hXYm#" +
"U841IV$jumfd0UVCPAt4CsZVQTv6W$n$hjYz2ev5ukWZiPlvCfi3XzN3dI1FM#htLUBaObT" +
"t9aL9AOz3lPB#5jTx8ZpZ9EeSye$GyFtgZauYp6lOoCYwStZKffrF0iYNkPUvcg8MUSSPPx" +
"ApL7CESQqJjzRAXxYmefB22tXBPLIbqFNYgPycOLKbu3SdDe#vQ0dvlzVlWNGZolVk5V1BT" +
"rIkt7IoLJtgQ2tsjAtDk2sqXv0Ctnf$Jn#KI8X$c5VnBSrYbJV3u9#FbKID1hMZuDROkKix" +
"oK0JyhX0IzfcL5QFlJW9$0lxNoBuK4lQRboz1sA6MWdczGmUyr9UuDmUreIj$M91LIM40cg" +
"PW6qYVq5$r3F9pIjtMJ2Yai83UfsEBdfi3MZIgai83S6Dg#oVzVoQbKtZyeUoXI#YIrxV7X" +
"3Jq$x9nqAl6VP4DuGtU8ds7AlplO7U8E5YcZ$zZi3aOOOlkVPvbo2Ed$O#FhkjTZ$NgTus2" +
"HblJ$uYcCBF#NbaBDYtkzNsGEyinPe$f$yDnBLQ3Gl#pnjwWYfJS9w#9UQhmwq5#SBxYNYh" +
"JYULHTMsMgbjJpgExLAkYh047M#aa7vougTUQYDUJ8ByOOvq5dba1JtsfMtqSH$baZbLAYJ" +
"yXyn5FWwIExCo$LRgRMSFIzPsySSzJR5FfxB5GWDaGUlk#nE3B5QrG1xScMxx4ak0RXxCGQ" +
"Xye$Zq8Bpga#GbkOyv3dLCckTKZ67mh6Fj##EX9jOVLK6lPaNlYxmd#qLLFvm7zfJKpvKpp" +
"cQvJELFuKQkIfg8YKbE0w79$BvshReFv9$gJqFnVUvXhaIHaY8bA6F0akaMSn#EFySMKRnJ" +
"J#fB09Yq3IDa$m9spfPGcUG8edeY9I#lrOw#Ob$fAo3UddyNcIuKlmzf91viaG4P4ov4dmY" +
"Fnh3NzFz1jfR$n76ynNvzNORvRm9RRqiWHBq6#MH4Maf2Jzvat9CV8$GVnLsUUdWkEIJAwN" +
"KdJlN6BQT$W2lY1ulJICKwcm2Oj4KZRp#Np$tXvSqEVd8yNyg8YKVZ$Mkbd85ohRaFvjMMS" +
"BWCyNDc51dIrCM3U2H#HVOVYZ$55LDr5CuQYRHwCYaPJD8$mHMtgDFofimYAGb1$#CBSyEQ" +
"HzF8mK3qT58CAF#udx2N#8npuJ1FnXOHCMWIW$zaNuJtb9QGA#5$552XEMKP7eegW8RTh7O" +
"ppmHao4$sD8yLXK19BomnVpnR4#5YF5ugW8HFd1xmV1OrnuGPzR77EbK#RFtwd9Hyrt1lZh" +
"EV3nSWvyl96zZzGJuFmLgeZ#yqRwxQ8QUJXtiVvEkdSBJs8s9pofsPpo51xxtF7ER7Uycis" +
"bnZxvdf9uldnywag3ykHCqVF2GYfp9xZZtGaUExdKaROFICmdKFPpxdB7EO#xu#1LtmdKxE" +
"HSqzNFH2EbJsGwyUJZECTtPS#zJWMzDSuJwkFfJKiSwbxd2Oah2WpppmAKj0uLKJ6Le6xAK" +
"DOAr7KzggJwr83MeNMf8Qr7wzC6j24reetIpyrlGflIPhGvRK5RqbQqDJMbRMXRsewsfsQq" +
"0#r8Ez7Ej0ljIirfDzgTzg0zQI$Qc$QXVQa5jQJzQ7#SixUYQcfDRQWj7KW7KJjgJnteO3g" +
"43gN3g2CTJaTG9#fCHz9HT3GTGyVISTI5ZgUFw6FgJYVyQ$cBz7d#Qvz$F7i7xCDOVvpvYk" +
"TgahDdCUp7fDaxD2cILvM5VLVg5ijyRcozzxSmLoKRI2VJAJG8fVyGzLufQy4nC6k5V1eZR" +
"c2fzp50pVc8UkyXww0bdLZZ6FHKR5bcM$8GDIJ625McXTGBPN7e2qiUhU2h0ShIs58MUqlN" +
"l0$CYEK$tk9x1XWB$g8S$U1xV0ty2v372wk5Vq4i$ryilgl0N$XM$8L$mVzRA$y$aKTZsEM" +
"UlnFBtx7uxaLVIaJmRqpVeJo2$uzheV#mMFwL5j#DqOEg88B$t$GFkPB$Z1hulr2B#FTFys" +
"To11ByAwtydLfN$xtI$CKOLnF$6PB$fApuPz$xNxLuRf8UkmN$6P3A6FQLyYZmFdsG4Vlt8" +
"Ef8q58U2qGjnPMaSMn99YKwffrAfz7fT8Ry2i$PT0wTI#VH#NG1NKWNqSLq2LqANqFeChhS" +
"KX9HHX4Sr1n3hHHWRFiC8yLdkYJzCLBKN9Ags9AybwEI5CIMHBJcKx9LnQXR1UlK7gTAKWM" +
"aQXLBOXjRSzicZMN$QmmHZ4LFwYz70oTTaif4yupuFSNMlvh0jq9Qw7uizlFUiUDKV#kSoP" +
"m7WuYo9AytHzR7ODcUbPYBgfJ3TTm0kj6OdqsYQ#XQ6aVNONOn0NbCGheRw4QwYMwcM#XMc" +
"Yo$NtK7JQ4xwIwwMpxZSnzDHShx9QSnz01gSnRoc0lcekoJv6ybjeDSUz42rDHJs5lKKQag" +
"exAyW9m6IwwBvPon0UBXiWSpp9lRoh8q29HbERPveh8qGLb#GbqzXRAqH5bQeBQQoL8qm5g" +
"B44#XPoXBSlR3PRa7qrBPIyV0W#0v73mdQI#2$Oi1zhrbxIPX$pdOpqPjJmBxCM3FPDqwo3" +
"FS$nOY$qdoV6o1iOzNnUuRIxEQWxygHvWMyFiXoheGTfN6ivpKKMG5ycW9ksoEWJrMuHXks" +
"xSPUa0LpPF7m9Q8nPuKnr$isosod8F4ytyng$CvXlxH6xm4$qhqwWAvXqVFvVpyArSB$$Zw" +
"Rs2TG$K0$mQQVmDu4HoPbJ#3ZIZ1ckPlEy#TH7#W$pIJ$9j19kdZhOt$U7bSc5rhwf$9COl" +
"fEJYJzLjJ$JTU2$t7TWujk8nFzn#nxiJsVy5$KfPpy5NXRpk7O78yL$NVG$PiaKSFInuDf4" +
"sFjL3$FQpzNyo#UkZwxo7BOxgYbigZKl9Vy$tVVWvNAMV7YZ$3E5ip$qbhOVnXLlwglml#O" +
"hOqMsxP#5TA$cA4gYtZPsCSznnT$uvSTsBFGcVByIcpkVNgxJyp48Ph$kWzdDTq$ELOSiyV" +
"FcFu0pNwvdeH$DFh3eA5Fv1QnPzcPCOV#wwuXffH$uUtvUbp$uJd19h9O7fLhwNEpd3imLO" +
"r0iu9yEix9v1sAnAVdSsbkR1$065MxiSLsOkhmXwXNIp7mFhqhT6ZRLnayYokIiqmuAL5kg" +
"rMOx$6FBr5AXPhzduXhMfLlyvilyppp$FFyy$pp$FFyy$pp$FFywzD$Aa#OaDwQ9lmq6BcB" +
"v7cyZTm1fAUFsTohqBClmVht59d8E9UXUFTgmYUbyYpliP9pajWTx$sBEzL14hMqi1Ut6l9" +
"x4wBw0E3gRU1VQNKYJijYoFi4zrfyRD7aEofIh4qrdtcxDkQwpvTHyPpGfxeBbUO$Uhhqu5" +
"MNLtxv6faxuqfUVPvzddsUVPvzddsUVPvzddsUVPvzddsUVR$Z#pjzpgHhZB5FdG#h#vNLk" +
"aoCUvRBEo7QrGyfUcTprVXV3wpvtlLDOVKrOAsuje1uk7qYDYIwxcyMf3ndMqUM5BF7UUAb" +
"tZkE3UyVEivgY$wC5DUzEkQuCLNorMVJ9$aXv#u9$bh2J$htfldzt$0BsPqplEhaL$iqItF" +
"Byylpo$FByylqxCFsvkIXgUTPVxI7pVUEPR#OlYboo3lN59pmK#TuwZphl12ZLFdEE5xdD1" +
"4ldK1dVrR5yDJtxhmpslng#znMhvreLcBMJ7rIi#ADMlCYjNPuaIwNfpzoFKdKgpfwIXhcf" +
"Pd$MzWpNbIre7UsYkRiyA4QSGJ0nW7afvzrRJGa#crP#XPUexcPy8zzQn6PjoJFQiXhyyuH" +
"ixYNUhALUEkhfH8xhsr3qUDH$hjxS1NQ838irxPov9m7#un3$PynJp5NUQL1NTvZMKmzHOz" +
"Nt6NFRz5z1cMsiOTwKBSiMNXBh6ChZQOhrfu##ugz$T7T9#HtELHzMcvPZvgPSOzS6HCrt3" +
"wo2Yugp79uvuUzymZQMPVWQhqZtkHijZoKFCDfcfUF$Va6wtrKHsZTS2RTpolIkjKcWn7Qs" +
"0nhEt76205wThi7M1GQHlXr$uiHB3cWQkygFd8t0bpl4VIU0D$BQTZNP8CMRTCVoTCxQsXE" +
"a$Esgjhtp4#i0zvTUtl8texIzOwTKQiGxQ#lT6q#5b7i3NMh#sipUEKjCcpphEszkiywpph" +
"FEiywpphFEiywpphFEiywpphFEiywpphFEiywpphFEiywpphFEiywpphFEiywpphFEiywpp" +
"hFEjSi$QUyHBlBwRNn#bOF1UQZFMqA6jwIFfub1vRlQpfgtyZwtzdNVzRMFjiLcblXEvVE8" +
"RaMUTPhrRMg$YUTaofCdlADyyZpoCdFFJ$qWtMRxCFfM5q1Ls9N4RGI1f5Lz7LN3mTFDRtj" +
"fLlpvLVoVVjnVe9S#$fnS2#wj#I$oRaxQlpqblHfysNXFTYcNwLnXxwVSsFFQlEUcsCc7dM" +
"$oBMETthiJKsznu3fPXdAPru6sH9fc#VAeyntxvPilRhX$E0nvdOVh1siS9whMCbq#TP9NY" +
"RM#y$$nbM62V6cjugb$bPnmd$zyZNF2kUu2lfQvQL#ASZ6wkrru9vLZKTFwKczRQXuT$mQc" +
"8ivYJImfjhpujv0sx9$#ES9BjzDL3kTrTdAzVSldQUgdqPhVfrTtettxwrjup$HO$o727Ii" +
"lvp1ECOrLZ#MhvGmoDVyapIKonVg5aBPGtb6LDMKztmsAyrSdN7m$erdcZTXVdHmzhpumdQ" +
"ugKqZzVeTNg3tgItp9n39SYtnN#eBMGkjNnKIL9J$o#rzz$q#5$gCqdAQlYgIKPbjOzyKgE" +
"$0PFjw1SU#MhYHo#7sBrDx#JR8jyMeRR8#yhxoljQvV6iXl72UgwUus#wHzdbnjDg#Se$bz" +
"$xeWaPVO7kVhzt$HspuJnzRzytrbSgxpnmtrEdUCNttJNn7R3KjIhrtmRDQ0SPVnAux#cb#" +
"3vGjkXz$rTglZygl5l6$EzpqcOnNy7biL#PZVbtZrNcfVCXorTwnRzxrF1LtPfyI4pjTSrZ" +
"laJSobptd0Vldwl$T9Lhmxr#X3xMK$d0VAAlr8YpsYfxdSl#eSvVfo5CbsizLPtJ7EeRK#S" +
"rbhFckefRrF$1eAwi8nYr0eC6qMSAT7#fj7FN#rRFj7tVGEhqFiCJ$HUDcNjCpJdmdx5FYS" +
"MLQ8TWpLbzr52YwFnMzeNO4WNyrtYL9JaVcgxxflVVGBxvRKmDgx7KU9KbsRCcz7K4#Tatb" +
"ehQoAfdI2ocPyJKXQMlIuyrzFNqFmi9te7dhcMPKkSSDPR86oFIFkRKrDVp9VglbYXj5ncF" +
"KlEOP2KovfqlqVznYR8$2ePop$4SnNnanHp5cW$cA6jmtfZtaNiVdAzz7#5$5kJfxpO7dXH" +
"lxirkWhCS6gxhGynwCIV3qIOo9vD7cIJlU#3O4dgwmN3DqRR4tVcgiOw#hdbVNVjjbVUHzr" +
"7RVI1bg#YNtxNNoi0$6pGFeRull$klLMJvB7vg93Cz7oNUTR7#eqkEtmamVWdVL1yHT1M#X" +
"5$xwyFeKV2GDH9N7wl6Wrg4UKHhHFTFspz2hD7wi2zv7daUUHvv7daUUHvv7ibvhFfLct$$" +
"B3tl8#yZxsDj#QXf2PyP1x3m5Ri4pwLay0p319N2bv$vgGLnzLELTuAnlFMfYL7Fe0yT1UW" +
"LLTxeKK1UTKpLUnLzwgNmroMjD1y547zgORyoVhJdVDL7U#LZrNfDtaVUnt$5XnePp2EaUM" +
"H8hmU$MgElFtBJCsgLiVF3a1$EQuEVxFvrrFDJypFX6HmTfilw7UnxLYnmVyRGJXE2xMHx9" +
"boMn$96d#urtnXxpM$1kwar#8ZflNaVUHzv7qbzX4Sb$LISuHmVFjJLzD1Tu$HQLV2kiTIb" +
"daYIpubaSjTO#qoFIickEfX6fVJT5zEp989HtAXacEL6S$LgoBTkENQaQcDLZq6hwiV$R#L" +
"hYe$wtsbp$UIAJsP#SiKdT#Mo#ScqtVyV$OWzEEp7kyleFGrMupZZkuDBpT9huhcoq7SLeT" +
"LzLY5ovcEyouXnptgNKOz#wb$NcVz#PVfTZTGR737tA#77SltKNkPeARZnNgcy2X2NTttaR" +
"XeVXylp1LM#qUboZ5EjePyPylACN0r9Fuaq3NFzwQdMa2Fr77f8rhR#LhFsBBwQqY1LNlm#" +
"Bx$gl8X7djEtjiOoRPNkI#fhtjApw04$oAq6$XgYlr9rn3bZLiyrNeFmZtzQ4#rBwZb1Sok" +
"evxCINUlm6FksVNKahyZOhf6tIlZsXVHlQ5MT3tfDgvgOXZc6FIKxKys2ezBtj76qNVSor7" +
"BF6F$DRHoJrutNQlcwoTTDlcvMPztmH5V6uiUicdt8uymg#eXDcpxEfEemUhHNFcn7#vgFC" +
"BdWd$THktoadm0NCn3ZFsyauu7Pt73lxI8vBvmZ$dc3ngdPd9uNXfyQPPZDYUSQ5tdzE$MU" +
"afnXooiDsjDexMaPV3BCJGk2xmpIy$9t4MRKqNdnDAIOBdDAdKFCyVuN93qZZQPxNgGGx3p" +
"6FERi9ROL4i$aYPmN1fDO#Yv7izn4rEyUX9U8kdzCT58TeiFEGxmxuXiG7uDmFiADIDS0OI" +
"12DS8w2BSZ510LE4H7NYPTqf5JyDE3wAWz4Cz3V2p21GZ8vwYv24k9ZeRzqLiY78ZG7s4am" +
"ZIYpS7Xw2L4JNw1tsNWzW5HLLk4yKGD$oHQxpY4Hv0Vqgs$0L5rQw9UnTY#1FQB4FT2s0xX" +
"6OHHH8MR8tG2XZmA1NOEmd2YfZTZ#q7aXtosE1nXAj6MHS2#X7ub0ifIPnBYWucANiKwycO" +
"F87Qn$HfHNSGT3o0gBeGEvIfYH8SYFcmRehs05TGZsXjS3qFzxZqRDbzXVJxHuGWjPu7FMK" +
"ZV4V4Rs4Qv2tOZEXdrL70TuYqG$uosG9w5HnBrGRw5yD5x1L4zyEg9yjQ3toDHJvLeXwE$9" +
"Zfc9uGpiOtsEEPXelgetsF#8ZfsVwoZtCTUZXXrSkn2y9o3F1ybsgyXKGFKpt7bYE7tEF0v" +
"RXpHFfKe5$f04VH5nnELe1sBUgFEzYBQ5cctgu#wG1aRW4C1wcQ$KudM0OyZTaJvODyKFWg" +
"$WntwoNOBaFOXXFlWPm9Yf6aARFlDOBCBqhv8jFzMu7GRT1V13$WNeOwsVniyJaB0#idGDq" +
"EV9NJPuWsnVZK2sedGZuh1QmVqWUAkH5kZ3CKz4N#8#104rEKEjo3yGRGkwgFuBg8TKP#jm" +
"TT1UnMZ$dQSWNMKvpZajrCPGXy4zDcTDqOPaKznU$3#5G5yjy7wpkW$9wDETqQvTsc6S2K2" +
"ohHhIuJh4NuYQduOqg4k6s9VAKR$AjaPkdkH7lj5wT7OHX$P3VscxqJmGjlqUHDz6hvEF0K" +
"n#cpFxH6ZltG1X$MHPvSJuEj4XDFGNvycsgeK0MspLIi4zEkjRaL0FQ#FVRZB7GXV41qF7n" +
"kWd$G4Zvxe5nlqXVzh4AC#JqGRicUHB#gbpm04bFF4Tn6ZZ2NmsmVxsud$W5yJy4JUkpr6j" +
"FjwwA#N0WVVtS6Zpib4#swATUnp9HWVzjWQOGZQ3drbtmlX7xR7evvBqVObgACzi1ztH1sK" +
"e4ttt1FfmQte6w8DCGOSZ$rXG$JFuty33hybgASzhqLzuPXHjZwsKRzxVWkVsDysnFeHgBT" +
"6A3jsQseq6J7Aq0YsdR1VRjGT#mNwr4PFejpl4stS6FlDvuZ1wKJqeOtVGxdGnettHdm6#Y" +
"lQfY$gVwzswDjTa1$Qj#GpRACU3xyAwoyWHXdwOPyeGTlk#nRQ5FLI3ByDHNz46nMZtNjjY" +
"u2neXVQiDSO1EoplLv7GFltnZZL6$drnhxH#sAK6srPWhAkZxpMHzuROD$V0FlC1Z#YV4UW" +
"pj0tYb66tcZN4goN2Flde4TTbGv5#1Gyso2Wdig1bmCl1ru1l2$EzDkYlsuu4tROlmuN$G$" +
"jV23gjP4em$TOVmBhWu2ZFe$O137Q#o3KJIEClQNmkp$ybnu5$oXhASQaEkiYHlqSXFrh8$" +
"JJ2i41TLWXxD3sHw3EIr5tfLTWN4HwvnNOeH$NnJYw4VhnnkZ3Hs3CBHs6TVJHKh4#0cqW#" +
"W3y5Q7zMlqE6unDfGB7s5mFOt8xzCTIv5dw0p04x9vKXdsr7ifM0Bvbu5M9xKhqnqBKMnd6" +
"iqhaNHzjMev#M8O#MtyiOemPPHZREq5VXh6cFdYLLI0DzjD276CQ8AywE9wKTSOwV9VXsDM" +
"c4MAKiGnZU1qS6yhEHhamXXIY7jgWZSlEXHvZP27sgNN0eGYX4#gW67Mn3lXqmh6Z3ELT1t" +
"oAqV$gOVzeZ3v#DEh$6AJjYthjY$5mQ$I3JjWNss0$EmdxOR#cy8LnSrrmROnzjWpxHY7gf" +
"0XXQnm3jiQOLuPngnZxNHbyjyLOiAue8uudPJX6bw4Dob2$VN7iQBylrZ7cbw5lT0RtCjHl" +
"U$JBifU9Ec3yAyCOLeRZJsUqGJdgfGDubQ4$bcDyEWJpW78S$yl1iHnjMXTzjHpxRGVuACF" +
"OMuLzf0Z7esAibsDyAKAzb8F39aZJ5VbkWh9txOOO$hfYBDWK$hjYZDyQTLsE$bcEVQSSl3" +
"T5lHQZtYimBfOZJJd6x4qnHg5wg03ZHpdAKe7zhnpxV3dw#sPeqtveaoBKPJ6E2tKnFfHZZ" +
"bAETjmCxLMAVb6EiQ80TLEEuqmXwh4G#TJ1#e5LYD7sHSYlDyRHShH52SQ0hgZ$SknxfHXp" +
"6gFlTKIPIh7T6CUEniYpAVAkX$vGZdPiY7wq9SQoCfnhbM40AiCSeXpxM3dIL8z6BCOmj6C" +
"PzgLYxE$L65VBiVyLzqCvq0SsmzZR5NMtEVfED$J$pR6VTSFOiVcTY35#L41N1sD5P$J1Eh" +
"3hZFgeG3#jWxhkZl6aC#hY19Inypk8SIphZ7O#0Mrp0iQW4p1Edm1k9#3Ot0DZSmySaojGt" +
"pqmFfm8hXK8HQYN8p5s5M6VFt8$wE2Z2Fjd1NYKOpxN3NsxAShU6cD9HGSSLy1bAr7tgATo" +
"ZAyLw9CLQ9pM6CSgC6QLeAuhmAS7#br7p7bwe9$smDXr9FZtmFXUWJhjXl6m6$fTD$3lXhh" +
"gZl6mE$moSEoEEgf06OjGXdMnxvs4#Ze9yvP#EFxqnzZK7yUl$i86zLmFTLuNnv8Ar65$Z2" +
"$zxqV0iNuWnkF#g9#1E2uFnF5$0Dfg0FhW0En70z5F1g9k1w1l3qJV7GYxVkYd0#w67yoJw" +
"c4C780nlWBxI3qSK#gXhzT3tTJ3U33W3pr7FaV50z6V1s8yEgo3cASELXCIOq1vHgZOQQ9Z" +
"HyKThrNnaLrLV62ZE3zctyx#Eez1dgxXGNRxucsyzOgdL5omduxRQLzZT3mgcBRWCxFFmlL" +
"Kp7RnT6oiY76oSOcdspzIFimzguBR#rURypXaWOeFdQpZRxJzQoe#GDVj0VrLNAT4nLN5El" +
"vDnPjC3FhTv0iLRxgdfzlqIXs$7UMnMLCTdnlKry7uKAJRTVzxLLpOEsZJvY9llSDCNrhqS" +
"NQjjrtKIVlvMVivCSp3vtE#7Il265GKubaKP$#Jp#zttdfn1nsVfk8jDpQdPwY3OkmN1#W#" +
"MVYzBQ#u01#BlVK3HWQn0sQfkCufAguwHiMR7AJYpHOcpsVp3OBRLNTxwtLqlshoi8gBdWj" +
"nrFsmU4LGNxYZjzvs0v$zgzvw1SR9maLQ$wQAjpnVb#zDN$e3lFMILFbT5RTgxyCkyDPRRH" +
"haq#4j7V#jueCtrx7UrmyUfEFhTFoOZfUg#90Y7JVJSQUW$rO3VNm7Q9lR$3PAntO8wv86b" +
"AzxFCvMPkjRfT$tHLyPFbRnbipJjQZdhHzufzPrydI7h51nwzugxhwxjfbWpk#WWRfS3wdO" +
"mJ6aRikWJUkhp6bBc$Zyw3OhtKNdzvw7jIlBh0vQlndLjMlkonTp60V7piB7VBhtlVN6Esd" +
"TCazNr4V5wrwYjqy9#U$gMn#Md6kxwSZdUvsViUrnljVDh5$tGxlVBK$mrjjlgNLFgdYhZN" +
"tOLrftlgSxT4CLj#ciukw7QPl0CGHZpdGLisagBdf3yz9pXCRTTNoVbwRLGr6krIogAzzHO" +
"uU4z3ZNgwF7vEg9qNIDKsFHqK7zrZzuwmrReEsVyBOBE$YuBDVfjrHntHs8jYXLwwMOevTR" +
"ZkbRdAZJxU3fjbocTNfSAcwkudM$r5n$LN6JQYzDaPwRbG$J#NTHSKyzPlK#LyNjq$sjfW1" +
"kUcvKeijHFahpqErMEDUphRiZsbdNRzbus3uOzRVLpReybqMn3fjxwyxsPZu7VkojLwJYRJ" +
"tTNby5xHqz$waur5x6mxkYd3Y$sxkjsXuuJLsJt0BpvBqdgsjuM#CyTYyz7tH#jVdoV8g5Z" +
"MEC69rNGxXEXu4wdAp3AOOmI8ThT1Y3y272OeHhoP5X0DP5w8zm4XNGNuZ$Wbw50byiGY42" +
"QPkKNT1#6RQNOVrvUT$0eOdoghu83ls0#0V4Ny7kRwoBy0#2Y#r5Y1S1UmYn28z2znZLeJb" +
"OdmEzk3kG2gDbS6WuugHX7FoD0tyLwlXY4OfeEVozWF0JR7#2xGoipv2n28NqC$G$G$Srug" +
"yHluJO7rupXCUHzd6a$Gphds7zVSJl8$v0$fyZa#4jh3yC3W#3Wmh5lbY4alJsqx1$6kaVa" +
"Q6GPYFjhz3zYkrV48lm1dIl8tuJzcyYhGgblbY4CbgAF5Kebk5w#BWUFbMeGv$3p#VGlOZu" +
"HHcBK4Y$mVTlq7s3#1l4BoCEXxSHtW4sJuO27GhfTvB$D4lZ4HPWVG7m1n2dmYnitoz30Ns" +
"1xIyGVuJu8yGVGty3ratXnWp3auPmCyfy2#hXMOJRi7qJydm6uNRaEm7Rjd07qlq1kpzWzo" +
"Us$vInGzz2zotYMu4$Xp05VYUZxkSZV0yx4LOYl2930TqfWqDt8RuByTs8xqMu1sdlGwn28" +
"Vq8#n#1VmVzbuYdGZyLwwT2dmfF8PmcGm52OIXEwGjysruu6xxE1bSLYX1AP7WFs8Co5D2v" +
"CXIcutDqM05y1JYz2lqan9CGdvyETUWis9m5dogKq0NO5k5qfFE7Cv3sJ8HBiQw2emEZ2n5" +
"VX70nrY#MiLg$17ukGHwfU0XqGv1lAbo6xSjaN42NO$ro6Qim5Dj3PHmCmw0V9kC2kWBhLo" +
"2#4l6LY4SW7e5u9EAHY4SX7eNuAiHN8N$n$MuH1aENIHXBE0mWtHCOPvz0$0dYJn1$YbYyR" +
"IVk0ejxikyYVXVnJCGp4Iz4l13nNCHpuSFv7#VAFT0=");
// Generated from /home/jesper/git/extendj/java4/build/tmp/preprocessParser/JavaParser.all
class Events extends Parser.Events {
public void scannerError(Scanner.Exception e) {
errors.add(new Problem(null, e.getMessage(), e.line, e.column,
Problem.Severity.ERROR, Problem.Kind.LEXICAL));
}
public void syntaxError(Symbol token) {
if (!canSkipToken(token)) {
int line = token.getLine(token.getStart());
int column = token.getColumn(token.getStart());
int endLine = token.getLine(token.getEnd());
int endColumn = token.getColumn(token.getEnd());
String value = token.value != null ? token.value.toString() : Terminals.NAMES[token.getId()];
errors.add(new Problem(null, "unexpected token \"" + value + "\"",
line, column, endLine, endColumn, Problem.Severity.ERROR, Problem.Kind.SYNTACTIC));
}
}
public void unexpectedTokenRemoved(Symbol token) {
}
public void missingTokenInserted(Symbol token) {
}
public void misspelledTokenReplaced(Symbol token) {
}
public void errorPhraseRemoved(Symbol error) {
}
}
{
report = new Events(); // Use error handler in parser
}
public CompilationUnit parse(java.io.InputStream is, String fileName)
throws java.io.IOException, beaver.Parser.Exception {
CompilationUnit cu;
errors = new ArrayList();
try {
JavaScanner scanner = new JavaScanner(new Unicode(is));
cu = (CompilationUnit) parse(scanner);
} catch(Parser.Exception e) {
// build empty compilation unit for failed error recovery
cu = new CompilationUnit();
} catch(Error e) {
cu = new CompilationUnit();
errors.add(new Problem(null, e.getMessage(), 0, 0,
Problem.Severity.ERROR, Problem.Kind.LEXICAL));
}
for (java.util.Iterator iter = errors.iterator(); iter.hasNext(); ) {
Problem p = (Problem) iter.next();
p.setFileName(fileName);
cu.addParseError(p);
}
return cu;
}
@Override
protected void recoverFromError(Symbol token, TokenStream in)
throws java.io.IOException, Parser.Exception {
if (!canSkipToken(token)) {
super.recoverFromError(token, in);
}
}
protected static boolean canSkipToken(Symbol token) {
return token.getId() == Terminals.DOCUMENTATION_COMMENT;
}
protected java.util.Collection errors = new ArrayList();
public JavaParser() {
super(PARSING_TABLES);
}
protected Symbol invokeReduceAction(int rule_num, int offset) {
switch(rule_num) {
case 1: // literal = INTEGER_LITERAL.INTEGER_LITERAL
{
final Symbol INTEGER_LITERAL = _symbols[offset + 1];
return new IntegerLiteral(INTEGER_LITERAL);
}
case 2: // literal = LONG_LITERAL.LONG_LITERAL
{
final Symbol LONG_LITERAL = _symbols[offset + 1];
return new LongLiteral(LONG_LITERAL);
}
case 3: // literal = FLOATING_POINT_LITERAL.FLOATING_POINT_LITERAL
{
final Symbol FLOATING_POINT_LITERAL = _symbols[offset + 1];
return new FloatingPointLiteral(FLOATING_POINT_LITERAL);
}
case 4: // literal = DOUBLE_LITERAL.DOUBLE_LITERAL
{
final Symbol DOUBLE_LITERAL = _symbols[offset + 1];
return new DoubleLiteral(DOUBLE_LITERAL);
}
case 5: // literal = BOOLEAN_LITERAL.BOOLEAN_LITERAL
{
final Symbol BOOLEAN_LITERAL = _symbols[offset + 1];
return new BooleanLiteral(BOOLEAN_LITERAL);
}
case 6: // literal = CHARACTER_LITERAL.CHARACTER_LITERAL
{
final Symbol CHARACTER_LITERAL = _symbols[offset + 1];
return new CharacterLiteral(CHARACTER_LITERAL);
}
case 7: // literal = STRING_LITERAL.STRING_LITERAL
{
final Symbol STRING_LITERAL = _symbols[offset + 1];
return new StringLiteral(STRING_LITERAL);
}
case 8: // literal = NULL_LITERAL.NULL_LITERAL
{
final Symbol NULL_LITERAL = _symbols[offset + 1];
return new NullLiteral(NULL_LITERAL);
}
case 12: // primitive_type = BOOLEAN.BOOLEAN
{
final Symbol BOOLEAN = _symbols[offset + 1];
return new PrimitiveTypeAccess("boolean");
}
case 15: // integral_type = BYTE.BYTE
{
final Symbol BYTE = _symbols[offset + 1];
return new PrimitiveTypeAccess("byte");
}
case 16: // integral_type = SHORT.SHORT
{
final Symbol SHORT = _symbols[offset + 1];
return new PrimitiveTypeAccess("short");
}
case 17: // integral_type = INT.INT
{
final Symbol INT = _symbols[offset + 1];
return new PrimitiveTypeAccess("int");
}
case 18: // integral_type = LONG.LONG
{
final Symbol LONG = _symbols[offset + 1];
return new PrimitiveTypeAccess("long");
}
case 19: // integral_type = CHAR.CHAR
{
final Symbol CHAR = _symbols[offset + 1];
return new PrimitiveTypeAccess("char");
}
case 20: // floating_point_type = FLOAT.FLOAT
{
final Symbol FLOAT = _symbols[offset + 1];
return new PrimitiveTypeAccess("float");
}
case 21: // floating_point_type = DOUBLE.DOUBLE
{
final Symbol DOUBLE = _symbols[offset + 1];
return new PrimitiveTypeAccess("double");
}
case 27: // array_type = primitive_type.t dims.dims
{
final Symbol _symbol_t = _symbols[offset + 1];
final Access t = (Access) _symbol_t.value;
final Symbol _symbol_dims = _symbols[offset + 2];
final List dims = (List) _symbol_dims.value;
return t.addArrayDims(dims);
}
case 28: // array_type = name.name dims.dims
{
final Symbol _symbol_name = _symbols[offset + 1];
final Access name = (Access) _symbol_name.value;
final Symbol _symbol_dims = _symbols[offset + 2];
final List dims = (List) _symbol_dims.value;
return name.addArrayDims(dims);
}
case 31: // simple_name = IDENTIFIER.IDENTIFIER
{
final Symbol IDENTIFIER = _symbols[offset + 1];
return new ParseName(IDENTIFIER);
}
case 32: // qualified_name = name.n DOT.DOT simple_name.i
{
final Symbol _symbol_n = _symbols[offset + 1];
final Access n = (Access) _symbol_n.value;
final Symbol DOT = _symbols[offset + 2];
final Symbol _symbol_i = _symbols[offset + 3];
final Access i = (Access) _symbol_i.value;
return n.qualifiesAccess(i);
}
case 33: // compilation_unit = package_with_comment.p
{
final Symbol _symbol_p = _symbols[offset + 1];
final IdUse p = (IdUse) _symbol_p.value;
return new CompilationUnit(p.getID(), new List(), new List());
}
case 34: // compilation_unit = package_with_comment.p import_declarations.i
{
final Symbol _symbol_p = _symbols[offset + 1];
final IdUse p = (IdUse) _symbol_p.value;
final Symbol _symbol_i = _symbols[offset + 2];
final List i = (List) _symbol_i.value;
return new CompilationUnit(p.getID(), i, new List());
}
case 35: // compilation_unit = package_with_comment.p type_declarations.t
{
final Symbol _symbol_p = _symbols[offset + 1];
final IdUse p = (IdUse) _symbol_p.value;
final Symbol _symbol_t = _symbols[offset + 2];
final List t = (List) _symbol_t.value;
return new CompilationUnit(p.getID(), new List(), t);
}
case 36: // compilation_unit = package_with_comment.p import_declarations.i type_declarations.t
{
final Symbol _symbol_p = _symbols[offset + 1];
final IdUse p = (IdUse) _symbol_p.value;
final Symbol _symbol_i = _symbols[offset + 2];
final List i = (List) _symbol_i.value;
final Symbol _symbol_t = _symbols[offset + 3];
final List t = (List) _symbol_t.value;
return new CompilationUnit(p.getID(), i, t);
}
case 37: // compilation_unit = package_with_comment.p doc_comment_list.doc_comment_list
{
final Symbol _symbol_p = _symbols[offset + 1];
final IdUse p = (IdUse) _symbol_p.value;
final Symbol _symbol_doc_comment_list = _symbols[offset + 2];
final String doc_comment_list = (String) _symbol_doc_comment_list.value;
return new CompilationUnit(p.getID(), new List(), new List());
}
case 38: // compilation_unit = package_with_comment.p import_declarations.i doc_comment_list.doc_comment_list
{
final Symbol _symbol_p = _symbols[offset + 1];
final IdUse p = (IdUse) _symbol_p.value;
final Symbol _symbol_i = _symbols[offset + 2];
final List i = (List) _symbol_i.value;
final Symbol _symbol_doc_comment_list = _symbols[offset + 3];
final String doc_comment_list = (String) _symbol_doc_comment_list.value;
return new CompilationUnit(p.getID(), i, new List());
}
case 39: // compilation_unit = package_with_comment.p type_declarations.t doc_comment_list.doc_comment_list
{
final Symbol _symbol_p = _symbols[offset + 1];
final IdUse p = (IdUse) _symbol_p.value;
final Symbol _symbol_t = _symbols[offset + 2];
final List t = (List) _symbol_t.value;
final Symbol _symbol_doc_comment_list = _symbols[offset + 3];
final String doc_comment_list = (String) _symbol_doc_comment_list.value;
return new CompilationUnit(p.getID(), new List(), t);
}
case 40: // compilation_unit = package_with_comment.p import_declarations.i type_declarations.t doc_comment_list.doc_comment_list
{
final Symbol _symbol_p = _symbols[offset + 1];
final IdUse p = (IdUse) _symbol_p.value;
final Symbol _symbol_i = _symbols[offset + 2];
final List i = (List) _symbol_i.value;
final Symbol _symbol_t = _symbols[offset + 3];
final List t = (List) _symbol_t.value;
final Symbol _symbol_doc_comment_list = _symbols[offset + 4];
final String doc_comment_list = (String) _symbol_doc_comment_list.value;
return new CompilationUnit(p.getID(), i, t);
}
case 41: // compilation_unit =
{
return new CompilationUnit("", new List(), new List());
}
case 42: // compilation_unit = import_declarations.i
{
final Symbol _symbol_i = _symbols[offset + 1];
final List i = (List) _symbol_i.value;
return new CompilationUnit("", i, new List());
}
case 43: // compilation_unit = type_declarations.t
{
final Symbol _symbol_t = _symbols[offset + 1];
final List t = (List) _symbol_t.value;
return new CompilationUnit("", new List(), t);
}
case 44: // compilation_unit = import_declarations.i type_declarations.t
{
final Symbol _symbol_i = _symbols[offset + 1];
final List i = (List) _symbol_i.value;
final Symbol _symbol_t = _symbols[offset + 2];
final List t = (List) _symbol_t.value;
return new CompilationUnit("", i, t);
}
case 45: // compilation_unit = doc_comment_list.doc_comment_list
{
final Symbol _symbol_doc_comment_list = _symbols[offset + 1];
final String doc_comment_list = (String) _symbol_doc_comment_list.value;
return new CompilationUnit("", new List(), new List());
}
case 46: // compilation_unit = import_declarations.i doc_comment_list.doc_comment_list
{
final Symbol _symbol_i = _symbols[offset + 1];
final List i = (List) _symbol_i.value;
final Symbol _symbol_doc_comment_list = _symbols[offset + 2];
final String doc_comment_list = (String) _symbol_doc_comment_list.value;
return new CompilationUnit("", i, new List());
}
case 47: // compilation_unit = type_declarations.t doc_comment_list.doc_comment_list
{
final Symbol _symbol_t = _symbols[offset + 1];
final List t = (List) _symbol_t.value;
final Symbol _symbol_doc_comment_list = _symbols[offset + 2];
final String doc_comment_list = (String) _symbol_doc_comment_list.value;
return new CompilationUnit("", new List(), t);
}
case 48: // compilation_unit = import_declarations.i type_declarations.t doc_comment_list.doc_comment_list
{
final Symbol _symbol_i = _symbols[offset + 1];
final List i = (List) _symbol_i.value;
final Symbol _symbol_t = _symbols[offset + 2];
final List t = (List) _symbol_t.value;
final Symbol _symbol_doc_comment_list = _symbols[offset + 3];
final String doc_comment_list = (String) _symbol_doc_comment_list.value;
return new CompilationUnit("", i, t);
}
case 49: // import_declarations = import_with_comment.i
{
final Symbol _symbol_i = _symbols[offset + 1];
final ImportDecl i = (ImportDecl) _symbol_i.value;
return new List().add(i);
}
case 50: // import_declarations = import_declarations.l import_with_comment.i
{
final Symbol _symbol_l = _symbols[offset + 1];
final List l = (List) _symbol_l.value;
final Symbol _symbol_i = _symbols[offset + 2];
final ImportDecl i = (ImportDecl) _symbol_i.value;
return l.add(i);
}
case 51: // type_declarations = type_with_comment.t
{
final Symbol _symbol_t = _symbols[offset + 1];
final TypeDecl t = (TypeDecl) _symbol_t.value;
return !(t instanceof EmptyType) ? new List().add(t) : new List() ;
}
case 52: // type_declarations = type_declarations.l type_with_comment.t
{
final Symbol _symbol_l = _symbols[offset + 1];
final List l = (List) _symbol_l.value;
final Symbol _symbol_t = _symbols[offset + 2];
final TypeDecl t = (TypeDecl) _symbol_t.value;
return !(t instanceof EmptyType) ? l.add(t) : l;
}
case 53: // doc_comment = DOCUMENTATION_COMMENT.dc
{
final Symbol dc = _symbols[offset + 1];
return new Symbol(Terminals.DOCUMENTATION_COMMENT, ((String)dc.value));
}
case 55: // doc_comment_list = doc_comment_list.doc_comment_list doc_comment.dc
{
final Symbol _symbol_doc_comment_list = _symbols[offset + 1];
final String doc_comment_list = (String) _symbol_doc_comment_list.value;
final Symbol _symbol_dc = _symbols[offset + 2];
final String dc = (String) _symbol_dc.value;
return new Symbol(Terminals.DOCUMENTATION_COMMENT, dc);
}
case 58: // package_declaration = PACKAGE.PACKAGE name_decl.name_decl SEMICOLON.SEMICOLON
{
final Symbol PACKAGE = _symbols[offset + 1];
final Symbol _symbol_name_decl = _symbols[offset + 2];
final IdUse name_decl = (IdUse) _symbol_name_decl.value;
final Symbol SEMICOLON = _symbols[offset + 3];
return name_decl;
}
case 61: // simple_name_decl = IDENTIFIER.IDENTIFIER
{
final Symbol IDENTIFIER = _symbols[offset + 1];
return new IdUse(IDENTIFIER);
}
case 62: // qualified_name_decl = name_decl.n DOT.DOT IDENTIFIER.i
{
final Symbol _symbol_n = _symbols[offset + 1];
final IdUse n = (IdUse) _symbol_n.value;
final Symbol DOT = _symbols[offset + 2];
final Symbol i = _symbols[offset + 3];
return new IdUse(n.getID() + "." + ((String)i.value));
}
case 67: // single_type_import_declaration = IMPORT.IMPORT name.name SEMICOLON.SEMICOLON
{
final Symbol IMPORT = _symbols[offset + 1];
final Symbol _symbol_name = _symbols[offset + 2];
final Access name = (Access) _symbol_name.value;
final Symbol SEMICOLON = _symbols[offset + 3];
return new SingleTypeImportDecl(name);
}
case 68: // type_import_on_demand_declaration = IMPORT.IMPORT name.name DOT.DOT MULT.MULT SEMICOLON.SEMICOLON
{
final Symbol IMPORT = _symbols[offset + 1];
final Symbol _symbol_name = _symbols[offset + 2];
final Access name = (Access) _symbol_name.value;
final Symbol DOT = _symbols[offset + 3];
final Symbol MULT = _symbols[offset + 4];
final Symbol SEMICOLON = _symbols[offset + 5];
return new TypeImportOnDemandDecl(name);
}
case 70: // type_with_comment = doc_comment_list.dc type_declaration.d
{
final Symbol _symbol_dc = _symbols[offset + 1];
final String dc = (String) _symbol_dc.value;
final Symbol _symbol_d = _symbols[offset + 2];
final TypeDecl d = (TypeDecl) _symbol_d.value;
d.docComment = dc;
return d;
}
case 73: // type_declaration = SEMICOLON.SEMICOLON
{
final Symbol SEMICOLON = _symbols[offset + 1];
return new EmptyType(new Modifiers(), "EmptyType", new Opt(), new List());
}
case 74: // modifiers = modifier.m
{
final Symbol _symbol_m = _symbols[offset + 1];
final Modifier m = (Modifier) _symbol_m.value;
return new List().add(m);
}
case 75: // modifiers = modifiers.l modifier.m
{
final Symbol _symbol_l = _symbols[offset + 1];
final List l = (List) _symbol_l.value;
final Symbol _symbol_m = _symbols[offset + 2];
final Modifier m = (Modifier) _symbol_m.value;
return l.add(m);
}
case 76: // modifier = PUBLIC.PUBLIC
{
final Symbol PUBLIC = _symbols[offset + 1];
return new Modifier("public");
}
case 77: // modifier = PROTECTED.PROTECTED
{
final Symbol PROTECTED = _symbols[offset + 1];
return new Modifier("protected");
}
case 78: // modifier = PRIVATE.PRIVATE
{
final Symbol PRIVATE = _symbols[offset + 1];
return new Modifier("private");
}
case 79: // modifier = STATIC.STATIC
{
final Symbol STATIC = _symbols[offset + 1];
return new Modifier("static");
}
case 80: // modifier = ABSTRACT.ABSTRACT
{
final Symbol ABSTRACT = _symbols[offset + 1];
return new Modifier("abstract");
}
case 81: // modifier = FINAL.FINAL
{
final Symbol FINAL = _symbols[offset + 1];
return new Modifier("final");
}
case 82: // modifier = NATIVE.NATIVE
{
final Symbol NATIVE = _symbols[offset + 1];
return new Modifier("native");
}
case 83: // modifier = SYNCHRONIZED.SYNCHRONIZED
{
final Symbol SYNCHRONIZED = _symbols[offset + 1];
return new Modifier("synchronized");
}
case 84: // modifier = TRANSIENT.TRANSIENT
{
final Symbol TRANSIENT = _symbols[offset + 1];
return new Modifier("transient");
}
case 85: // modifier = VOLATILE.VOLATILE
{
final Symbol VOLATILE = _symbols[offset + 1];
return new Modifier("volatile");
}
case 86: // modifier = STRICTFP.STRICTFP
{
final Symbol STRICTFP = _symbols[offset + 1];
return new Modifier("strictfp");
}
case 87: // class_declaration = CLASS.CLASS IDENTIFIER.IDENTIFIER class_body.b
{
final Symbol CLASS = _symbols[offset + 1];
final Symbol IDENTIFIER = _symbols[offset + 2];
final Symbol _symbol_b = _symbols[offset + 3];
final List b = (List) _symbol_b.value;
return new ClassDecl(new Modifiers(new List()), IDENTIFIER, new Opt(), new List(), b);
}
case 88: // class_declaration = modifiers.m CLASS.CLASS IDENTIFIER.IDENTIFIER class_body.b
{
final Symbol _symbol_m = _symbols[offset + 1];
final List m = (List) _symbol_m.value;
final Symbol CLASS = _symbols[offset + 2];
final Symbol IDENTIFIER = _symbols[offset + 3];
final Symbol _symbol_b = _symbols[offset + 4];
final List b = (List) _symbol_b.value;
return new ClassDecl(new Modifiers(m), IDENTIFIER, new Opt(), new List(), b);
}
case 89: // class_declaration = CLASS.CLASS IDENTIFIER.IDENTIFIER super.s class_body.b
{
final Symbol CLASS = _symbols[offset + 1];
final Symbol IDENTIFIER = _symbols[offset + 2];
final Symbol _symbol_s = _symbols[offset + 3];
final Opt s = (Opt) _symbol_s.value;
final Symbol _symbol_b = _symbols[offset + 4];
final List b = (List) _symbol_b.value;
return new ClassDecl(new Modifiers(new List()), IDENTIFIER, s, new List(), b);
}
case 90: // class_declaration = modifiers.m CLASS.CLASS IDENTIFIER.IDENTIFIER super.s class_body.b
{
final Symbol _symbol_m = _symbols[offset + 1];
final List m = (List) _symbol_m.value;
final Symbol CLASS = _symbols[offset + 2];
final Symbol IDENTIFIER = _symbols[offset + 3];
final Symbol _symbol_s = _symbols[offset + 4];
final Opt s = (Opt) _symbol_s.value;
final Symbol _symbol_b = _symbols[offset + 5];
final List b = (List) _symbol_b.value;
return new ClassDecl(new Modifiers(m), IDENTIFIER, s, new List(), b);
}
case 91: // class_declaration = CLASS.CLASS IDENTIFIER.IDENTIFIER interfaces.i class_body.b
{
final Symbol CLASS = _symbols[offset + 1];
final Symbol IDENTIFIER = _symbols[offset + 2];
final Symbol _symbol_i = _symbols[offset + 3];
final List i = (List) _symbol_i.value;
final Symbol _symbol_b = _symbols[offset + 4];
final List b = (List) _symbol_b.value;
return new ClassDecl(new Modifiers(new List()), IDENTIFIER, new Opt(), i, b);
}
case 92: // class_declaration = modifiers.m CLASS.CLASS IDENTIFIER.IDENTIFIER interfaces.i class_body.b
{
final Symbol _symbol_m = _symbols[offset + 1];
final List m = (List) _symbol_m.value;
final Symbol CLASS = _symbols[offset + 2];
final Symbol IDENTIFIER = _symbols[offset + 3];
final Symbol _symbol_i = _symbols[offset + 4];
final List i = (List) _symbol_i.value;
final Symbol _symbol_b = _symbols[offset + 5];
final List b = (List) _symbol_b.value;
return new ClassDecl(new Modifiers(m), IDENTIFIER, new Opt(), i, b);
}
case 93: // class_declaration = CLASS.CLASS IDENTIFIER.IDENTIFIER super.s interfaces.i class_body.b
{
final Symbol CLASS = _symbols[offset + 1];
final Symbol IDENTIFIER = _symbols[offset + 2];
final Symbol _symbol_s = _symbols[offset + 3];
final Opt s = (Opt) _symbol_s.value;
final Symbol _symbol_i = _symbols[offset + 4];
final List i = (List) _symbol_i.value;
final Symbol _symbol_b = _symbols[offset + 5];
final List b = (List) _symbol_b.value;
return new ClassDecl(new Modifiers(new List()), IDENTIFIER, s, i, b);
}
case 94: // class_declaration = modifiers.m CLASS.CLASS IDENTIFIER.IDENTIFIER super.s interfaces.i class_body.b
{
final Symbol _symbol_m = _symbols[offset + 1];
final List m = (List) _symbol_m.value;
final Symbol CLASS = _symbols[offset + 2];
final Symbol IDENTIFIER = _symbols[offset + 3];
final Symbol _symbol_s = _symbols[offset + 4];
final Opt s = (Opt) _symbol_s.value;
final Symbol _symbol_i = _symbols[offset + 5];
final List i = (List) _symbol_i.value;
final Symbol _symbol_b = _symbols[offset + 6];
final List b = (List) _symbol_b.value;
return new ClassDecl(new Modifiers(m), IDENTIFIER, s, i, b);
}
case 95: // super = EXTENDS.EXTENDS class_type.class_type
{
final Symbol EXTENDS = _symbols[offset + 1];
final Symbol _symbol_class_type = _symbols[offset + 2];
final Access class_type = (Access) _symbol_class_type.value;
return new Opt(class_type);
}
case 96: // interfaces = IMPLEMENTS.IMPLEMENTS interface_type_list.i
{
final Symbol IMPLEMENTS = _symbols[offset + 1];
final Symbol _symbol_i = _symbols[offset + 2];
final List i = (List) _symbol_i.value;
return i;
}
case 97: // interface_type_list = interface_type.i
{
final Symbol _symbol_i = _symbols[offset + 1];
final Access i = (Access) _symbol_i.value;
return new List().add(i);
}
case 98: // interface_type_list = interface_type_list.l COMMA.COMMA interface_type.i
{
final Symbol _symbol_l = _symbols[offset + 1];
final List l = (List) _symbol_l.value;
final Symbol COMMA = _symbols[offset + 2];
final Symbol _symbol_i = _symbols[offset + 3];
final Access i = (Access) _symbol_i.value;
return l.add(i);
}
case 99: // class_body = LBRACE.LBRACE RBRACE.RBRACE
{
final Symbol LBRACE = _symbols[offset + 1];
final Symbol RBRACE = _symbols[offset + 2];
return new List();
}
case 100: // class_body = LBRACE.LBRACE class_body_declarations.c RBRACE.RBRACE
{
final Symbol LBRACE = _symbols[offset + 1];
final Symbol _symbol_c = _symbols[offset + 2];
final List c = (List) _symbol_c.value;
final Symbol RBRACE = _symbols[offset + 3];
return c;
}
case 101: // class_body = LBRACE.LBRACE doc_comment_list.doc_comment_list RBRACE.RBRACE
{
final Symbol LBRACE = _symbols[offset + 1];
final Symbol _symbol_doc_comment_list = _symbols[offset + 2];
final String doc_comment_list = (String) _symbol_doc_comment_list.value;
final Symbol RBRACE = _symbols[offset + 3];
return new List();
}
case 102: // class_body = LBRACE.LBRACE class_body_declarations.c doc_comment_list.doc_comment_list RBRACE.RBRACE
{
final Symbol LBRACE = _symbols[offset + 1];
final Symbol _symbol_c = _symbols[offset + 2];
final List c = (List) _symbol_c.value;
final Symbol _symbol_doc_comment_list = _symbols[offset + 3];
final String doc_comment_list = (String) _symbol_doc_comment_list.value;
final Symbol RBRACE = _symbols[offset + 4];
return c;
}
case 103: // class_body_declarations = body_decl_with_comment.c
{
final Symbol _symbol_c = _symbols[offset + 1];
final BodyDecl c = (BodyDecl) _symbol_c.value;
return new List().add(c);
}
case 104: // class_body_declarations = class_body_declarations.l body_decl_with_comment.c
{
final Symbol _symbol_l = _symbols[offset + 1];
final List l = (List) _symbol_l.value;
final Symbol _symbol_c = _symbols[offset + 2];
final BodyDecl c = (BodyDecl) _symbol_c.value;
return l.add(c);
}
case 106: // body_decl_with_comment = doc_comment_list.dc class_body_declaration.d
{
final Symbol _symbol_dc = _symbols[offset + 1];
final String dc = (String) _symbol_dc.value;
final Symbol _symbol_d = _symbols[offset + 2];
final BodyDecl d = (BodyDecl) _symbol_d.value;
d.docComment = dc;
return d;
}
case 113: // class_member_declaration = class_declaration.c
{
final Symbol _symbol_c = _symbols[offset + 1];
final ClassDecl c = (ClassDecl) _symbol_c.value;
return new MemberClassDecl(c);
}
case 114: // class_member_declaration = interface_declaration.i
{
final Symbol _symbol_i = _symbols[offset + 1];
final InterfaceDecl i = (InterfaceDecl) _symbol_i.value;
return new MemberInterfaceDecl(i);
}
case 115: // class_member_declaration = SEMICOLON.SEMICOLON
{
final Symbol SEMICOLON = _symbols[offset + 1];
return new InstanceInitializer(new Block());
}
case 116: // field_declaration = type.t field_declarators.v SEMICOLON.SEMICOLON
{
final Symbol _symbol_t = _symbols[offset + 1];
final Access t = (Access) _symbol_t.value;
final Symbol _symbol_v = _symbols[offset + 2];
final List v = (List) _symbol_v.value;
final Symbol SEMICOLON = _symbols[offset + 3];
return new FieldDecl(new Modifiers(new List()), t, v);
}
case 117: // field_declaration = modifiers.m type.t field_declarators.v SEMICOLON.SEMICOLON
{
final Symbol _symbol_m = _symbols[offset + 1];
final List m = (List) _symbol_m.value;
final Symbol _symbol_t = _symbols[offset + 2];
final Access t = (Access) _symbol_t.value;
final Symbol _symbol_v = _symbols[offset + 3];
final List v = (List) _symbol_v.value;
final Symbol SEMICOLON = _symbols[offset + 4];
return new FieldDecl(new Modifiers(m), t, v);
}
case 118: // field_declarators = field_declarator.v
{
final Symbol _symbol_v = _symbols[offset + 1];
final FieldDeclarator v = (FieldDeclarator) _symbol_v.value;
return new List().add(v);
}
case 119: // field_declarators = field_declarators.l COMMA.COMMA field_declarator.v
{
final Symbol _symbol_l = _symbols[offset + 1];
final List l = (List) _symbol_l.value;
final Symbol COMMA = _symbols[offset + 2];
final Symbol _symbol_v = _symbols[offset + 3];
final FieldDeclarator v = (FieldDeclarator) _symbol_v.value;
return l.add(v);
}
case 121: // field_declarator = field_declarator_id.v EQ.EQ variable_initializer.i
{
final Symbol _symbol_v = _symbols[offset + 1];
final FieldDeclarator v = (FieldDeclarator) _symbol_v.value;
final Symbol EQ = _symbols[offset + 2];
final Symbol _symbol_i = _symbols[offset + 3];
final Expr i = (Expr) _symbol_i.value;
v.setInit(i); return v;
}
case 122: // field_declarator_id = IDENTIFIER.IDENTIFIER dims_opt.d
{
final Symbol IDENTIFIER = _symbols[offset + 1];
final Symbol _symbol_d = _symbols[offset + 2];
final List d = (List) _symbol_d.value;
return new FieldDeclarator(IDENTIFIER, d, new Opt());
}
case 125: // method_declaration = method_header.m method_body.b
{
final Symbol _symbol_m = _symbols[offset + 1];
final MethodDecl m = (MethodDecl) _symbol_m.value;
final Symbol _symbol_b = _symbols[offset + 2];
final Opt b = (Opt) _symbol_b.value;
m.setBlockOpt(b); return m;
}
case 126: // method_header = type.t IDENTIFIER.IDENTIFIER LPAREN.LPAREN formal_parameter_list_opt.l RPAREN.RPAREN
{
final Symbol _symbol_t = _symbols[offset + 1];
final Access t = (Access) _symbol_t.value;
final Symbol IDENTIFIER = _symbols[offset + 2];
final Symbol LPAREN = _symbols[offset + 3];
final Symbol _symbol_l = _symbols[offset + 4];
final List l = (List) _symbol_l.value;
final Symbol RPAREN = _symbols[offset + 5];
return new MethodDecl(new Modifiers(new List()), t.addArrayDims(new List()), IDENTIFIER, l, new List(), new Opt());
}
case 127: // method_header = modifiers.m type.t IDENTIFIER.IDENTIFIER LPAREN.LPAREN formal_parameter_list_opt.l RPAREN.RPAREN
{
final Symbol _symbol_m = _symbols[offset + 1];
final List m = (List) _symbol_m.value;
final Symbol _symbol_t = _symbols[offset + 2];
final Access t = (Access) _symbol_t.value;
final Symbol IDENTIFIER = _symbols[offset + 3];
final Symbol LPAREN = _symbols[offset + 4];
final Symbol _symbol_l = _symbols[offset + 5];
final List l = (List) _symbol_l.value;
final Symbol RPAREN = _symbols[offset + 6];
return new MethodDecl(new Modifiers(m), t.addArrayDims(new List()), IDENTIFIER, l, new List(), new Opt());
}
case 128: // method_header = type.t IDENTIFIER.IDENTIFIER LPAREN.LPAREN formal_parameter_list_opt.l RPAREN.RPAREN dims.d
{
final Symbol _symbol_t = _symbols[offset + 1];
final Access t = (Access) _symbol_t.value;
final Symbol IDENTIFIER = _symbols[offset + 2];
final Symbol LPAREN = _symbols[offset + 3];
final Symbol _symbol_l = _symbols[offset + 4];
final List l = (List) _symbol_l.value;
final Symbol RPAREN = _symbols[offset + 5];
final Symbol _symbol_d = _symbols[offset + 6];
final List d = (List) _symbol_d.value;
return new MethodDecl(new Modifiers(new List()), t.addArrayDims(d), IDENTIFIER, l, new List(), new Opt());
}
case 129: // method_header = modifiers.m type.t IDENTIFIER.IDENTIFIER LPAREN.LPAREN formal_parameter_list_opt.l RPAREN.RPAREN dims.d
{
final Symbol _symbol_m = _symbols[offset + 1];
final List m = (List) _symbol_m.value;
final Symbol _symbol_t = _symbols[offset + 2];
final Access t = (Access) _symbol_t.value;
final Symbol IDENTIFIER = _symbols[offset + 3];
final Symbol LPAREN = _symbols[offset + 4];
final Symbol _symbol_l = _symbols[offset + 5];
final List l = (List) _symbol_l.value;
final Symbol RPAREN = _symbols[offset + 6];
final Symbol _symbol_d = _symbols[offset + 7];
final List d = (List) _symbol_d.value;
return new MethodDecl(new Modifiers(m), t.addArrayDims(d), IDENTIFIER, l, new List(), new Opt());
}
case 130: // method_header = type.t IDENTIFIER.IDENTIFIER LPAREN.LPAREN formal_parameter_list_opt.l RPAREN.RPAREN throws.tl
{
final Symbol _symbol_t = _symbols[offset + 1];
final Access t = (Access) _symbol_t.value;
final Symbol IDENTIFIER = _symbols[offset + 2];
final Symbol LPAREN = _symbols[offset + 3];
final Symbol _symbol_l = _symbols[offset + 4];
final List l = (List) _symbol_l.value;
final Symbol RPAREN = _symbols[offset + 5];
final Symbol _symbol_tl = _symbols[offset + 6];
final List tl = (List) _symbol_tl.value;
return new MethodDecl(new Modifiers(new List()), t.addArrayDims(new List()), IDENTIFIER, l, tl, new Opt());
}
case 131: // method_header = modifiers.m type.t IDENTIFIER.IDENTIFIER LPAREN.LPAREN formal_parameter_list_opt.l RPAREN.RPAREN throws.tl
{
final Symbol _symbol_m = _symbols[offset + 1];
final List m = (List) _symbol_m.value;
final Symbol _symbol_t = _symbols[offset + 2];
final Access t = (Access) _symbol_t.value;
final Symbol IDENTIFIER = _symbols[offset + 3];
final Symbol LPAREN = _symbols[offset + 4];
final Symbol _symbol_l = _symbols[offset + 5];
final List l = (List) _symbol_l.value;
final Symbol RPAREN = _symbols[offset + 6];
final Symbol _symbol_tl = _symbols[offset + 7];
final List tl = (List) _symbol_tl.value;
return new MethodDecl(new Modifiers(m), t.addArrayDims(new List()), IDENTIFIER, l, tl, new Opt());
}
case 132: // method_header = type.t IDENTIFIER.IDENTIFIER LPAREN.LPAREN formal_parameter_list_opt.l RPAREN.RPAREN dims.d throws.tl
{
final Symbol _symbol_t = _symbols[offset + 1];
final Access t = (Access) _symbol_t.value;
final Symbol IDENTIFIER = _symbols[offset + 2];
final Symbol LPAREN = _symbols[offset + 3];
final Symbol _symbol_l = _symbols[offset + 4];
final List l = (List) _symbol_l.value;
final Symbol RPAREN = _symbols[offset + 5];
final Symbol _symbol_d = _symbols[offset + 6];
final List d = (List) _symbol_d.value;
final Symbol _symbol_tl = _symbols[offset + 7];
final List tl = (List) _symbol_tl.value;
return new MethodDecl(new Modifiers(new List()), t.addArrayDims(d), IDENTIFIER, l, tl, new Opt());
}
case 133: // method_header = modifiers.m type.t IDENTIFIER.IDENTIFIER LPAREN.LPAREN formal_parameter_list_opt.l RPAREN.RPAREN dims.d throws.tl
{
final Symbol _symbol_m = _symbols[offset + 1];
final List m = (List) _symbol_m.value;
final Symbol _symbol_t = _symbols[offset + 2];
final Access t = (Access) _symbol_t.value;
final Symbol IDENTIFIER = _symbols[offset + 3];
final Symbol LPAREN = _symbols[offset + 4];
final Symbol _symbol_l = _symbols[offset + 5];
final List l = (List) _symbol_l.value;
final Symbol RPAREN = _symbols[offset + 6];
final Symbol _symbol_d = _symbols[offset + 7];
final List d = (List) _symbol_d.value;
final Symbol _symbol_tl = _symbols[offset + 8];
final List tl = (List) _symbol_tl.value;
return new MethodDecl(new Modifiers(m), t.addArrayDims(d), IDENTIFIER, l, tl, new Opt());
}
case 134: // method_header = VOID.VOID IDENTIFIER.IDENTIFIER LPAREN.LPAREN formal_parameter_list_opt.l RPAREN.RPAREN throws_opt.tl
{
final Symbol VOID = _symbols[offset + 1];
final Symbol IDENTIFIER = _symbols[offset + 2];
final Symbol LPAREN = _symbols[offset + 3];
final Symbol _symbol_l = _symbols[offset + 4];
final List l = (List) _symbol_l.value;
final Symbol RPAREN = _symbols[offset + 5];
final Symbol _symbol_tl = _symbols[offset + 6];
final List tl = (List) _symbol_tl.value;
return new MethodDecl(new Modifiers(new List()), new PrimitiveTypeAccess("void"), IDENTIFIER, l, tl, new Opt());
}
case 135: // method_header = modifiers.m VOID.VOID IDENTIFIER.IDENTIFIER LPAREN.LPAREN formal_parameter_list_opt.l RPAREN.RPAREN throws_opt.tl
{
final Symbol _symbol_m = _symbols[offset + 1];
final List m = (List) _symbol_m.value;
final Symbol VOID = _symbols[offset + 2];
final Symbol IDENTIFIER = _symbols[offset + 3];
final Symbol LPAREN = _symbols[offset + 4];
final Symbol _symbol_l = _symbols[offset + 5];
final List l = (List) _symbol_l.value;
final Symbol RPAREN = _symbols[offset + 6];
final Symbol _symbol_tl = _symbols[offset + 7];
final List tl = (List) _symbol_tl.value;
return new MethodDecl(new Modifiers(m), new PrimitiveTypeAccess("void"), IDENTIFIER, l, tl, new Opt());
}
case 136: // formal_parameter_list = formal_parameter.f
{
final Symbol _symbol_f = _symbols[offset + 1];
final ParameterDeclaration f = (ParameterDeclaration) _symbol_f.value;
return new List().add(f);
}
case 137: // formal_parameter_list = formal_parameter_list.l COMMA.COMMA formal_parameter.f
{
final Symbol _symbol_l = _symbols[offset + 1];
final List l = (List) _symbol_l.value;
final Symbol COMMA = _symbols[offset + 2];
final Symbol _symbol_f = _symbols[offset + 3];
final ParameterDeclaration f = (ParameterDeclaration) _symbol_f.value;
return l.add(f);
}
case 138: // formal_parameter = type.t IDENTIFIER.IDENTIFIER dims_opt.d
{
final Symbol _symbol_t = _symbols[offset + 1];
final Access t = (Access) _symbol_t.value;
final Symbol IDENTIFIER = _symbols[offset + 2];
final Symbol _symbol_d = _symbols[offset + 3];
final List d = (List) _symbol_d.value;
return new ParameterDeclaration(new Modifiers(new List()), t.addArrayDims(d), IDENTIFIER);
}
case 139: // formal_parameter = modifiers.m type.t IDENTIFIER.IDENTIFIER dims_opt.d
{
final Symbol _symbol_m = _symbols[offset + 1];
final List m = (List) _symbol_m.value;
final Symbol _symbol_t = _symbols[offset + 2];
final Access t = (Access) _symbol_t.value;
final Symbol IDENTIFIER = _symbols[offset + 3];
final Symbol _symbol_d = _symbols[offset + 4];
final List d = (List) _symbol_d.value;
return new ParameterDeclaration(new Modifiers(m), t.addArrayDims(d), IDENTIFIER);
}
case 140: // throws = THROWS.THROWS class_type_list.l
{
final Symbol THROWS = _symbols[offset + 1];
final Symbol _symbol_l = _symbols[offset + 2];
final List l = (List) _symbol_l.value;
return l;
}
case 141: // class_type_list = class_type.c
{
final Symbol _symbol_c = _symbols[offset + 1];
final Access c = (Access) _symbol_c.value;
return new List().add(c);
}
case 142: // class_type_list = class_type_list.l COMMA.COMMA class_type.c
{
final Symbol _symbol_l = _symbols[offset + 1];
final List l = (List) _symbol_l.value;
final Symbol COMMA = _symbols[offset + 2];
final Symbol _symbol_c = _symbols[offset + 3];
final Access c = (Access) _symbol_c.value;
return l.add(c);
}
case 143: // method_body = block.block
{
final Symbol _symbol_block = _symbols[offset + 1];
final Block block = (Block) _symbol_block.value;
return new Opt(block);
}
case 144: // method_body = SEMICOLON.SEMICOLON
{
final Symbol SEMICOLON = _symbols[offset + 1];
return new Opt();
}
case 145: // static_initializer = STATIC.STATIC block.block
{
final Symbol STATIC = _symbols[offset + 1];
final Symbol _symbol_block = _symbols[offset + 2];
final Block block = (Block) _symbol_block.value;
return new StaticInitializer(block);
}
case 146: // instance_initializer = block.block
{
final Symbol _symbol_block = _symbols[offset + 1];
final Block block = (Block) _symbol_block.value;
return new InstanceInitializer(block);
}
case 147: // constructor_declaration = IDENTIFIER.IDENTIFIER LPAREN.LPAREN formal_parameter_list_opt.pl RPAREN.RPAREN throws_opt.tl LBRACE.LBRACE RBRACE.RBRACE
{
final Symbol IDENTIFIER = _symbols[offset + 1];
final Symbol LPAREN = _symbols[offset + 2];
final Symbol _symbol_pl = _symbols[offset + 3];
final List pl = (List) _symbol_pl.value;
final Symbol RPAREN = _symbols[offset + 4];
final Symbol _symbol_tl = _symbols[offset + 5];
final List tl = (List) _symbol_tl.value;
final Symbol LBRACE = _symbols[offset + 6];
final Symbol RBRACE = _symbols[offset + 7];
Block b = new Block(new List()); new List().setStart(LBRACE.getStart() + 1); b.setStart(LBRACE.getStart()); b.setEnd(RBRACE.getEnd());
return new ConstructorDecl(new Modifiers(new List()), IDENTIFIER, pl, tl, new Opt(), b);
}
case 148: // constructor_declaration = modifiers.m IDENTIFIER.IDENTIFIER LPAREN.LPAREN formal_parameter_list_opt.pl RPAREN.RPAREN throws_opt.tl LBRACE.LBRACE RBRACE.RBRACE
{
final Symbol _symbol_m = _symbols[offset + 1];
final List m = (List) _symbol_m.value;
final Symbol IDENTIFIER = _symbols[offset + 2];
final Symbol LPAREN = _symbols[offset + 3];
final Symbol _symbol_pl = _symbols[offset + 4];
final List pl = (List) _symbol_pl.value;
final Symbol RPAREN = _symbols[offset + 5];
final Symbol _symbol_tl = _symbols[offset + 6];
final List tl = (List) _symbol_tl.value;
final Symbol LBRACE = _symbols[offset + 7];
final Symbol RBRACE = _symbols[offset + 8];
Block b = new Block(new List()); new List().setStart(LBRACE.getStart() + 1); b.setStart(LBRACE.getStart()); b.setEnd(RBRACE.getEnd());
return new ConstructorDecl(new Modifiers(m), IDENTIFIER, pl, tl, new Opt(), b);
}
case 149: // constructor_declaration = IDENTIFIER.IDENTIFIER LPAREN.LPAREN formal_parameter_list_opt.pl RPAREN.RPAREN throws_opt.tl LBRACE.LBRACE explicit_constructor_invocation.c RBRACE.RBRACE
{
final Symbol IDENTIFIER = _symbols[offset + 1];
final Symbol LPAREN = _symbols[offset + 2];
final Symbol _symbol_pl = _symbols[offset + 3];
final List pl = (List) _symbol_pl.value;
final Symbol RPAREN = _symbols[offset + 4];
final Symbol _symbol_tl = _symbols[offset + 5];
final List tl = (List) _symbol_tl.value;
final Symbol LBRACE = _symbols[offset + 6];
final Symbol _symbol_c = _symbols[offset + 7];
final ExprStmt c = (ExprStmt) _symbol_c.value;
final Symbol RBRACE = _symbols[offset + 8];
Block b = new Block(new List()); new List().setStart(LBRACE.getStart() + 1); b.setStart(LBRACE.getStart()); b.setEnd(RBRACE.getEnd());
return new ConstructorDecl(new Modifiers(new List()), IDENTIFIER, pl, tl, new Opt(c), b);
}
case 150: // constructor_declaration = modifiers.m IDENTIFIER.IDENTIFIER LPAREN.LPAREN formal_parameter_list_opt.pl RPAREN.RPAREN throws_opt.tl LBRACE.LBRACE explicit_constructor_invocation.c RBRACE.RBRACE
{
final Symbol _symbol_m = _symbols[offset + 1];
final List m = (List) _symbol_m.value;
final Symbol IDENTIFIER = _symbols[offset + 2];
final Symbol LPAREN = _symbols[offset + 3];
final Symbol _symbol_pl = _symbols[offset + 4];
final List pl = (List) _symbol_pl.value;
final Symbol RPAREN = _symbols[offset + 5];
final Symbol _symbol_tl = _symbols[offset + 6];
final List tl = (List) _symbol_tl.value;
final Symbol LBRACE = _symbols[offset + 7];
final Symbol _symbol_c = _symbols[offset + 8];
final ExprStmt c = (ExprStmt) _symbol_c.value;
final Symbol RBRACE = _symbols[offset + 9];
Block b = new Block(new List()); new List().setStart(LBRACE.getStart() + 1); b.setStart(LBRACE.getStart()); b.setEnd(RBRACE.getEnd());
return new ConstructorDecl(new Modifiers(m), IDENTIFIER, pl, tl, new Opt(c), b);
}
case 151: // constructor_declaration = IDENTIFIER.IDENTIFIER LPAREN.LPAREN formal_parameter_list_opt.pl RPAREN.RPAREN throws_opt.tl LBRACE.LBRACE block_statements.l RBRACE.RBRACE
{
final Symbol IDENTIFIER = _symbols[offset + 1];
final Symbol LPAREN = _symbols[offset + 2];
final Symbol _symbol_pl = _symbols[offset + 3];
final List pl = (List) _symbol_pl.value;
final Symbol RPAREN = _symbols[offset + 4];
final Symbol _symbol_tl = _symbols[offset + 5];
final List tl = (List) _symbol_tl.value;
final Symbol LBRACE = _symbols[offset + 6];
final Symbol _symbol_l = _symbols[offset + 7];
final List l = (List) _symbol_l.value;
final Symbol RBRACE = _symbols[offset + 8];
Block b = new Block(l); l.setStart(LBRACE.getStart() + 1); b.setStart(LBRACE.getStart()); b.setEnd(RBRACE.getEnd());
return new ConstructorDecl(new Modifiers(new List()), IDENTIFIER, pl, tl, new Opt(), b);
}
case 152: // constructor_declaration = modifiers.m IDENTIFIER.IDENTIFIER LPAREN.LPAREN formal_parameter_list_opt.pl RPAREN.RPAREN throws_opt.tl LBRACE.LBRACE block_statements.l RBRACE.RBRACE
{
final Symbol _symbol_m = _symbols[offset + 1];
final List m = (List) _symbol_m.value;
final Symbol IDENTIFIER = _symbols[offset + 2];
final Symbol LPAREN = _symbols[offset + 3];
final Symbol _symbol_pl = _symbols[offset + 4];
final List pl = (List) _symbol_pl.value;
final Symbol RPAREN = _symbols[offset + 5];
final Symbol _symbol_tl = _symbols[offset + 6];
final List tl = (List) _symbol_tl.value;
final Symbol LBRACE = _symbols[offset + 7];
final Symbol _symbol_l = _symbols[offset + 8];
final List l = (List) _symbol_l.value;
final Symbol RBRACE = _symbols[offset + 9];
Block b = new Block(l); l.setStart(LBRACE.getStart() + 1); b.setStart(LBRACE.getStart()); b.setEnd(RBRACE.getEnd());
return new ConstructorDecl(new Modifiers(m), IDENTIFIER, pl, tl, new Opt(), b);
}
case 153: // constructor_declaration = IDENTIFIER.IDENTIFIER LPAREN.LPAREN formal_parameter_list_opt.pl RPAREN.RPAREN throws_opt.tl LBRACE.LBRACE explicit_constructor_invocation.c block_statements.l RBRACE.RBRACE
{
final Symbol IDENTIFIER = _symbols[offset + 1];
final Symbol LPAREN = _symbols[offset + 2];
final Symbol _symbol_pl = _symbols[offset + 3];
final List pl = (List) _symbol_pl.value;
final Symbol RPAREN = _symbols[offset + 4];
final Symbol _symbol_tl = _symbols[offset + 5];
final List tl = (List) _symbol_tl.value;
final Symbol LBRACE = _symbols[offset + 6];
final Symbol _symbol_c = _symbols[offset + 7];
final ExprStmt c = (ExprStmt) _symbol_c.value;
final Symbol _symbol_l = _symbols[offset + 8];
final List l = (List) _symbol_l.value;
final Symbol RBRACE = _symbols[offset + 9];
Block b = new Block(l); l.setStart(LBRACE.getStart() + 1); b.setStart(LBRACE.getStart()); b.setEnd(RBRACE.getEnd());
return new ConstructorDecl(new Modifiers(new List()), IDENTIFIER, pl, tl, new Opt(c), b);
}
case 154: // constructor_declaration = modifiers.m IDENTIFIER.IDENTIFIER LPAREN.LPAREN formal_parameter_list_opt.pl RPAREN.RPAREN throws_opt.tl LBRACE.LBRACE explicit_constructor_invocation.c block_statements.l RBRACE.RBRACE
{
final Symbol _symbol_m = _symbols[offset + 1];
final List m = (List) _symbol_m.value;
final Symbol IDENTIFIER = _symbols[offset + 2];
final Symbol LPAREN = _symbols[offset + 3];
final Symbol _symbol_pl = _symbols[offset + 4];
final List pl = (List) _symbol_pl.value;
final Symbol RPAREN = _symbols[offset + 5];
final Symbol _symbol_tl = _symbols[offset + 6];
final List tl = (List) _symbol_tl.value;
final Symbol LBRACE = _symbols[offset + 7];
final Symbol _symbol_c = _symbols[offset + 8];
final ExprStmt c = (ExprStmt) _symbol_c.value;
final Symbol _symbol_l = _symbols[offset + 9];
final List l = (List) _symbol_l.value;
final Symbol RBRACE = _symbols[offset + 10];
Block b = new Block(l); l.setStart(LBRACE.getStart() + 1); b.setStart(LBRACE.getStart()); b.setEnd(RBRACE.getEnd());
return new ConstructorDecl(new Modifiers(m), IDENTIFIER, pl, tl, new Opt(c), b);
}
case 155: // explicit_constructor_invocation = THIS.THIS LPAREN.LPAREN argument_list_opt.l RPAREN.RPAREN SEMICOLON.SEMICOLON
{
final Symbol THIS = _symbols[offset + 1];
final Symbol LPAREN = _symbols[offset + 2];
final Symbol _symbol_l = _symbols[offset + 3];
final List l = (List) _symbol_l.value;
final Symbol RPAREN = _symbols[offset + 4];
final Symbol SEMICOLON = _symbols[offset + 5];
ConstructorAccess c = new ConstructorAccess("this", l);
c.setStart(THIS.getStart());
c.setEnd(RPAREN.getEnd());
return new ExprStmt(c);
}
case 156: // explicit_constructor_invocation = SUPER.SUPER LPAREN.LPAREN argument_list_opt.l RPAREN.RPAREN SEMICOLON.SEMICOLON
{
final Symbol SUPER = _symbols[offset + 1];
final Symbol LPAREN = _symbols[offset + 2];
final Symbol _symbol_l = _symbols[offset + 3];
final List l = (List) _symbol_l.value;
final Symbol RPAREN = _symbols[offset + 4];
final Symbol SEMICOLON = _symbols[offset + 5];
SuperConstructorAccess c = new SuperConstructorAccess("super", l);
c.setStart(SUPER.getStart());
c.setEnd(RPAREN.getEnd());
return new ExprStmt(c);
}
case 157: // explicit_constructor_invocation = primary.p DOT.DOT SUPER.SUPER LPAREN.LPAREN argument_list_opt.l RPAREN.RPAREN SEMICOLON.SEMICOLON
{
final Symbol _symbol_p = _symbols[offset + 1];
final Expr p = (Expr) _symbol_p.value;
final Symbol DOT = _symbols[offset + 2];
final Symbol SUPER = _symbols[offset + 3];
final Symbol LPAREN = _symbols[offset + 4];
final Symbol _symbol_l = _symbols[offset + 5];
final List l = (List) _symbol_l.value;
final Symbol RPAREN = _symbols[offset + 6];
final Symbol SEMICOLON = _symbols[offset + 7];
SuperConstructorAccess c = new SuperConstructorAccess("super", l);
c.setStart(SUPER.getStart());
c.setEnd(RPAREN.getEnd());
return new ExprStmt(p.qualifiesAccess(c));
}
case 158: // explicit_constructor_invocation = name.n DOT.DOT SUPER.SUPER LPAREN.LPAREN argument_list_opt.l RPAREN.RPAREN SEMICOLON.SEMICOLON
{
final Symbol _symbol_n = _symbols[offset + 1];
final Access n = (Access) _symbol_n.value;
final Symbol DOT = _symbols[offset + 2];
final Symbol SUPER = _symbols[offset + 3];
final Symbol LPAREN = _symbols[offset + 4];
final Symbol _symbol_l = _symbols[offset + 5];
final List l = (List) _symbol_l.value;
final Symbol RPAREN = _symbols[offset + 6];
final Symbol SEMICOLON = _symbols[offset + 7];
SuperConstructorAccess c = new SuperConstructorAccess("super", l);
c.setStart(SUPER.getStart());
c.setEnd(RPAREN.getEnd());
return new ExprStmt(n.qualifiesAccess(c));
}
case 159: // interface_declaration = INTERFACE.INTERFACE IDENTIFIER.IDENTIFIER interface_body.b
{
final Symbol INTERFACE = _symbols[offset + 1];
final Symbol IDENTIFIER = _symbols[offset + 2];
final Symbol _symbol_b = _symbols[offset + 3];
final List b = (List) _symbol_b.value;
return new InterfaceDecl(new Modifiers(new List()), IDENTIFIER, new List(), b);
}
case 160: // interface_declaration = modifiers.m INTERFACE.INTERFACE IDENTIFIER.IDENTIFIER interface_body.b
{
final Symbol _symbol_m = _symbols[offset + 1];
final List m = (List) _symbol_m.value;
final Symbol INTERFACE = _symbols[offset + 2];
final Symbol IDENTIFIER = _symbols[offset + 3];
final Symbol _symbol_b = _symbols[offset + 4];
final List b = (List) _symbol_b.value;
return new InterfaceDecl(new Modifiers(m), IDENTIFIER, new List(), b);
}
case 161: // interface_declaration = INTERFACE.INTERFACE IDENTIFIER.IDENTIFIER extends_interfaces.i interface_body.b
{
final Symbol INTERFACE = _symbols[offset + 1];
final Symbol IDENTIFIER = _symbols[offset + 2];
final Symbol _symbol_i = _symbols[offset + 3];
final List i = (List) _symbol_i.value;
final Symbol _symbol_b = _symbols[offset + 4];
final List b = (List) _symbol_b.value;
return new InterfaceDecl(new Modifiers(new List()), IDENTIFIER, i, b);
}
case 162: // interface_declaration = modifiers.m INTERFACE.INTERFACE IDENTIFIER.IDENTIFIER extends_interfaces.i interface_body.b
{
final Symbol _symbol_m = _symbols[offset + 1];
final List m = (List) _symbol_m.value;
final Symbol INTERFACE = _symbols[offset + 2];
final Symbol IDENTIFIER = _symbols[offset + 3];
final Symbol _symbol_i = _symbols[offset + 4];
final List i = (List) _symbol_i.value;
final Symbol _symbol_b = _symbols[offset + 5];
final List b = (List) _symbol_b.value;
return new InterfaceDecl(new Modifiers(m), IDENTIFIER, i, b);
}
case 163: // extends_interfaces = EXTENDS.EXTENDS interface_type.i
{
final Symbol EXTENDS = _symbols[offset + 1];
final Symbol _symbol_i = _symbols[offset + 2];
final Access i = (Access) _symbol_i.value;
return new List().add(i);
}
case 164: // extends_interfaces = extends_interfaces.l COMMA.COMMA interface_type.i
{
final Symbol _symbol_l = _symbols[offset + 1];
final List l = (List) _symbol_l.value;
final Symbol COMMA = _symbols[offset + 2];
final Symbol _symbol_i = _symbols[offset + 3];
final Access i = (Access) _symbol_i.value;
return l.add(i);
}
case 165: // interface_body = LBRACE.LBRACE RBRACE.RBRACE
{
final Symbol LBRACE = _symbols[offset + 1];
final Symbol RBRACE = _symbols[offset + 2];
return new List();
}
case 166: // interface_body = LBRACE.LBRACE interface_member_declarations.i RBRACE.RBRACE
{
final Symbol LBRACE = _symbols[offset + 1];
final Symbol _symbol_i = _symbols[offset + 2];
final List i = (List) _symbol_i.value;
final Symbol RBRACE = _symbols[offset + 3];
return i;
}
case 167: // interface_body = LBRACE.LBRACE doc_comment_list.doc_comment_list RBRACE.RBRACE
{
final Symbol LBRACE = _symbols[offset + 1];
final Symbol _symbol_doc_comment_list = _symbols[offset + 2];
final String doc_comment_list = (String) _symbol_doc_comment_list.value;
final Symbol RBRACE = _symbols[offset + 3];
return new List();
}
case 168: // interface_body = LBRACE.LBRACE interface_member_declarations.i doc_comment_list.doc_comment_list RBRACE.RBRACE
{
final Symbol LBRACE = _symbols[offset + 1];
final Symbol _symbol_i = _symbols[offset + 2];
final List i = (List) _symbol_i.value;
final Symbol _symbol_doc_comment_list = _symbols[offset + 3];
final String doc_comment_list = (String) _symbol_doc_comment_list.value;
final Symbol RBRACE = _symbols[offset + 4];
return i;
}
case 169: // interface_member_declarations = interface_member_with_comment.i
{
final Symbol _symbol_i = _symbols[offset + 1];
final BodyDecl i = (BodyDecl) _symbol_i.value;
return new List().add(i);
}
case 170: // interface_member_declarations = interface_member_declarations.l interface_member_with_comment.i
{
final Symbol _symbol_l = _symbols[offset + 1];
final List l = (List) _symbol_l.value;
final Symbol _symbol_i = _symbols[offset + 2];
final BodyDecl i = (BodyDecl) _symbol_i.value;
return l.add(i);
}
case 172: // interface_member_with_comment = doc_comment_list.dc interface_member_declaration.d
{
final Symbol _symbol_dc = _symbols[offset + 1];
final String dc = (String) _symbol_dc.value;
final Symbol _symbol_d = _symbols[offset + 2];
final BodyDecl d = (BodyDecl) _symbol_d.value;
d.docComment = dc;
return d;
}
case 175: // interface_member_declaration = class_declaration.c
{
final Symbol _symbol_c = _symbols[offset + 1];
final ClassDecl c = (ClassDecl) _symbol_c.value;
return new MemberClassDecl(c);
}
case 176: // interface_member_declaration = interface_declaration.i
{
final Symbol _symbol_i = _symbols[offset + 1];
final InterfaceDecl i = (InterfaceDecl) _symbol_i.value;
return new MemberInterfaceDecl(i);
}
case 177: // interface_member_declaration = SEMICOLON.SEMICOLON
{
final Symbol SEMICOLON = _symbols[offset + 1];
return new StaticInitializer(new Block());
}
case 179: // abstract_method_declaration = method_header.m SEMICOLON.SEMICOLON
{
final Symbol _symbol_m = _symbols[offset + 1];
final MethodDecl m = (MethodDecl) _symbol_m.value;
final Symbol SEMICOLON = _symbols[offset + 2];
return m;
}
case 180: // array_initializer = LBRACE.LBRACE RBRACE.RBRACE
{
final Symbol LBRACE = _symbols[offset + 1];
final Symbol RBRACE = _symbols[offset + 2];
return new ArrayInit(new List());
}
case 181: // array_initializer = LBRACE.LBRACE variable_initializers.v RBRACE.RBRACE
{
final Symbol LBRACE = _symbols[offset + 1];
final Symbol _symbol_v = _symbols[offset + 2];
final List v = (List) _symbol_v.value;
final Symbol RBRACE = _symbols[offset + 3];
return new ArrayInit(v);
}
case 182: // array_initializer = LBRACE.LBRACE COMMA.COMMA RBRACE.RBRACE
{
final Symbol LBRACE = _symbols[offset + 1];
final Symbol COMMA = _symbols[offset + 2];
final Symbol RBRACE = _symbols[offset + 3];
return new ArrayInit(new List());
}
case 183: // array_initializer = LBRACE.LBRACE variable_initializers.v COMMA.COMMA RBRACE.RBRACE
{
final Symbol LBRACE = _symbols[offset + 1];
final Symbol _symbol_v = _symbols[offset + 2];
final List v = (List) _symbol_v.value;
final Symbol COMMA = _symbols[offset + 3];
final Symbol RBRACE = _symbols[offset + 4];
return new ArrayInit(v);
}
case 184: // variable_initializers = variable_initializer.v
{
final Symbol _symbol_v = _symbols[offset + 1];
final Expr v = (Expr) _symbol_v.value;
return new List().add(v);
}
case 185: // variable_initializers = variable_initializers.l COMMA.COMMA variable_initializer.v
{
final Symbol _symbol_l = _symbols[offset + 1];
final List l = (List) _symbol_l.value;
final Symbol COMMA = _symbols[offset + 2];
final Symbol _symbol_v = _symbols[offset + 3];
final Expr v = (Expr) _symbol_v.value;
return l.add(v);
}
case 186: // block = LBRACE.LBRACE block_statements_opt.l RBRACE.RBRACE
{
final Symbol LBRACE = _symbols[offset + 1];
final Symbol _symbol_l = _symbols[offset + 2];
final List l = (List) _symbol_l.value;
final Symbol RBRACE = _symbols[offset + 3];
return new Block(l);
}
case 187: // block_statements = block_statement.b
{
final Symbol _symbol_b = _symbols[offset + 1];
final Stmt b = (Stmt) _symbol_b.value;
return new List().add(b);
}
case 188: // block_statements = block_statements.l block_statement.b
{
final Symbol _symbol_l = _symbols[offset + 1];
final List l = (List) _symbol_l.value;
final Symbol _symbol_b = _symbols[offset + 2];
final Stmt b = (Stmt) _symbol_b.value;
return l.add(b);
}
case 190: // block_statement = class_declaration.c
{
final Symbol _symbol_c = _symbols[offset + 1];
final ClassDecl c = (ClassDecl) _symbol_c.value;
return new LocalClassDeclStmt(c);
}
case 192: // local_variable_declaration_statement = local_variable_declaration.l SEMICOLON.SEMICOLON
{
final Symbol _symbol_l = _symbols[offset + 1];
final VarDeclStmt l = (VarDeclStmt) _symbol_l.value;
final Symbol SEMICOLON = _symbols[offset + 2];
return l;
}
case 193: // local_variable_declaration = type.t variable_declarators.l
{
final Symbol _symbol_t = _symbols[offset + 1];
final Access t = (Access) _symbol_t.value;
final Symbol _symbol_l = _symbols[offset + 2];
final List l = (List) _symbol_l.value;
return new VarDeclStmt(new Modifiers(new List()), t, l);
}
case 194: // local_variable_declaration = modifiers.m type.t variable_declarators.l
{
final Symbol _symbol_m = _symbols[offset + 1];
final List m = (List) _symbol_m.value;
final Symbol _symbol_t = _symbols[offset + 2];
final Access t = (Access) _symbol_t.value;
final Symbol _symbol_l = _symbols[offset + 3];
final List l = (List) _symbol_l.value;
return new VarDeclStmt(new Modifiers(m), t, l);
}
case 195: // variable_declarators = variable_declarator.v
{
final Symbol _symbol_v = _symbols[offset + 1];
final VariableDeclarator v = (VariableDeclarator) _symbol_v.value;
return new List().add(v);
}
case 196: // variable_declarators = variable_declarators.l COMMA.COMMA variable_declarator.v
{
final Symbol _symbol_l = _symbols[offset + 1];
final List l = (List) _symbol_l.value;
final Symbol COMMA = _symbols[offset + 2];
final Symbol _symbol_v = _symbols[offset + 3];
final VariableDeclarator v = (VariableDeclarator) _symbol_v.value;
return l.add(v);
}
case 198: // variable_declarator = variable_declarator_id.v EQ.EQ variable_initializer.i
{
final Symbol _symbol_v = _symbols[offset + 1];
final VariableDeclarator v = (VariableDeclarator) _symbol_v.value;
final Symbol EQ = _symbols[offset + 2];
final Symbol _symbol_i = _symbols[offset + 3];
final Expr i = (Expr) _symbol_i.value;
v.setInit(i); return v;
}
case 199: // variable_declarator_id = IDENTIFIER.IDENTIFIER dims_opt.d
{
final Symbol IDENTIFIER = _symbols[offset + 1];
final Symbol _symbol_d = _symbols[offset + 2];
final List d = (List) _symbol_d.value;
return new VariableDeclarator(IDENTIFIER, d, new Opt());
}
case 223: // if_then_statement = IF.IF LPAREN.LPAREN expression.e RPAREN.RPAREN statement.s
{
final Symbol IF = _symbols[offset + 1];
final Symbol LPAREN = _symbols[offset + 2];
final Symbol _symbol_e = _symbols[offset + 3];
final Expr e = (Expr) _symbol_e.value;
final Symbol RPAREN = _symbols[offset + 4];
final Symbol _symbol_s = _symbols[offset + 5];
final Stmt s = (Stmt) _symbol_s.value;
return new IfStmt(e, s, new Opt());
}
case 224: // if_then_else_statement = IF.IF LPAREN.LPAREN expression.e RPAREN.RPAREN statement_no_short_if.t ELSE.ELSE statement.els
{
final Symbol IF = _symbols[offset + 1];
final Symbol LPAREN = _symbols[offset + 2];
final Symbol _symbol_e = _symbols[offset + 3];
final Expr e = (Expr) _symbol_e.value;
final Symbol RPAREN = _symbols[offset + 4];
final Symbol _symbol_t = _symbols[offset + 5];
final Stmt t = (Stmt) _symbol_t.value;
final Symbol ELSE = _symbols[offset + 6];
final Symbol _symbol_els = _symbols[offset + 7];
final Stmt els = (Stmt) _symbol_els.value;
return new IfStmt(e, t, new Opt(els));
}
case 225: // if_then_else_statement_no_short_if = IF.IF LPAREN.LPAREN expression.e RPAREN.RPAREN statement_no_short_if.t ELSE.ELSE statement_no_short_if.els
{
final Symbol IF = _symbols[offset + 1];
final Symbol LPAREN = _symbols[offset + 2];
final Symbol _symbol_e = _symbols[offset + 3];
final Expr e = (Expr) _symbol_e.value;
final Symbol RPAREN = _symbols[offset + 4];
final Symbol _symbol_t = _symbols[offset + 5];
final Stmt t = (Stmt) _symbol_t.value;
final Symbol ELSE = _symbols[offset + 6];
final Symbol _symbol_els = _symbols[offset + 7];
final Stmt els = (Stmt) _symbol_els.value;
return new IfStmt(e, t, new Opt(els));
}
case 226: // empty_statement = SEMICOLON.SEMICOLON
{
final Symbol SEMICOLON = _symbols[offset + 1];
return new EmptyStmt();
}
case 227: // labeled_statement = IDENTIFIER.id COLON.COLON statement.s
{
final Symbol id = _symbols[offset + 1];
final Symbol COLON = _symbols[offset + 2];
final Symbol _symbol_s = _symbols[offset + 3];
final Stmt s = (Stmt) _symbol_s.value;
return new LabeledStmt(((String)id.value), s);
}
case 228: // labeled_statement_no_short_if = IDENTIFIER.id COLON.COLON statement_no_short_if.s
{
final Symbol id = _symbols[offset + 1];
final Symbol COLON = _symbols[offset + 2];
final Symbol _symbol_s = _symbols[offset + 3];
final Stmt s = (Stmt) _symbol_s.value;
return new LabeledStmt(((String)id.value), s);
}
case 229: // expression_statement = statement_expression.e SEMICOLON.SEMICOLON
{
final Symbol _symbol_e = _symbols[offset + 1];
final ExprStmt e = (ExprStmt) _symbol_e.value;
final Symbol SEMICOLON = _symbols[offset + 2];
return e;
}
case 230: // statement_expression = assignment.a
{
final Symbol _symbol_a = _symbols[offset + 1];
final Expr a = (Expr) _symbol_a.value;
return new ExprStmt(a);
}
case 231: // statement_expression = preincrement_expression.e
{
final Symbol _symbol_e = _symbols[offset + 1];
final Expr e = (Expr) _symbol_e.value;
return new ExprStmt(e);
}
case 232: // statement_expression = predecrement_expression.e
{
final Symbol _symbol_e = _symbols[offset + 1];
final Expr e = (Expr) _symbol_e.value;
return new ExprStmt(e);
}
case 233: // statement_expression = postincrement_expression.e
{
final Symbol _symbol_e = _symbols[offset + 1];
final Expr e = (Expr) _symbol_e.value;
return new ExprStmt(e);
}
case 234: // statement_expression = postdecrement_expression.e
{
final Symbol _symbol_e = _symbols[offset + 1];
final Expr e = (Expr) _symbol_e.value;
return new ExprStmt(e);
}
case 235: // statement_expression = method_invocation.i
{
final Symbol _symbol_i = _symbols[offset + 1];
final Access i = (Access) _symbol_i.value;
return new ExprStmt(i);
}
case 236: // statement_expression = class_instance_creation_expression.e
{
final Symbol _symbol_e = _symbols[offset + 1];
final Expr e = (Expr) _symbol_e.value;
return new ExprStmt(e);
}
case 237: // switch_statement = SWITCH.SWITCH LPAREN.LPAREN expression.e RPAREN.RPAREN switch_block.l
{
final Symbol SWITCH = _symbols[offset + 1];
final Symbol LPAREN = _symbols[offset + 2];
final Symbol _symbol_e = _symbols[offset + 3];
final Expr e = (Expr) _symbol_e.value;
final Symbol RPAREN = _symbols[offset + 4];
final Symbol _symbol_l = _symbols[offset + 5];
final Block l = (Block) _symbol_l.value;
return new SwitchStmt(e, l);
}
case 238: // switch_block = LBRACE.LBRACE switch_statements.l RBRACE.RBRACE
{
final Symbol LBRACE = _symbols[offset + 1];
final Symbol _symbol_l = _symbols[offset + 2];
final List l = (List) _symbol_l.value;
final Symbol RBRACE = _symbols[offset + 3];
return new Block(l);
}
case 239: // switch_block = LBRACE.LBRACE RBRACE.RBRACE
{
final Symbol LBRACE = _symbols[offset + 1];
final Symbol RBRACE = _symbols[offset + 2];
return new Block(new List());
}
case 240: // switch_statements = switch_label.s
{
final Symbol _symbol_s = _symbols[offset + 1];
final Case s = (Case) _symbol_s.value;
return new List().add(s);
}
case 241: // switch_statements = switch_statements.l switch_label.s
{
final Symbol _symbol_l = _symbols[offset + 1];
final List l = (List) _symbol_l.value;
final Symbol _symbol_s = _symbols[offset + 2];
final Case s = (Case) _symbol_s.value;
return l.add(s);
}
case 242: // switch_statements = switch_statements.l block_statement.b
{
final Symbol _symbol_l = _symbols[offset + 1];
final List l = (List) _symbol_l.value;
final Symbol _symbol_b = _symbols[offset + 2];
final Stmt b = (Stmt) _symbol_b.value;
return l.add(b);
}
case 243: // switch_label = CASE.CASE constant_expression.e COLON.COLON
{
final Symbol CASE = _symbols[offset + 1];
final Symbol _symbol_e = _symbols[offset + 2];
final Expr e = (Expr) _symbol_e.value;
final Symbol COLON = _symbols[offset + 3];
return new ConstCase(e);
}
case 244: // switch_label = DEFAULT.DEFAULT COLON.COLON
{
final Symbol DEFAULT = _symbols[offset + 1];
final Symbol COLON = _symbols[offset + 2];
return new DefaultCase();
}
case 245: // while_statement = WHILE.WHILE LPAREN.LPAREN expression.e RPAREN.RPAREN statement.s
{
final Symbol WHILE = _symbols[offset + 1];
final Symbol LPAREN = _symbols[offset + 2];
final Symbol _symbol_e = _symbols[offset + 3];
final Expr e = (Expr) _symbol_e.value;
final Symbol RPAREN = _symbols[offset + 4];
final Symbol _symbol_s = _symbols[offset + 5];
final Stmt s = (Stmt) _symbol_s.value;
return new WhileStmt(e, s);
}
case 246: // while_statement_no_short_if = WHILE.WHILE LPAREN.LPAREN expression.e RPAREN.RPAREN statement_no_short_if.s
{
final Symbol WHILE = _symbols[offset + 1];
final Symbol LPAREN = _symbols[offset + 2];
final Symbol _symbol_e = _symbols[offset + 3];
final Expr e = (Expr) _symbol_e.value;
final Symbol RPAREN = _symbols[offset + 4];
final Symbol _symbol_s = _symbols[offset + 5];
final Stmt s = (Stmt) _symbol_s.value;
return new WhileStmt(e, s);
}
case 247: // do_statement = DO.DO statement.s WHILE.WHILE LPAREN.LPAREN expression.e RPAREN.RPAREN SEMICOLON.SEMICOLON
{
final Symbol DO = _symbols[offset + 1];
final Symbol _symbol_s = _symbols[offset + 2];
final Stmt s = (Stmt) _symbol_s.value;
final Symbol WHILE = _symbols[offset + 3];
final Symbol LPAREN = _symbols[offset + 4];
final Symbol _symbol_e = _symbols[offset + 5];
final Expr e = (Expr) _symbol_e.value;
final Symbol RPAREN = _symbols[offset + 6];
final Symbol SEMICOLON = _symbols[offset + 7];
return new DoStmt(s, e);
}
case 248: // for_statement = FOR.FOR LPAREN.LPAREN for_init_opt.i SEMICOLON.SEMICOLON expression_opt.e SEMICOLON.SEMICOLON_ for_update_opt.u RPAREN.RPAREN statement.s
{
final Symbol FOR = _symbols[offset + 1];
final Symbol LPAREN = _symbols[offset + 2];
final Symbol _symbol_i = _symbols[offset + 3];
final List i = (List) _symbol_i.value;
final Symbol SEMICOLON = _symbols[offset + 4];
final Symbol _symbol_e = _symbols[offset + 5];
final Opt e = (Opt) _symbol_e.value;
final Symbol SEMICOLON_ = _symbols[offset + 6];
final Symbol _symbol_u = _symbols[offset + 7];
final List u = (List) _symbol_u.value;
final Symbol RPAREN = _symbols[offset + 8];
final Symbol _symbol_s = _symbols[offset + 9];
final Stmt s = (Stmt) _symbol_s.value;
return new ForStmt(i, e, u, s);
}
case 249: // for_statement_no_short_if = FOR.FOR LPAREN.LPAREN for_init_opt.i SEMICOLON.SEMICOLON expression_opt.e SEMICOLON.SEMICOLON_ for_update_opt.u RPAREN.RPAREN statement_no_short_if.s
{
final Symbol FOR = _symbols[offset + 1];
final Symbol LPAREN = _symbols[offset + 2];
final Symbol _symbol_i = _symbols[offset + 3];
final List i = (List) _symbol_i.value;
final Symbol SEMICOLON = _symbols[offset + 4];
final Symbol _symbol_e = _symbols[offset + 5];
final Opt e = (Opt) _symbol_e.value;
final Symbol SEMICOLON_ = _symbols[offset + 6];
final Symbol _symbol_u = _symbols[offset + 7];
final List u = (List) _symbol_u.value;
final Symbol RPAREN = _symbols[offset + 8];
final Symbol _symbol_s = _symbols[offset + 9];
final Stmt s = (Stmt) _symbol_s.value;
return new ForStmt(i, e, u, s);
}
case 251: // for_init = local_variable_declaration.d
{
final Symbol _symbol_d = _symbols[offset + 1];
final VarDeclStmt d = (VarDeclStmt) _symbol_d.value;
return new List().add(d);
}
case 253: // statement_expression_list = statement_expression.e
{
final Symbol _symbol_e = _symbols[offset + 1];
final ExprStmt e = (ExprStmt) _symbol_e.value;
return new List().add(e);
}
case 254: // statement_expression_list = statement_expression_list.l COMMA.COMMA statement_expression.e
{
final Symbol _symbol_l = _symbols[offset + 1];
final List l = (List) _symbol_l.value;
final Symbol COMMA = _symbols[offset + 2];
final Symbol _symbol_e = _symbols[offset + 3];
final ExprStmt e = (ExprStmt) _symbol_e.value;
return l.add(e);
}
case 255: // break_statement = BREAK.BREAK IDENTIFIER.id SEMICOLON.SEMICOLON
{
final Symbol BREAK = _symbols[offset + 1];
final Symbol id = _symbols[offset + 2];
final Symbol SEMICOLON = _symbols[offset + 3];
return new BreakStmt(((String)id.value));
}
case 256: // break_statement = BREAK.BREAK SEMICOLON.SEMICOLON
{
final Symbol BREAK = _symbols[offset + 1];
final Symbol SEMICOLON = _symbols[offset + 2];
return new BreakStmt("");
}
case 257: // continue_statement = CONTINUE.CONTINUE IDENTIFIER.id SEMICOLON.SEMICOLON
{
final Symbol CONTINUE = _symbols[offset + 1];
final Symbol id = _symbols[offset + 2];
final Symbol SEMICOLON = _symbols[offset + 3];
return new ContinueStmt(((String)id.value));
}
case 258: // continue_statement = CONTINUE.CONTINUE SEMICOLON.SEMICOLON
{
final Symbol CONTINUE = _symbols[offset + 1];
final Symbol SEMICOLON = _symbols[offset + 2];
return new ContinueStmt("");
}
case 259: // return_statement = RETURN.RETURN expression_opt.expression SEMICOLON.SEMICOLON
{
final Symbol RETURN = _symbols[offset + 1];
final Symbol _symbol_expression = _symbols[offset + 2];
final Opt expression = (Opt) _symbol_expression.value;
final Symbol SEMICOLON = _symbols[offset + 3];
return new ReturnStmt(expression);
}
case 260: // throw_statement = THROW.THROW expression.expression SEMICOLON.SEMICOLON
{
final Symbol THROW = _symbols[offset + 1];
final Symbol _symbol_expression = _symbols[offset + 2];
final Expr expression = (Expr) _symbol_expression.value;
final Symbol SEMICOLON = _symbols[offset + 3];
return new ThrowStmt(expression);
}
case 261: // synchronized_statement = SYNCHRONIZED.SYNCHRONIZED LPAREN.LPAREN expression.e RPAREN.RPAREN block.b
{
final Symbol SYNCHRONIZED = _symbols[offset + 1];
final Symbol LPAREN = _symbols[offset + 2];
final Symbol _symbol_e = _symbols[offset + 3];
final Expr e = (Expr) _symbol_e.value;
final Symbol RPAREN = _symbols[offset + 4];
final Symbol _symbol_b = _symbols[offset + 5];
final Block b = (Block) _symbol_b.value;
return new SynchronizedStmt(e, b);
}
case 262: // try_statement = TRY.TRY block.b catches.c
{
final Symbol TRY = _symbols[offset + 1];
final Symbol _symbol_b = _symbols[offset + 2];
final Block b = (Block) _symbol_b.value;
final Symbol _symbol_c = _symbols[offset + 3];
final List c = (List) _symbol_c.value;
return new TryStmt(b, c, new Opt());
}
case 263: // try_statement = TRY.TRY block.b finally.f
{
final Symbol TRY = _symbols[offset + 1];
final Symbol _symbol_b = _symbols[offset + 2];
final Block b = (Block) _symbol_b.value;
final Symbol _symbol_f = _symbols[offset + 3];
final Block f = (Block) _symbol_f.value;
return new TryStmt(b, new List(), new Opt(f));
}
case 264: // try_statement = TRY.TRY block.b catches.c finally.f
{
final Symbol TRY = _symbols[offset + 1];
final Symbol _symbol_b = _symbols[offset + 2];
final Block b = (Block) _symbol_b.value;
final Symbol _symbol_c = _symbols[offset + 3];
final List c = (List) _symbol_c.value;
final Symbol _symbol_f = _symbols[offset + 4];
final Block f = (Block) _symbol_f.value;
return new TryStmt(b, c, new Opt(f));
}
case 265: // catches = catch_clause.c
{
final Symbol _symbol_c = _symbols[offset + 1];
final CatchClause c = (CatchClause) _symbol_c.value;
return new List().add(c);
}
case 266: // catches = catches.l catch_clause.c
{
final Symbol _symbol_l = _symbols[offset + 1];
final List l = (List) _symbol_l.value;
final Symbol _symbol_c = _symbols[offset + 2];
final CatchClause c = (CatchClause) _symbol_c.value;
return l.add(c);
}
case 267: // catch_clause = CATCH.CATCH LPAREN.LPAREN formal_parameter.p RPAREN.RPAREN block.b
{
final Symbol CATCH = _symbols[offset + 1];
final Symbol LPAREN = _symbols[offset + 2];
final Symbol _symbol_p = _symbols[offset + 3];
final ParameterDeclaration p = (ParameterDeclaration) _symbol_p.value;
final Symbol RPAREN = _symbols[offset + 4];
final Symbol _symbol_b = _symbols[offset + 5];
final Block b = (Block) _symbol_b.value;
return new BasicCatch(p, b);
}
case 268: // finally = FINALLY.FINALLY block.b
{
final Symbol FINALLY = _symbols[offset + 1];
final Symbol _symbol_b = _symbols[offset + 2];
final Block b = (Block) _symbol_b.value;
return b;
}
case 269: // assert_statement = ASSERT.ASSERT expression.e SEMICOLON.SEMICOLON
{
final Symbol ASSERT = _symbols[offset + 1];
final Symbol _symbol_e = _symbols[offset + 2];
final Expr e = (Expr) _symbol_e.value;
final Symbol SEMICOLON = _symbols[offset + 3];
return new AssertStmt(e, new Opt());
}
case 270: // assert_statement = ASSERT.ASSERT expression.e COLON.COLON expression.s SEMICOLON.SEMICOLON
{
final Symbol ASSERT = _symbols[offset + 1];
final Symbol _symbol_e = _symbols[offset + 2];
final Expr e = (Expr) _symbol_e.value;
final Symbol COLON = _symbols[offset + 3];
final Symbol _symbol_s = _symbols[offset + 4];
final Expr s = (Expr) _symbol_s.value;
final Symbol SEMICOLON = _symbols[offset + 5];
return new AssertStmt(e, new Opt(s));
}
case 274: // class_literal = CLASS.CLASS
{
final Symbol CLASS = _symbols[offset + 1];
return new ClassAccess();
}
case 276: // primary_no_new_array = primitive_type.n DOT.DOT class_literal.c
{
final Symbol _symbol_n = _symbols[offset + 1];
final Access n = (Access) _symbol_n.value;
final Symbol DOT = _symbols[offset + 2];
final Symbol _symbol_c = _symbols[offset + 3];
final ClassAccess c = (ClassAccess) _symbol_c.value;
return n.addArrayDims(new List()).qualifiesAccess(c);
}
case 277: // primary_no_new_array = primitive_type.n dims.d DOT.DOT class_literal.c
{
final Symbol _symbol_n = _symbols[offset + 1];
final Access n = (Access) _symbol_n.value;
final Symbol _symbol_d = _symbols[offset + 2];
final List d = (List) _symbol_d.value;
final Symbol DOT = _symbols[offset + 3];
final Symbol _symbol_c = _symbols[offset + 4];
final ClassAccess c = (ClassAccess) _symbol_c.value;
return n.addArrayDims(d).qualifiesAccess(c);
}
case 278: // primary_no_new_array = name.name DOT.DOT class_literal.c
{
final Symbol _symbol_name = _symbols[offset + 1];
final Access name = (Access) _symbol_name.value;
final Symbol DOT = _symbols[offset + 2];
final Symbol _symbol_c = _symbols[offset + 3];
final ClassAccess c = (ClassAccess) _symbol_c.value;
return name.addArrayDims(new List()).qualifiesAccess(c);
}
case 279: // primary_no_new_array = name.name dims.d DOT.DOT class_literal.c
{
final Symbol _symbol_name = _symbols[offset + 1];
final Access name = (Access) _symbol_name.value;
final Symbol _symbol_d = _symbols[offset + 2];
final List d = (List) _symbol_d.value;
final Symbol DOT = _symbols[offset + 3];
final Symbol _symbol_c = _symbols[offset + 4];
final ClassAccess c = (ClassAccess) _symbol_c.value;
return name.addArrayDims(d).qualifiesAccess(c);
}
case 280: // primary_no_new_array = VOID.VOID DOT.DOT class_literal.c
{
final Symbol VOID = _symbols[offset + 1];
final Symbol DOT = _symbols[offset + 2];
final Symbol _symbol_c = _symbols[offset + 3];
final ClassAccess c = (ClassAccess) _symbol_c.value;
PrimitiveTypeAccess v = new PrimitiveTypeAccess("void");
v.setStart(VOID.getStart());
v.setEnd(VOID.getEnd());
return v.qualifiesAccess(c);
}
case 281: // primary_no_new_array = THIS.THIS
{
final Symbol THIS = _symbols[offset + 1];
return new ThisAccess("this");
}
case 282: // primary_no_new_array = name.name DOT.DOT THIS.THIS
{
final Symbol _symbol_name = _symbols[offset + 1];
final Access name = (Access) _symbol_name.value;
final Symbol DOT = _symbols[offset + 2];
final Symbol THIS = _symbols[offset + 3];
ThisAccess t = new ThisAccess("this");
t.setStart(THIS.getStart()); t.setEnd(THIS.getEnd());
return name.qualifiesAccess(t);
}
case 283: // primary_no_new_array = LPAREN.LPAREN expression.expression RPAREN.RPAREN
{
final Symbol LPAREN = _symbols[offset + 1];
final Symbol _symbol_expression = _symbols[offset + 2];
final Expr expression = (Expr) _symbol_expression.value;
final Symbol RPAREN = _symbols[offset + 3];
return new ParExpr(expression);
}
case 284: // primary_no_new_array = LPAREN.LPAREN name.name RPAREN.RPAREN
{
final Symbol LPAREN = _symbols[offset + 1];
final Symbol _symbol_name = _symbols[offset + 2];
final Access name = (Access) _symbol_name.value;
final Symbol RPAREN = _symbols[offset + 3];
return new ParExpr(name);
}
case 289: // class_instance_creation_expression = NEW.NEW class_or_interface_type.t LPAREN.LPAREN argument_list_opt.l RPAREN.RPAREN
{
final Symbol NEW = _symbols[offset + 1];
final Symbol _symbol_t = _symbols[offset + 2];
final Access t = (Access) _symbol_t.value;
final Symbol LPAREN = _symbols[offset + 3];
final Symbol _symbol_l = _symbols[offset + 4];
final List l = (List) _symbol_l.value;
final Symbol RPAREN = _symbols[offset + 5];
return new ClassInstanceExpr(t, l, new Opt());
}
case 290: // class_instance_creation_expression = primary.n DOT.DOT NEW.NEW simple_name.id LPAREN.LPAREN argument_list_opt.l RPAREN.RPAREN
{
final Symbol _symbol_n = _symbols[offset + 1];
final Expr n = (Expr) _symbol_n.value;
final Symbol DOT = _symbols[offset + 2];
final Symbol NEW = _symbols[offset + 3];
final Symbol _symbol_id = _symbols[offset + 4];
final Access id = (Access) _symbol_id.value;
final Symbol LPAREN = _symbols[offset + 5];
final Symbol _symbol_l = _symbols[offset + 6];
final List l = (List) _symbol_l.value;
final Symbol RPAREN = _symbols[offset + 7];
ClassInstanceExpr e = new ClassInstanceExpr(id, l, new Opt());
e.setStart(NEW.getStart());
e.setEnd(RPAREN.getEnd());
return n.qualifiesAccess(e);
}
case 291: // class_instance_creation_expression = name.n DOT.DOT NEW.NEW simple_name.id LPAREN.LPAREN argument_list_opt.l RPAREN.RPAREN
{
final Symbol _symbol_n = _symbols[offset + 1];
final Access n = (Access) _symbol_n.value;
final Symbol DOT = _symbols[offset + 2];
final Symbol NEW = _symbols[offset + 3];
final Symbol _symbol_id = _symbols[offset + 4];
final Access id = (Access) _symbol_id.value;
final Symbol LPAREN = _symbols[offset + 5];
final Symbol _symbol_l = _symbols[offset + 6];
final List l = (List) _symbol_l.value;
final Symbol RPAREN = _symbols[offset + 7];
ClassInstanceExpr e = new ClassInstanceExpr(id, l, new Opt());
e.setStart(NEW.getStart());
e.setEnd(RPAREN.getEnd());
return n.qualifiesAccess(e);
}
case 292: // class_instance_creation_expression = NEW.NEW class_or_interface_type.t LPAREN.LPAREN argument_list_opt.l RPAREN.RPAREN subclass_body.b
{
final Symbol NEW = _symbols[offset + 1];
final Symbol _symbol_t = _symbols[offset + 2];
final Access t = (Access) _symbol_t.value;
final Symbol LPAREN = _symbols[offset + 3];
final Symbol _symbol_l = _symbols[offset + 4];
final List l = (List) _symbol_l.value;
final Symbol RPAREN = _symbols[offset + 5];
final Symbol _symbol_b = _symbols[offset + 6];
final Opt b = (Opt) _symbol_b.value;
return new ClassInstanceExpr(t, l, b);
}
case 293: // class_instance_creation_expression = primary.n DOT.DOT NEW.NEW simple_name.id LPAREN.LPAREN argument_list_opt.l RPAREN.RPAREN subclass_body.b
{
final Symbol _symbol_n = _symbols[offset + 1];
final Expr n = (Expr) _symbol_n.value;
final Symbol DOT = _symbols[offset + 2];
final Symbol NEW = _symbols[offset + 3];
final Symbol _symbol_id = _symbols[offset + 4];
final Access id = (Access) _symbol_id.value;
final Symbol LPAREN = _symbols[offset + 5];
final Symbol _symbol_l = _symbols[offset + 6];
final List l = (List) _symbol_l.value;
final Symbol RPAREN = _symbols[offset + 7];
final Symbol _symbol_b = _symbols[offset + 8];
final Opt b = (Opt) _symbol_b.value;
ClassInstanceExpr e = new ClassInstanceExpr(id, l, b);
e.setStart(NEW.getStart());
e.setEnd(b.getEnd());
return n.qualifiesAccess(e);
}
case 294: // class_instance_creation_expression = name.n DOT.DOT NEW.NEW simple_name.id LPAREN.LPAREN argument_list_opt.l RPAREN.RPAREN subclass_body.b
{
final Symbol _symbol_n = _symbols[offset + 1];
final Access n = (Access) _symbol_n.value;
final Symbol DOT = _symbols[offset + 2];
final Symbol NEW = _symbols[offset + 3];
final Symbol _symbol_id = _symbols[offset + 4];
final Access id = (Access) _symbol_id.value;
final Symbol LPAREN = _symbols[offset + 5];
final Symbol _symbol_l = _symbols[offset + 6];
final List l = (List) _symbol_l.value;
final Symbol RPAREN = _symbols[offset + 7];
final Symbol _symbol_b = _symbols[offset + 8];
final Opt b = (Opt) _symbol_b.value;
ClassInstanceExpr e = new ClassInstanceExpr(id, l, b);
e.setStart(NEW.getStart());
e.setEnd(b.getEnd());
return n.qualifiesAccess(e);
}
case 295: // subclass_body = class_body.b
{
final Symbol _symbol_b = _symbols[offset + 1];
final List b = (List) _symbol_b.value;
return new Opt(new AnonymousDecl(new Modifiers(), "Anonymous", b));
}
case 296: // argument_list = expression.e
{
final Symbol _symbol_e = _symbols[offset + 1];
final Expr e = (Expr) _symbol_e.value;
return new List().add(e);
}
case 297: // argument_list = argument_list.l COMMA.COMMA expression.e
{
final Symbol _symbol_l = _symbols[offset + 1];
final List l = (List) _symbol_l.value;
final Symbol COMMA = _symbols[offset + 2];
final Symbol _symbol_e = _symbols[offset + 3];
final Expr e = (Expr) _symbol_e.value;
return l.add(e);
}
case 298: // array_creation_uninit = NEW.NEW primitive_type.t dim_exprs.d
{
final Symbol NEW = _symbols[offset + 1];
final Symbol _symbol_t = _symbols[offset + 2];
final Access t = (Access) _symbol_t.value;
final Symbol _symbol_d = _symbols[offset + 3];
final List d = (List) _symbol_d.value;
return new ArrayCreationExpr(t.addArrayDims(d), new Opt());
}
case 299: // array_creation_uninit = NEW.NEW primitive_type.t dim_exprs.d dims.e
{
final Symbol NEW = _symbols[offset + 1];
final Symbol _symbol_t = _symbols[offset + 2];
final Access t = (Access) _symbol_t.value;
final Symbol _symbol_d = _symbols[offset + 3];
final List d = (List) _symbol_d.value;
final Symbol _symbol_e = _symbols[offset + 4];
final List e = (List) _symbol_e.value;
return new ArrayCreationExpr(t.addArrayDims(d).addArrayDims(e), new Opt());
}
case 300: // array_creation_uninit = NEW.NEW class_or_interface_type.t dim_exprs.d
{
final Symbol NEW = _symbols[offset + 1];
final Symbol _symbol_t = _symbols[offset + 2];
final Access t = (Access) _symbol_t.value;
final Symbol _symbol_d = _symbols[offset + 3];
final List d = (List) _symbol_d.value;
return new ArrayCreationExpr(t.addArrayDims(d), new Opt());
}
case 301: // array_creation_uninit = NEW.NEW class_or_interface_type.t dim_exprs.d dims.e
{
final Symbol NEW = _symbols[offset + 1];
final Symbol _symbol_t = _symbols[offset + 2];
final Access t = (Access) _symbol_t.value;
final Symbol _symbol_d = _symbols[offset + 3];
final List d = (List) _symbol_d.value;
final Symbol _symbol_e = _symbols[offset + 4];
final List e = (List) _symbol_e.value;
return new ArrayCreationExpr(t.addArrayDims(d).addArrayDims(e), new Opt());
}
case 302: // array_creation_init = NEW.NEW primitive_type.t dims.d array_initializer.i
{
final Symbol NEW = _symbols[offset + 1];
final Symbol _symbol_t = _symbols[offset + 2];
final Access t = (Access) _symbol_t.value;
final Symbol _symbol_d = _symbols[offset + 3];
final List d = (List) _symbol_d.value;
final Symbol _symbol_i = _symbols[offset + 4];
final ArrayInit i = (ArrayInit) _symbol_i.value;
return new ArrayCreationExpr(t.addArrayDims(d), new Opt(i));
}
case 303: // array_creation_init = NEW.NEW class_or_interface_type.t dims.d array_initializer.i
{
final Symbol NEW = _symbols[offset + 1];
final Symbol _symbol_t = _symbols[offset + 2];
final Access t = (Access) _symbol_t.value;
final Symbol _symbol_d = _symbols[offset + 3];
final List d = (List) _symbol_d.value;
final Symbol _symbol_i = _symbols[offset + 4];
final ArrayInit i = (ArrayInit) _symbol_i.value;
return new ArrayCreationExpr(t.addArrayDims(d), new Opt(i));
}
case 304: // dim_exprs = dim_expr.e
{
final Symbol _symbol_e = _symbols[offset + 1];
final Dims e = (Dims) _symbol_e.value;
return new List().add(e);
}
case 305: // dim_exprs = dim_exprs.l dim_expr.e
{
final Symbol _symbol_l = _symbols[offset + 1];
final List l = (List) _symbol_l.value;
final Symbol _symbol_e = _symbols[offset + 2];
final Dims e = (Dims) _symbol_e.value;
return l.add(e);
}
case 306: // dim_expr = LBRACK.LBRACK expression.e RBRACK.RBRACK
{
final Symbol LBRACK = _symbols[offset + 1];
final Symbol _symbol_e = _symbols[offset + 2];
final Expr e = (Expr) _symbol_e.value;
final Symbol RBRACK = _symbols[offset + 3];
return new Dims(new Opt(e));
}
case 307: // dims = LBRACK.LBRACK RBRACK.RBRACK
{
final Symbol LBRACK = _symbols[offset + 1];
final Symbol RBRACK = _symbols[offset + 2];
Dims d = new Dims(new Opt()); d.setStart(LBRACK.getStart()); d.setEnd(RBRACK.getEnd());
return new List().add(d);
}
case 308: // dims = dims.l LBRACK.LBRACK RBRACK.RBRACK
{
final Symbol _symbol_l = _symbols[offset + 1];
final List l = (List) _symbol_l.value;
final Symbol LBRACK = _symbols[offset + 2];
final Symbol RBRACK = _symbols[offset + 3];
Dims d = new Dims(new Opt()); d.setStart(LBRACK.getStart()); d.setEnd(RBRACK.getEnd());
return l.add(d);
}
case 309: // field_access = primary.p DOT.DOT simple_name.id
{
final Symbol _symbol_p = _symbols[offset + 1];
final Expr p = (Expr) _symbol_p.value;
final Symbol DOT = _symbols[offset + 2];
final Symbol _symbol_id = _symbols[offset + 3];
final Access id = (Access) _symbol_id.value;
return p.qualifiesAccess(id);
}
case 310: // field_access = SUPER.SUPER DOT.DOT simple_name.id
{
final Symbol SUPER = _symbols[offset + 1];
final Symbol DOT = _symbols[offset + 2];
final Symbol _symbol_id = _symbols[offset + 3];
final Access id = (Access) _symbol_id.value;
SuperAccess s = new SuperAccess("super");
s.setStart(SUPER.getStart());
s.setEnd(SUPER.getEnd());
return s.qualifiesAccess(id);
}
case 311: // field_access = name.n DOT.DOT SUPER.SUPER DOT.DOT_ simple_name.id
{
final Symbol _symbol_n = _symbols[offset + 1];
final Access n = (Access) _symbol_n.value;
final Symbol DOT = _symbols[offset + 2];
final Symbol SUPER = _symbols[offset + 3];
final Symbol DOT_ = _symbols[offset + 4];
final Symbol _symbol_id = _symbols[offset + 5];
final Access id = (Access) _symbol_id.value;
SuperAccess s = new SuperAccess("super");
s.setStart(SUPER.getStart());
s.setEnd(SUPER.getEnd());
return n.qualifiesAccess(s).qualifiesAccess(id);
}
case 312: // method_invocation = name.name LPAREN.LPAREN argument_list_opt.l RPAREN.RPAREN
{
final Symbol _symbol_name = _symbols[offset + 1];
final Access name = (Access) _symbol_name.value;
final Symbol LPAREN = _symbols[offset + 2];
final Symbol _symbol_l = _symbols[offset + 3];
final List l = (List) _symbol_l.value;
final Symbol RPAREN = _symbols[offset + 4];
Access result = name.buildMethodAccess(l);
result.setStart(name.getStart());
result.setEnd(RPAREN.getEnd());
return result;
}
case 313: // method_invocation = primary.p DOT.DOT IDENTIFIER.IDENTIFIER LPAREN.LPAREN argument_list_opt.l RPAREN.RPAREN
{
final Symbol _symbol_p = _symbols[offset + 1];
final Expr p = (Expr) _symbol_p.value;
final Symbol DOT = _symbols[offset + 2];
final Symbol IDENTIFIER = _symbols[offset + 3];
final Symbol LPAREN = _symbols[offset + 4];
final Symbol _symbol_l = _symbols[offset + 5];
final List l = (List) _symbol_l.value;
final Symbol RPAREN = _symbols[offset + 6];
MethodAccess m = new MethodAccess(IDENTIFIER, l);
m.setStart(IDENTIFIER.getStart()); // add location information
m.setEnd(RPAREN.getEnd()); // add location information
return p.qualifiesAccess(m);
}
case 314: // method_invocation = SUPER.SUPER DOT.DOT IDENTIFIER.IDENTIFIER LPAREN.LPAREN argument_list_opt.l RPAREN.RPAREN
{
final Symbol SUPER = _symbols[offset + 1];
final Symbol DOT = _symbols[offset + 2];
final Symbol IDENTIFIER = _symbols[offset + 3];
final Symbol LPAREN = _symbols[offset + 4];
final Symbol _symbol_l = _symbols[offset + 5];
final List l = (List) _symbol_l.value;
final Symbol RPAREN = _symbols[offset + 6];
SuperAccess s = new SuperAccess("super");
s.setStart(SUPER.getStart());
s.setEnd(SUPER.getEnd());
MethodAccess m = new MethodAccess(IDENTIFIER, l);
m.setStart(IDENTIFIER.getStart());
m.setEnd(RPAREN.getEnd());
return s.qualifiesAccess(m);
}
case 315: // method_invocation = name.name DOT.DOT SUPER.SUPER DOT.DOT_ IDENTIFIER.IDENTIFIER LPAREN.LPAREN argument_list_opt.l RPAREN.RPAREN
{
final Symbol _symbol_name = _symbols[offset + 1];
final Access name = (Access) _symbol_name.value;
final Symbol DOT = _symbols[offset + 2];
final Symbol SUPER = _symbols[offset + 3];
final Symbol DOT_ = _symbols[offset + 4];
final Symbol IDENTIFIER = _symbols[offset + 5];
final Symbol LPAREN = _symbols[offset + 6];
final Symbol _symbol_l = _symbols[offset + 7];
final List l = (List) _symbol_l.value;
final Symbol RPAREN = _symbols[offset + 8];
SuperAccess s = new SuperAccess("super");
s.setStart(SUPER.getStart());
s.setEnd(SUPER.getEnd());
MethodAccess m = new MethodAccess(IDENTIFIER, l);
m.setStart(IDENTIFIER.getStart());
m.setEnd(RPAREN.getEnd());
return name.qualifiesAccess(s).qualifiesAccess(m);
}
case 316: // array_access = name.name LBRACK.LBRACK expression.e RBRACK.RBRACK
{
final Symbol _symbol_name = _symbols[offset + 1];
final Access name = (Access) _symbol_name.value;
final Symbol LBRACK = _symbols[offset + 2];
final Symbol _symbol_e = _symbols[offset + 3];
final Expr e = (Expr) _symbol_e.value;
final Symbol RBRACK = _symbols[offset + 4];
ArrayAccess a = new ArrayAccess(e);
a.setStart(LBRACK.getStart());
a.setEnd(RBRACK.getEnd());
return name.qualifiesAccess(a);
}
case 317: // array_access = primary_no_new_array.p LBRACK.LBRACK expression.e RBRACK.RBRACK
{
final Symbol _symbol_p = _symbols[offset + 1];
final Expr p = (Expr) _symbol_p.value;
final Symbol LBRACK = _symbols[offset + 2];
final Symbol _symbol_e = _symbols[offset + 3];
final Expr e = (Expr) _symbol_e.value;
final Symbol RBRACK = _symbols[offset + 4];
ArrayAccess a = new ArrayAccess(e);
a.setStart(LBRACK.getStart());
a.setEnd(RBRACK.getEnd());
return p.qualifiesAccess(a);
}
case 322: // postincrement_expression = postfix_expression.e PLUSPLUS.PLUSPLUS
{
final Symbol _symbol_e = _symbols[offset + 1];
final Expr e = (Expr) _symbol_e.value;
final Symbol PLUSPLUS = _symbols[offset + 2];
return new PostIncExpr(e);
}
case 323: // postdecrement_expression = postfix_expression.e MINUSMINUS.MINUSMINUS
{
final Symbol _symbol_e = _symbols[offset + 1];
final Expr e = (Expr) _symbol_e.value;
final Symbol MINUSMINUS = _symbols[offset + 2];
return new PostDecExpr(e);
}
case 326: // unary_expression = PLUS.PLUS unary_expression.e
{
final Symbol PLUS = _symbols[offset + 1];
final Symbol _symbol_e = _symbols[offset + 2];
final Expr e = (Expr) _symbol_e.value;
return new PlusExpr(e);
}
case 327: // unary_expression = MINUS.MINUS unary_expression.e
{
final Symbol MINUS = _symbols[offset + 1];
final Symbol _symbol_e = _symbols[offset + 2];
final Expr e = (Expr) _symbol_e.value;
return new MinusExpr(e);
}
case 329: // preincrement_expression = PLUSPLUS.PLUSPLUS unary_expression.e
{
final Symbol PLUSPLUS = _symbols[offset + 1];
final Symbol _symbol_e = _symbols[offset + 2];
final Expr e = (Expr) _symbol_e.value;
return new PreIncExpr(e);
}
case 330: // predecrement_expression = MINUSMINUS.MINUSMINUS unary_expression.e
{
final Symbol MINUSMINUS = _symbols[offset + 1];
final Symbol _symbol_e = _symbols[offset + 2];
final Expr e = (Expr) _symbol_e.value;
return new PreDecExpr(e);
}
case 332: // unary_expression_not_plus_minus = COMP.COMP unary_expression.e
{
final Symbol COMP = _symbols[offset + 1];
final Symbol _symbol_e = _symbols[offset + 2];
final Expr e = (Expr) _symbol_e.value;
return new BitNotExpr(e);
}
case 333: // unary_expression_not_plus_minus = NOT.NOT unary_expression.e
{
final Symbol NOT = _symbols[offset + 1];
final Symbol _symbol_e = _symbols[offset + 2];
final Expr e = (Expr) _symbol_e.value;
return new LogNotExpr(e);
}
case 335: // cast_expression = LPAREN.LPAREN primitive_type.t RPAREN.RPAREN unary_expression.e
{
final Symbol LPAREN = _symbols[offset + 1];
final Symbol _symbol_t = _symbols[offset + 2];
final Access t = (Access) _symbol_t.value;
final Symbol RPAREN = _symbols[offset + 3];
final Symbol _symbol_e = _symbols[offset + 4];
final Expr e = (Expr) _symbol_e.value;
return new CastExpr(t.addArrayDims(new List()), e);
}
case 336: // cast_expression = LPAREN.LPAREN primitive_type.t dims.d RPAREN.RPAREN unary_expression.e
{
final Symbol LPAREN = _symbols[offset + 1];
final Symbol _symbol_t = _symbols[offset + 2];
final Access t = (Access) _symbol_t.value;
final Symbol _symbol_d = _symbols[offset + 3];
final List d = (List) _symbol_d.value;
final Symbol RPAREN = _symbols[offset + 4];
final Symbol _symbol_e = _symbols[offset + 5];
final Expr e = (Expr) _symbol_e.value;
return new CastExpr(t.addArrayDims(d), e);
}
case 337: // cast_expression = LPAREN.LPAREN name.t RPAREN.RPAREN unary_expression_not_plus_minus.e
{
final Symbol LPAREN = _symbols[offset + 1];
final Symbol _symbol_t = _symbols[offset + 2];
final Access t = (Access) _symbol_t.value;
final Symbol RPAREN = _symbols[offset + 3];
final Symbol _symbol_e = _symbols[offset + 4];
final Expr e = (Expr) _symbol_e.value;
return new CastExpr(t.addArrayDims(new List()), e);
}
case 338: // cast_expression = LPAREN.LPAREN name.t dims.d RPAREN.RPAREN unary_expression_not_plus_minus.e
{
final Symbol LPAREN = _symbols[offset + 1];
final Symbol _symbol_t = _symbols[offset + 2];
final Access t = (Access) _symbol_t.value;
final Symbol _symbol_d = _symbols[offset + 3];
final List d = (List) _symbol_d.value;
final Symbol RPAREN = _symbols[offset + 4];
final Symbol _symbol_e = _symbols[offset + 5];
final Expr e = (Expr) _symbol_e.value;
return new CastExpr(t.addArrayDims(d), e);
}
case 340: // multiplicative_expression = multiplicative_expression.e1 MULT.MULT unary_expression.e2
{
final Symbol _symbol_e1 = _symbols[offset + 1];
final Expr e1 = (Expr) _symbol_e1.value;
final Symbol MULT = _symbols[offset + 2];
final Symbol _symbol_e2 = _symbols[offset + 3];
final Expr e2 = (Expr) _symbol_e2.value;
return new MulExpr(e1, e2);
}
case 341: // multiplicative_expression = multiplicative_expression.e1 DIV.DIV unary_expression.e2
{
final Symbol _symbol_e1 = _symbols[offset + 1];
final Expr e1 = (Expr) _symbol_e1.value;
final Symbol DIV = _symbols[offset + 2];
final Symbol _symbol_e2 = _symbols[offset + 3];
final Expr e2 = (Expr) _symbol_e2.value;
return new DivExpr(e1, e2);
}
case 342: // multiplicative_expression = multiplicative_expression.e1 MOD.MOD unary_expression.e2
{
final Symbol _symbol_e1 = _symbols[offset + 1];
final Expr e1 = (Expr) _symbol_e1.value;
final Symbol MOD = _symbols[offset + 2];
final Symbol _symbol_e2 = _symbols[offset + 3];
final Expr e2 = (Expr) _symbol_e2.value;
return new ModExpr(e1, e2);
}
case 344: // additive_expression = additive_expression.e1 PLUS.PLUS multiplicative_expression.e2
{
final Symbol _symbol_e1 = _symbols[offset + 1];
final Expr e1 = (Expr) _symbol_e1.value;
final Symbol PLUS = _symbols[offset + 2];
final Symbol _symbol_e2 = _symbols[offset + 3];
final Expr e2 = (Expr) _symbol_e2.value;
return new AddExpr(e1, e2);
}
case 345: // additive_expression = additive_expression.e1 MINUS.MINUS multiplicative_expression.e2
{
final Symbol _symbol_e1 = _symbols[offset + 1];
final Expr e1 = (Expr) _symbol_e1.value;
final Symbol MINUS = _symbols[offset + 2];
final Symbol _symbol_e2 = _symbols[offset + 3];
final Expr e2 = (Expr) _symbol_e2.value;
return new SubExpr(e1, e2);
}
case 347: // shift_expression = shift_expression.e1 LSHIFT.LSHIFT additive_expression.e2
{
final Symbol _symbol_e1 = _symbols[offset + 1];
final Expr e1 = (Expr) _symbol_e1.value;
final Symbol LSHIFT = _symbols[offset + 2];
final Symbol _symbol_e2 = _symbols[offset + 3];
final Expr e2 = (Expr) _symbol_e2.value;
return new LShiftExpr(e1, e2);
}
case 348: // shift_expression = shift_expression.e1 RSHIFT.RSHIFT additive_expression.e2
{
final Symbol _symbol_e1 = _symbols[offset + 1];
final Expr e1 = (Expr) _symbol_e1.value;
final Symbol RSHIFT = _symbols[offset + 2];
final Symbol _symbol_e2 = _symbols[offset + 3];
final Expr e2 = (Expr) _symbol_e2.value;
return new RShiftExpr(e1, e2);
}
case 349: // shift_expression = shift_expression.e1 URSHIFT.URSHIFT additive_expression.e2
{
final Symbol _symbol_e1 = _symbols[offset + 1];
final Expr e1 = (Expr) _symbol_e1.value;
final Symbol URSHIFT = _symbols[offset + 2];
final Symbol _symbol_e2 = _symbols[offset + 3];
final Expr e2 = (Expr) _symbol_e2.value;
return new URShiftExpr(e1, e2);
}
case 351: // relational_expression = relational_expression.e1 LT.LT shift_expression.e2
{
final Symbol _symbol_e1 = _symbols[offset + 1];
final Expr e1 = (Expr) _symbol_e1.value;
final Symbol LT = _symbols[offset + 2];
final Symbol _symbol_e2 = _symbols[offset + 3];
final Expr e2 = (Expr) _symbol_e2.value;
return new LTExpr(e1, e2);
}
case 352: // relational_expression = relational_expression.e1 GT.GT shift_expression.e2
{
final Symbol _symbol_e1 = _symbols[offset + 1];
final Expr e1 = (Expr) _symbol_e1.value;
final Symbol GT = _symbols[offset + 2];
final Symbol _symbol_e2 = _symbols[offset + 3];
final Expr e2 = (Expr) _symbol_e2.value;
return new GTExpr(e1, e2);
}
case 353: // relational_expression = relational_expression.e1 LTEQ.LTEQ shift_expression.e2
{
final Symbol _symbol_e1 = _symbols[offset + 1];
final Expr e1 = (Expr) _symbol_e1.value;
final Symbol LTEQ = _symbols[offset + 2];
final Symbol _symbol_e2 = _symbols[offset + 3];
final Expr e2 = (Expr) _symbol_e2.value;
return new LEExpr(e1, e2);
}
case 354: // relational_expression = relational_expression.e1 GTEQ.GTEQ shift_expression.e2
{
final Symbol _symbol_e1 = _symbols[offset + 1];
final Expr e1 = (Expr) _symbol_e1.value;
final Symbol GTEQ = _symbols[offset + 2];
final Symbol _symbol_e2 = _symbols[offset + 3];
final Expr e2 = (Expr) _symbol_e2.value;
return new GEExpr(e1, e2);
}
case 355: // relational_expression = relational_expression.e INSTANCEOF.INSTANCEOF reference_type.t
{
final Symbol _symbol_e = _symbols[offset + 1];
final Expr e = (Expr) _symbol_e.value;
final Symbol INSTANCEOF = _symbols[offset + 2];
final Symbol _symbol_t = _symbols[offset + 3];
final Access t = (Access) _symbol_t.value;
return new InstanceOfExpr(e, t);
}
case 357: // equality_expression = equality_expression.e1 EQEQ.EQEQ relational_expression.e2
{
final Symbol _symbol_e1 = _symbols[offset + 1];
final Expr e1 = (Expr) _symbol_e1.value;
final Symbol EQEQ = _symbols[offset + 2];
final Symbol _symbol_e2 = _symbols[offset + 3];
final Expr e2 = (Expr) _symbol_e2.value;
return new EQExpr(e1, e2);
}
case 358: // equality_expression = equality_expression.e1 NOTEQ.NOTEQ relational_expression.e2
{
final Symbol _symbol_e1 = _symbols[offset + 1];
final Expr e1 = (Expr) _symbol_e1.value;
final Symbol NOTEQ = _symbols[offset + 2];
final Symbol _symbol_e2 = _symbols[offset + 3];
final Expr e2 = (Expr) _symbol_e2.value;
return new NEExpr(e1, e2);
}
case 360: // and_expression = and_expression.e1 AND.AND equality_expression.e2
{
final Symbol _symbol_e1 = _symbols[offset + 1];
final Expr e1 = (Expr) _symbol_e1.value;
final Symbol AND = _symbols[offset + 2];
final Symbol _symbol_e2 = _symbols[offset + 3];
final Expr e2 = (Expr) _symbol_e2.value;
return new AndBitwiseExpr(e1, e2);
}
case 362: // exclusive_or_expression = exclusive_or_expression.e1 XOR.XOR and_expression.e2
{
final Symbol _symbol_e1 = _symbols[offset + 1];
final Expr e1 = (Expr) _symbol_e1.value;
final Symbol XOR = _symbols[offset + 2];
final Symbol _symbol_e2 = _symbols[offset + 3];
final Expr e2 = (Expr) _symbol_e2.value;
return new XorBitwiseExpr(e1, e2);
}
case 364: // inclusive_or_expression = inclusive_or_expression.e1 OR.OR exclusive_or_expression.e2
{
final Symbol _symbol_e1 = _symbols[offset + 1];
final Expr e1 = (Expr) _symbol_e1.value;
final Symbol OR = _symbols[offset + 2];
final Symbol _symbol_e2 = _symbols[offset + 3];
final Expr e2 = (Expr) _symbol_e2.value;
return new OrBitwiseExpr(e1, e2);
}
case 366: // conditional_and_expression = conditional_and_expression.e1 ANDAND.ANDAND inclusive_or_expression.e2
{
final Symbol _symbol_e1 = _symbols[offset + 1];
final Expr e1 = (Expr) _symbol_e1.value;
final Symbol ANDAND = _symbols[offset + 2];
final Symbol _symbol_e2 = _symbols[offset + 3];
final Expr e2 = (Expr) _symbol_e2.value;
return new AndLogicalExpr(e1, e2);
}
case 368: // conditional_or_expression = conditional_or_expression.e1 OROR.OROR conditional_and_expression.e2
{
final Symbol _symbol_e1 = _symbols[offset + 1];
final Expr e1 = (Expr) _symbol_e1.value;
final Symbol OROR = _symbols[offset + 2];
final Symbol _symbol_e2 = _symbols[offset + 3];
final Expr e2 = (Expr) _symbol_e2.value;
return new OrLogicalExpr(e1, e2);
}
case 370: // conditional_expression = conditional_or_expression.c QUESTION.QUESTION expression.e1 COLON.COLON conditional_expression.e2
{
final Symbol _symbol_c = _symbols[offset + 1];
final Expr c = (Expr) _symbol_c.value;
final Symbol QUESTION = _symbols[offset + 2];
final Symbol _symbol_e1 = _symbols[offset + 3];
final Expr e1 = (Expr) _symbol_e1.value;
final Symbol COLON = _symbols[offset + 4];
final Symbol _symbol_e2 = _symbols[offset + 5];
final Expr e2 = (Expr) _symbol_e2.value;
return new ConditionalExpr(c, e1, e2);
}
case 373: // assignment = postfix_expression.dest EQ.EQ assignment_expression.source
{
final Symbol _symbol_dest = _symbols[offset + 1];
final Expr dest = (Expr) _symbol_dest.value;
final Symbol EQ = _symbols[offset + 2];
final Symbol _symbol_source = _symbols[offset + 3];
final Expr source = (Expr) _symbol_source.value;
return new AssignSimpleExpr(dest, source);
}
case 374: // assignment = postfix_expression.dest MULTEQ.MULTEQ assignment_expression.source
{
final Symbol _symbol_dest = _symbols[offset + 1];
final Expr dest = (Expr) _symbol_dest.value;
final Symbol MULTEQ = _symbols[offset + 2];
final Symbol _symbol_source = _symbols[offset + 3];
final Expr source = (Expr) _symbol_source.value;
return new AssignMulExpr(dest, source);
}
case 375: // assignment = postfix_expression.dest DIVEQ.DIVEQ assignment_expression.source
{
final Symbol _symbol_dest = _symbols[offset + 1];
final Expr dest = (Expr) _symbol_dest.value;
final Symbol DIVEQ = _symbols[offset + 2];
final Symbol _symbol_source = _symbols[offset + 3];
final Expr source = (Expr) _symbol_source.value;
return new AssignDivExpr(dest, source);
}
case 376: // assignment = postfix_expression.dest MODEQ.MODEQ assignment_expression.source
{
final Symbol _symbol_dest = _symbols[offset + 1];
final Expr dest = (Expr) _symbol_dest.value;
final Symbol MODEQ = _symbols[offset + 2];
final Symbol _symbol_source = _symbols[offset + 3];
final Expr source = (Expr) _symbol_source.value;
return new AssignModExpr(dest, source);
}
case 377: // assignment = postfix_expression.dest PLUSEQ.PLUSEQ assignment_expression.source
{
final Symbol _symbol_dest = _symbols[offset + 1];
final Expr dest = (Expr) _symbol_dest.value;
final Symbol PLUSEQ = _symbols[offset + 2];
final Symbol _symbol_source = _symbols[offset + 3];
final Expr source = (Expr) _symbol_source.value;
return new AssignPlusExpr(dest, source);
}
case 378: // assignment = postfix_expression.dest MINUSEQ.MINUSEQ assignment_expression.source
{
final Symbol _symbol_dest = _symbols[offset + 1];
final Expr dest = (Expr) _symbol_dest.value;
final Symbol MINUSEQ = _symbols[offset + 2];
final Symbol _symbol_source = _symbols[offset + 3];
final Expr source = (Expr) _symbol_source.value;
return new AssignMinusExpr(dest, source);
}
case 379: // assignment = postfix_expression.dest LSHIFTEQ.LSHIFTEQ assignment_expression.source
{
final Symbol _symbol_dest = _symbols[offset + 1];
final Expr dest = (Expr) _symbol_dest.value;
final Symbol LSHIFTEQ = _symbols[offset + 2];
final Symbol _symbol_source = _symbols[offset + 3];
final Expr source = (Expr) _symbol_source.value;
return new AssignLShiftExpr(dest, source);
}
case 380: // assignment = postfix_expression.dest RSHIFTEQ.RSHIFTEQ assignment_expression.source
{
final Symbol _symbol_dest = _symbols[offset + 1];
final Expr dest = (Expr) _symbol_dest.value;
final Symbol RSHIFTEQ = _symbols[offset + 2];
final Symbol _symbol_source = _symbols[offset + 3];
final Expr source = (Expr) _symbol_source.value;
return new AssignRShiftExpr(dest, source);
}
case 381: // assignment = postfix_expression.dest URSHIFTEQ.URSHIFTEQ assignment_expression.source
{
final Symbol _symbol_dest = _symbols[offset + 1];
final Expr dest = (Expr) _symbol_dest.value;
final Symbol URSHIFTEQ = _symbols[offset + 2];
final Symbol _symbol_source = _symbols[offset + 3];
final Expr source = (Expr) _symbol_source.value;
return new AssignURShiftExpr(dest, source);
}
case 382: // assignment = postfix_expression.dest ANDEQ.ANDEQ assignment_expression.source
{
final Symbol _symbol_dest = _symbols[offset + 1];
final Expr dest = (Expr) _symbol_dest.value;
final Symbol ANDEQ = _symbols[offset + 2];
final Symbol _symbol_source = _symbols[offset + 3];
final Expr source = (Expr) _symbol_source.value;
return new AssignAndExpr(dest, source);
}
case 383: // assignment = postfix_expression.dest XOREQ.XOREQ assignment_expression.source
{
final Symbol _symbol_dest = _symbols[offset + 1];
final Expr dest = (Expr) _symbol_dest.value;
final Symbol XOREQ = _symbols[offset + 2];
final Symbol _symbol_source = _symbols[offset + 3];
final Expr source = (Expr) _symbol_source.value;
return new AssignXorExpr(dest, source);
}
case 384: // assignment = postfix_expression.dest OREQ.OREQ assignment_expression.source
{
final Symbol _symbol_dest = _symbols[offset + 1];
final Expr dest = (Expr) _symbol_dest.value;
final Symbol OREQ = _symbols[offset + 2];
final Symbol _symbol_source = _symbols[offset + 3];
final Expr source = (Expr) _symbol_source.value;
return new AssignOrExpr(dest, source);
}
case 387: // formal_parameter_list_opt =
{
return new List();
}
case 388: // formal_parameter_list_opt = formal_parameter_list.n
{
final Symbol _symbol_n = _symbols[offset + 1];
final List n = (List) _symbol_n.value;
return n;
}
case 389: // for_init_opt =
{
return new List();
}
case 390: // for_init_opt = for_init.n
{
final Symbol _symbol_n = _symbols[offset + 1];
final List n = (List) _symbol_n.value;
return n;
}
case 391: // for_update_opt =
{
return new List();
}
case 392: // for_update_opt = for_update.n
{
final Symbol _symbol_n = _symbols[offset + 1];
final List n = (List) _symbol_n.value;
return n;
}
case 393: // block_statements_opt =
{
return new List();
}
case 394: // block_statements_opt = block_statements.n
{
final Symbol _symbol_n = _symbols[offset + 1];
final List n = (List) _symbol_n.value;
return n;
}
case 395: // expression_opt =
{
return new Opt();
}
case 396: // expression_opt = expression.n
{
final Symbol _symbol_n = _symbols[offset + 1];
final Expr n = (Expr) _symbol_n.value;
return new Opt(n);
}
case 397: // argument_list_opt =
{
return new List();
}
case 398: // argument_list_opt = argument_list.n
{
final Symbol _symbol_n = _symbols[offset + 1];
final List n = (List) _symbol_n.value;
return n;
}
case 399: // throws_opt =
{
return new List();
}
case 400: // throws_opt = throws.n
{
final Symbol _symbol_n = _symbols[offset + 1];
final List n = (List) _symbol_n.value;
return n;
}
case 401: // dims_opt =
{
return new List();
}
case 402: // dims_opt = dims.n
{
final Symbol _symbol_n = _symbols[offset + 1];
final List n = (List) _symbol_n.value;
return n;
}
case 0: // goal = compilation_unit.compilation_unit
case 9: // type = primitive_type.primitive_type
case 10: // type = reference_type.reference_type
case 11: // primitive_type = numeric_type.numeric_type
case 13: // numeric_type = integral_type.integral_type
case 14: // numeric_type = floating_point_type.floating_point_type
case 22: // reference_type = class_or_interface_type.class_or_interface_type
case 23: // reference_type = array_type.array_type
case 24: // class_or_interface_type = name.name
case 25: // class_type = class_or_interface_type.class_or_interface_type
case 26: // interface_type = class_or_interface_type.class_or_interface_type
case 29: // name = simple_name.simple_name
case 30: // name = qualified_name.qualified_name
case 54: // doc_comment_list = doc_comment.doc_comment
case 56: // package_with_comment = package_declaration.package_declaration
case 59: // name_decl = simple_name_decl.simple_name_decl
case 60: // name_decl = qualified_name_decl.qualified_name_decl
case 63: // import_with_comment = import_declaration.import_declaration
case 65: // import_declaration = single_type_import_declaration.single_type_import_declaration
case 66: // import_declaration = type_import_on_demand_declaration.type_import_on_demand_declaration
case 69: // type_with_comment = type_declaration.type_declaration
case 71: // type_declaration = class_declaration.class_declaration
case 72: // type_declaration = interface_declaration.interface_declaration
case 105: // body_decl_with_comment = class_body_declaration.class_body_declaration
case 107: // class_body_declaration = class_member_declaration.class_member_declaration
case 108: // class_body_declaration = instance_initializer.instance_initializer
case 109: // class_body_declaration = static_initializer.static_initializer
case 110: // class_body_declaration = constructor_declaration.constructor_declaration
case 111: // class_member_declaration = field_declaration.field_declaration
case 112: // class_member_declaration = method_declaration.method_declaration
case 120: // field_declarator = field_declarator_id.field_declarator_id
case 123: // variable_initializer = expression.expression
case 124: // variable_initializer = array_initializer.array_initializer
case 171: // interface_member_with_comment = interface_member_declaration.interface_member_declaration
case 173: // interface_member_declaration = constant_declaration.constant_declaration
case 174: // interface_member_declaration = abstract_method_declaration.abstract_method_declaration
case 178: // constant_declaration = field_declaration.field_declaration
case 189: // block_statement = local_variable_declaration_statement.local_variable_declaration_statement
case 191: // block_statement = statement.statement
case 197: // variable_declarator = variable_declarator_id.variable_declarator_id
case 200: // statement = statement_without_trailing_substatement.statement_without_trailing_substatement
case 201: // statement = labeled_statement.labeled_statement
case 202: // statement = if_then_statement.if_then_statement
case 203: // statement = if_then_else_statement.if_then_else_statement
case 204: // statement = while_statement.while_statement
case 205: // statement = for_statement.for_statement
case 206: // statement_without_trailing_substatement = block.block
case 207: // statement_without_trailing_substatement = empty_statement.empty_statement
case 208: // statement_without_trailing_substatement = expression_statement.expression_statement
case 209: // statement_without_trailing_substatement = switch_statement.switch_statement
case 210: // statement_without_trailing_substatement = do_statement.do_statement
case 211: // statement_without_trailing_substatement = break_statement.break_statement
case 212: // statement_without_trailing_substatement = continue_statement.continue_statement
case 213: // statement_without_trailing_substatement = return_statement.return_statement
case 214: // statement_without_trailing_substatement = synchronized_statement.synchronized_statement
case 215: // statement_without_trailing_substatement = throw_statement.throw_statement
case 216: // statement_without_trailing_substatement = try_statement.try_statement
case 217: // statement_without_trailing_substatement = assert_statement.assert_statement
case 218: // statement_no_short_if = statement_without_trailing_substatement.statement_without_trailing_substatement
case 219: // statement_no_short_if = labeled_statement_no_short_if.labeled_statement_no_short_if
case 220: // statement_no_short_if = if_then_else_statement_no_short_if.if_then_else_statement_no_short_if
case 221: // statement_no_short_if = while_statement_no_short_if.while_statement_no_short_if
case 222: // statement_no_short_if = for_statement_no_short_if.for_statement_no_short_if
case 250: // for_init = statement_expression_list.statement_expression_list
case 252: // for_update = statement_expression_list.statement_expression_list
case 271: // primary = primary_no_new_array.primary_no_new_array
case 272: // primary = array_creation_init.array_creation_init
case 273: // primary = array_creation_uninit.array_creation_uninit
case 275: // primary_no_new_array = literal.literal
case 285: // primary_no_new_array = class_instance_creation_expression.class_instance_creation_expression
case 286: // primary_no_new_array = field_access.field_access
case 287: // primary_no_new_array = method_invocation.method_invocation
case 288: // primary_no_new_array = array_access.array_access
case 318: // postfix_expression = primary.primary
case 319: // postfix_expression = name.name
case 320: // postfix_expression = postincrement_expression.postincrement_expression
case 321: // postfix_expression = postdecrement_expression.postdecrement_expression
case 324: // unary_expression = preincrement_expression.preincrement_expression
case 325: // unary_expression = predecrement_expression.predecrement_expression
case 328: // unary_expression = unary_expression_not_plus_minus.unary_expression_not_plus_minus
case 331: // unary_expression_not_plus_minus = postfix_expression.postfix_expression
case 334: // unary_expression_not_plus_minus = cast_expression.cast_expression
case 339: // multiplicative_expression = unary_expression.unary_expression
case 343: // additive_expression = multiplicative_expression.multiplicative_expression
case 346: // shift_expression = additive_expression.additive_expression
case 350: // relational_expression = shift_expression.shift_expression
case 356: // equality_expression = relational_expression.relational_expression
case 359: // and_expression = equality_expression.equality_expression
case 361: // exclusive_or_expression = and_expression.and_expression
case 363: // inclusive_or_expression = exclusive_or_expression.exclusive_or_expression
case 365: // conditional_and_expression = inclusive_or_expression.inclusive_or_expression
case 367: // conditional_or_expression = conditional_and_expression.conditional_and_expression
case 369: // conditional_expression = conditional_or_expression.conditional_or_expression
case 371: // assignment_expression = conditional_expression.conditional_expression
case 372: // assignment_expression = assignment.assignment
case 385: // expression = assignment_expression.assignment_expression
case 386: // constant_expression = expression.expression
{
return _symbols[offset + 1];
}
case 57: // package_with_comment = doc_comment_list.doc_comment_list package_declaration.package_declaration
case 64: // import_with_comment = doc_comment_list.doc_comment_list import_declaration.import_declaration
{
return _symbols[offset + 2];
}
default:
throw new IllegalArgumentException("unknown production #" + rule_num);
}
}
}