From 2f3d3e1bb902d50b7e1a0a625110a4bd73a09bd9 Mon Sep 17 00:00:00 2001 From: "pl@gohorb.ba-horb.de" Date: Fri, 8 Jul 2022 12:30:55 +0200 Subject: [PATCH 01/10] new file: S2021_Etienne_Zink.pdf --- doc/Studienarbeiten/S2021_Etienne_Zink.pdf | Bin 0 -> 814601 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 doc/Studienarbeiten/S2021_Etienne_Zink.pdf diff --git a/doc/Studienarbeiten/S2021_Etienne_Zink.pdf b/doc/Studienarbeiten/S2021_Etienne_Zink.pdf new file mode 100644 index 0000000000000000000000000000000000000000..936f9a0bc541904b77d9e4b1682742811335ae71 GIT binary patch literal 814601 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≪($}aiL;86dK^`kfkD1F?8N-DIErNi=B3m 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 ^GYipqw&aTNn$dp4F6WdtLcOOz2v>=KG&l^f7S zf*3#1H#Vupp1sG67lZi>_Po$@i&MsupaxG-vDrE>$dc>Z_%nGljqZEThT6L>d(H)_{hm$HROgIV6q7Ie#Q^1WjKaE=d*10Vl`HKV`0o3&m2bH@4 z8q>Ir2l=>{M`(sB?g$Z?1Edt zfjWh)AD`DJ3Z4nhzCcix1*U8s2Yu>}?9u#_+4>9iBpW6d&dLs%F82$}=+<;NdD;pq zfiVP$0F%e63y^$3oFpEB!Wn1bUY}seJKueH)7%b>!GW~cxF7(lTu`_&$M4bMy3dRs zY-~d|EMhj)&g1oCDqsaz-R@T)FEcEfxtW~4Rj^QCCX=BwB%`7Cn6HaAzs_&jl?OC8 zr^7%v3X@QOqn?<@8HEC zT>uPuTUj5$npJH3P)W(g2EA|^nylo*U&R11WeOe9f0B7StM$^UkOJWI07@S~4A3F9odE!(5ceX`W z_{QC3RYywKU`z?KZ_Kb^_=Ax92-}It3agLg<25VsoH@pSXqjN1w$djM-Xs%O=) z?TlXf7VYsm{3tzyNcRq*=81(8SPOimq)=9v0b`6}F3u!wtjt8Pq1=Bq01t3Yj6s#| zR`?AB-i_Pxc~gl9UD&AnYQlZ-B)muz3zeUb9T1wCc^EGIi|p{`nr<=WV-Cf$g6ese zq*i12mLwKeu!&}TSR9}+24;u}ex7Lr6RtiQIy`R>5whgK9s}NoNr$lD6hD&0HzRqy z65XNp`uu?gm>E4>dE}-j2%xRt*ct1QTL9AEZc82%3O8x2(@^bDqICA*yBuhxxN~uZqe1p~qdw zlL7_Z?I0lnO>P#!P~NQp-^SNCiiI0`)@r|wojH;CK z7kIK59R>sz;%IOSfPHEULbj!U*c=aY(K)sn`5^2=Lf^`TQz?~-q+=dih}WIuFrtd{ z{WQJ^!9A7%nvRQjonscRo~-&gFu-!wYyPew^Z~^5zw6YNY5PGRa_W^4_28NXBzp~Q z9Oy%kzm(yF@WsO$!qv6y;gjqPyKN|05|X|ZtA`**+|6g|?F;g52K)XK^35>)j(h~c zMmiH6@W8pgLE-@0%#(8?R1uSiRJPR3Vz7Yb0Pb1`4rkTvdj3^ak_9ODJmphjSoB5D z#P6o-Y(<~Jejojc!b2+Gb9j*Vz&si2f@gZOfFWKQ0bR4U z*YF75tA7d`kpNXBYD0bPfr^ID*=P3I7{-A&bGQe5cY%1ltR(j$6OBXqvcF2Q_#7Ac znFyJqa8QI1Iz-n<`6RDk6e^YhIEEsV3Q{GE$^U|^E zFv}Jh(p=iu#RV+s5_3OEKRa#~K~Lar7qh_W*`vyW#^)S}(nG77!_`yNZ}EY%6%#(` zfcW{=-!4B$m-Ha<^aU3z7o(6laT>jqN_z7$&$s&X85@c(7Tt4m*FL#Z!?7KU?|3z$ zvvwl$Lo7i~9Q+UuvqhZ+zeqs4`AEn_oic>^3K}dGEy!aib$ijV0Oz>Xif9u*qiSG0 z)MoW2dpIBK4KV^AUO~=}Bb^l1f7i9wDfpqwkc81@rk1vKytLg8f;0hKCujLHX3Jah$j!SyA)$p*{boGKb^jHRboKD*f!JT#jP zjJ(pmJszw(cJ|H>yU38!6mf!R;XE>dG;)868up|dAMPDds`PJE5FmAq`n$E(LF@}e zkp7yl_8*V$hC<3MaBlzH6(J~07;`)LtBRRLI9Xz*lyX7A&wre?t3DzV1ESDUs?~=j z(zIFb-I#n?x?Uc11avgx&yo)W|+=kME6WK|c>D0Lwkyq0x1E3>+)=%lxl)_+#$WZNT` z%1mc!@!R^X=jZEkZb<_Xa31u!;L0C6MBpUI-rR;g~k zF879Ym=aoSC0z%&xs{=h!#v9Wcj;qP9mp~(f<<|-Z@(Qs&cmqUs+OKXJI1)E=t-Uf zVTpKb_p@oO_p*#eGrIuLAoaH=V|hhkXlaVwbpJS;nAuEe+PB7!OHJsQN*tPU?{^l} z?nnu}eompo_z7FlNYewlQ|O%|U?)jft~z!!>BQ(w?O9~}ve?B7hMyZ!>JC?`T5_L# zdQIEren*Z=rrMc4OSI8UP6CF(C3whQzuo&>4&*WT3AMT zfQ3cJmd%Yef+hNW-Qa^hsjs6(oZQAfy!?x(^rY@A{T=0eO*KzFMRcq1eTJkZsu~oY z?c4P72JF$Wq2|sljWMThwb9VvhhyA8)36O;)O%~XQd z0<&ixmz&FuL>i!Oz=xVXg@#0g4(iRB2H~>e?xNS>DPPV(69DlUQ$aZ>m0x^x@^;B} zAYeB)w1)<47ifkFXeoZE7s5M7F}ZY3Dy7J0!M>}$OVh!-XaE7NsA}&MRA`oo;SvIiTe~$?%)=CYdpFNf zm=))c!tF1b8bAPKdL!Kdbiw?fwdvkUU>}gtA~RV=upT|ylum{V*hLag^ob-NF&I%L zg<*Tqi3{|`GTa&d-5L#^h5f2=PK+=Z3pY2ItYFn-<9oVmNMR`JH-xn*QUqWg8Gv#! zcs7Ith=0`Tku-038MLv&-%_;3x`E5_a{1E?U3^s+)JpsVRrp{!+1Y-Ga{|8Nu5))p z4VxS1hDsj4ZGktV13IpcYbpq&9k>@=J}Ln^9AAmgf4W0hs@G9qNL?j&yxQCoa^&gk z@PjEEbBpUs&YvAj-(X;>MIg!8OwE*+HZ~*d5ECR zO&5$eI5t_+2h}OBRbK(OZ37Y{sZ+yILS;C^lsj;h-12P(GORlO=^$8inBZ?>XBo@j0i$Exy>Do* zjBdS$q&jOy!ztA{=bgEj*=(nHrjxi=-VmlG>Q>{-$O8F}Q&W)w4KvFJp zi~38W-P02^3?ERu>CCRZx(v4;M=162oj7B@N_v};OWwfPn4c%Hr1#3wiY@=Nbm9kK zx?VusP*azWP>OKE&wa4zoc{+en(0!2p+dY~B-&PG6FyD`<03)rY;C>&(PbOn?K{MD z)w3UF^aTovgT)R8;NTu7!jfZt?i`ovkq9`uiD%yWvIE~hvmShL4<_F1d<+dat?9;+r_;Ta2EmA z%BaTs<-##Na>Aon0Nu(~NBzJn{F2I2Lrnqxp@jXag|Tv^u?9Sk^|8?ynaWG;+JzKW zCViI?%n8s>a;5@)ucDughfN7_kTB-ijnmAV9Rc>-l8$eT$m?&`PmYAMt`7cKJ?$U(Rw8(A7B z&aeR}S>K%@@ADV%V9aS*bYS-|khq2#uLsG5p+SS?S!$Nt=&45&_uz@=(P*6WQIwHb zUi3Wyq-#(u^#yNBcBkE`kSq=yZ1itW%U+F?U}@QG0N9!_r8p@edNhG1NAAkP1*6#@ zspC`Z_cFW|8{S>i6`ALkB|scx=TCFFlq{ZCJBovUz1!o`rvVoJq=$0N{ijzxEVCfq zLm4*|CRY@uD0l5k-&yZ?|69bf`jdtuY8VpOxcR2o39mp&5gKG*B`EIO=Z*~~V z1Uh)EA}4?jX)o{OVY(SCPm@sD`OaZ}gi!?6QXAd z7)2(fWh2G&s#HF3eJF`^VXhU@wwEhiNIEkesS`Y8)l?8!&5Dmf7W9W~{NS6=kVBgY zix0Ok<%tmHn+>R?W}+bjc<(}oDw5!_g8|>QtM-`|h(NPRhZ}WL-aVe#5r)`zjIy~F z3$Lmi-Ryf1G?H@G!RQEJLhyTjsGtfA#z;Oi2ooBSnk2D>PXERPR8;^j8dm2l)wUb|~Pv!8JI=mLhFuDvAb`q`Bc=oU1oct*w zlN5--qkdUPfGnLSq0a^oNP)z1^ulT>j#5-Jq(3CJs)Y-}94y&#QYoxn7;fux7q7=9 z>E4JJUMUS<0NJNR2cvFVA6S6s;U%|Y)NF%K7>Vcka?|H9yrzWsmO9~6YJa7*jC{{@ zAikIJLrJjwEI!D6u@8R8jLS1C;)sCP5UKrvZ|F5r5_11hNtw9-|5JYTFR5Z6ur;)V z;^F!K%2dqE|Gh^qTXXv#l@!kRRj)pF1CyRwk%+W=OL~K(yTm#}%IjJtlW#7iOSO9W z;|a0#a}{5}FQIM6xh7qD1Z4;wU}zM6&d2%rCtKV4Gt#YDXSmX~v{z40$Lm>h!ilt) zqDi%~ax+;{5z*|OiaIGQ($HC@#wRjK-FAT}rl)$NLTj?@#&(4&@}}aM%)j?`g(}v{ z%yk){*0mfceD~|r(0u~i1J~%Ftc5& zmW?k0bzWVUYnw6-QEK;`?88iC&TmDvS zb7^ptL?*PNIFsLqWgOVE0OQ>39 zd!lj~ZZ_ib8qr(-kki=vbZi5YBLQo^u-aY8na4||HPl|pXbsSm)ebuV0{`Xd)&5F6xUN`_!-CXa6Hrpt*Qd@6 z1uu$<(GKI^gRjNaP2UF)q)bi(i=4zjMF@1~aIh=xnG&kS6SfxE z&t(fWR@d(fkm>J|Mmkss@X#)3wI`lU)kG|` z)#BowNGq;uS=~5{9i&~v#3&@c>frW{hKL5@F*2UEbL@?rR)7Uh_cqHiwNca@7xB8; zU_SxE>HK8HsDHSR#wjBXglWK3F{AlX3lEj`Ifw|e6Nqt?Xs!KvJa_;GaJTcr{$4Te zSBqPG-5~A`P2Kk0l314ldTf?TZi{l_$p8t7By6Os`TocyZs-`MQg$>{v=OP@mmK8V+7FEKN!@@H=WtmR33-4lX(aG z)>G6rrxFei-jYx;EG?ume?(eNgW@EO)5!=^{(+YcZ}!om<;nDMb+MnOQosw5MP98v(lkKf$i@dg3oF<9-9+JZh>PT$kc4ic4W_cQL5SH={JY)7Gbo;d3P2 z(m+9Q5Jm@Xxsq6${>kSc?0Q_?St5X>oeh}MzyLtUu-D1i`8s?;Y!@dSe#8r~Bi?lG{kV13iOl zK7y|j{=U-vD2RLh9HVM)xSb`zsCimI!7&W8oO=_&nt^gG7p*|1@vko|GY9Q@&Dkij zT9d2I4ICV?)4^Dpnj$`fD9Sg<2yN=%O+-)`Z{M4;wTMhQ7I%^7#S|3V+^G2Muzp6dlodl78%Iz z8w(+VV9$8^8_bp17-D|`C!#Rx;gl$6GZ}S_LM`HhbIsqVaf5pa_Aq1PyyotEv@A77 z=~@h{PHt+kFNT60qHRynm>jbJ7J2KXpM5Z0Ej>ek_)o$NmSeu!5dt=VS2GQ92Nno} zj-o6Z_BI~f)SjP!?CdCeO}rN2ESuZSwxCD32S3UL>TH#8o@n7n%+&13KAg}$MLPIY z0SY$rd^%B!Iivy#bA6yyM{@^p_t5Ji>$CC<2VC=0^6NQb0Lh6!k_@ZS4Qo)uj(uyc ztYB3HY(#>_`sZakjL)irzr6B#d~$w20;A(eFhDnSiLOPI{dSUpbPCy!O5Zra_()I9 zT&JPV8bZ&v=$EN|%{~p&X4ze2gnb6J#35>?3wE{kp?pgG+~6Lhmh!M?_W)MUB797{%Br81%Umz=p)cCrY~t1#}7c-Z99`C-X2MYD^A6 zSaV&(nH)kwU~|ZT{+!f+4so_sPPx(?gN!53%X^|A_RE>xfcxxO=220m50qh*JTbcs zvFkSq82yP>;5R~wFk8z4_6rio=9_Vtun!k(?)UKqjiBW#%Hxz+#*z`*?HK^_JAr!(wC8Og9lI*7ApgqN7d#ZirOg@yQTmR9 zl7AF0k5p|U$ByZRwMJ1)vmt8(+=aItr7fZ_8B2a+2hIsV3lr$u1k8F?7sO_mj&x3p zXNI88W;%~~!ivL=ws(W>Ovl9PiWJ?4swo;{%l+iKO4JWki@s9UNM!BYwc;iT9BZH_ zhFflP%lOV`O*O&(rYs-EW-QftNlRQF4#wHw-w;}YS&6NqP&rtM4M9vM^%f4>&^V*3 zz}QdZ=Dw+_cfYA-7u$nY0Gh_-(ODe^z|mG@O_47JcC+0e}LoQ&8ZfPlf``DKYDpuWi6p59$mXXokxnz1bUPKF^ zh+@FIP1~*vBd{fGH=Y(up3RAyf1p%dz#2W7g1jWF9RCVgb^m%#QVVWH*;l|VukQ-Q zkvB?tQObjxB@V?Q@Q!YyU%RPWNO}dlKU+#*`g0H18`$BzlNgGGl?kX~dsf*R8D2tA zBGPzl2vuiT7aqGO!?AVmMJ&%|$^FkYL0Eq3=0h;SniT8Wdy2$8;sZ-2r!?`79HIvC zj>XIF!ur))PNPD)*ec5NN)Kxv=rW;5`S@Qwrv6qvmu^nv`S#G=jxL|bzc4^caCYi@ zZAKsQ`n}c{p1w2TQG3>cc;dk+H0(F>0^`~OXX3(<h%1vzaw;&nlM0mpC?{T;;bQ2kGgB2pqYj;wyL2!N zOPI)co6{hn@qmDy{@K51lv6*Fg9+jETI6H-706aLqoO-X@xse6%Ovgu@SR$h!>( zJ`1|!Ui=d@eapfN7vjE4BxL@D-pVK@Mw&im5Hqg}Vp=}?leI>&ORW(qx=b^%qx9jJ zOG_%E43l+Csl{_JuD?_N^gyQbtsvhztD}hsU1;29{-XxZ>Y951Zo_Am7$nJhqLE4M zYj$Vt#B@CTa^>&B~>U7PheLs ziy_xunQ6aZhG(jmvwm+FBZAC0zvzhwiq)!}{{+`s8*V7$q-;$~l$ENOMFkI zjicv)NMiSdRpaxaQ``~kN!jKSh<>%P|A(fNqSbj`mfat-RwW%O)MO>~qoi!&yL+Ld z6&99f*P^H?=ia^C_X)*@#H~7C!9RZ!|a~nF+v7YV}B@BLun^R zAdhNrGpOTz1d&%+m+DzpI~_+X(vPW;F9T{pr}mrUOmh_PX)D+TnXy$GgPP%i#TMy`Gm3>kt-+LOEAMH4_HqAl6votR=k$KXDG>i~G@*EvIOwKp8MAK!2Ze<}L zF<932ke%EXuw*X#^2?Z=W%GvQ)8_rq{WQH+Qc@tJ^UQy94CGb>r38=}ae5?9q)13% z{zTh1QflYyB>RHSrJkP9yw~~$qJ#JhN1FyAqjJI--+;E(CLxk$Ru+YCi-aVnS6~SP&19iX`@@3z(fs1c?q-DM4*4qu+2!v` zWhCh>PfD0iNs!piXm3sG~IQIYLj~&qGk<-TJ(@e zg`OSzJ~qsWh4+K{oeDE}LyMI-I5}J}DJY_`d?NoOBx^!ZiQOe@LcgqN_@a0$QS0zm zm_h+yod9=?EQ2{}#LU;dH1x1s{Q`r&{1DWL&cyeyYgyz400bM!0BK1(QS(q#a3tun<1}+TiqU1rOFgrIz`PwD8sgFGd6N4|6~F63^yKge0qs% zNXp_{_q7Evgag{jM%Iy-?lTI%)#BBRvzYDI4Wt|se8UeB_vK1=L1EfGH8709@d2(Zk>HK0vldom zMkBKfAJ|=IYP$k;oD!o^9wZI-m3G=v`$IpT)PfmjhokU)Se26TyE{0*+);=xz5z8= zYB8#|6UGxqIcJIKJp$FTB94P_?%C0AwhUg44k$~;EF@2h$UO|BxbKQLq32G9`LP=C zEdvR$QLt7Av1GAdkvRHs=4BU?l&#AgYeLsfJrvWOI(DlM(Am#+wVUsP;u=X`|60HeOyAq3B6SD1R_ zR2|sR&$maEB-e`W{+d-L<}%w%YP{8+*#YP-g%|aM*#hh{_IIc;*ah_m#M&vyP!qw& z9)B~y`*PV55I4{32w=L4T$3$!4a{0>G-TLevJUrzJ8?IG z1AV9aK|}YG?C|C|^u)9F$z_DE`>#km>3Pt1IfKOoPSU}0q3!g5hQ=|ZSM3o}c$E1L zG7dB4M8ni+jv&*}al9heQvam- z@ihdtj}oL6sb%0AP{bW~@R03?$l@!}P-JrcN+RSI$+=-tqj$0e{z8CUHywZ!4BTL- zaR7fTA;%{k*gGbqqtyHIm1t0VV{sbw*r7=M*qmzve#^-lL-g0S6%Ih+Kvu$vKB}6& z^C$Y8f1W`=7&}^O3V|$Tqn~4*0f2i|@D8XH2w(0URfT*6_>a=_V3fTXnD*$>uVGAa z%|AGU*cFYFhQzfa%^5j5rhu_++o_S$cW^V@9J`vf!Uv>uSDNp@q89S?Plfjib`Q5M zI%1hp1A1$C7@+rF;S_a_O(>8FcmRCPfMTZd_G3`iIG`wRud1afiY8*6n^OKm6A|Hn=r+~}B_{m)^IJQ7s zx+Q^@iXKyB>;)T{QT^c~r$Be-X3|DkX8_wp z8XqrZ6_`ZmWM?Sd+k0CHS}fHM++iEJp$Q^|1vPy=sxltP%(v#Ptu;e0Tj6QI-DANu zsw$8oorFW3MsyBTF0IvcTxk38BCfRKI0P;$W-fI5SvHj)m0dS*7Ci$_OK@+ zgz=pg6x2&nX8F^h7o``~;B->rwe+X9h`ib`zd6f#A(_SjK3SI4<9NS^P}55>)I*1u z-LxIuP?*JCVXxviiMGqJ7wjErgB<(Pe(%O zkbQD6H5cH{y5oq>$i*o#hjbdbaB9t08#XZ0)=K)~IQB{B!s0ufC8lVMOR9&|C6p|D z#{mEceC@?Z83%N&qV3)1R@jz4iXx?OHy;A8cqWmBFaw9 z%I(who>_3taYPnJq>OdiJixB5wB^%IurK#Uc3zXu6!J_dgI01LJ>6li2^q zi^9zsJHIya-)@|4eyC@jCz`+~KE#X@$3Z7kdQrC&jmu&tlY1VK+Hrb;Rzig4&r@q8 zD0x81VbN9e9}pmrx=uB!p0BV{blaWV;SSG)|1y#ry#9<1Czj5#t3uDH#~T~i+czU9 z)HAV0b|FwvM+^^J+({Cyjw_&=-w&{~aPNsPdvhSVJ6Ox6Absy-K_n(wx7Tws`F6Q6 zPu+eEC+g%q%peNyVX3E#tp~3H{V+|6U%SSUd_S(nxzFBIm|>S=F+lduRTqrrg?e zW4+gaRgF5|L-;DUe!a!@wbfd)Zaf6*Tb!|)s_=x-%W!3Wup)pT8|z&7ga5cfeZEob z+U0j{cux+OeqO|W1eMI1@)BSAKC+eJd;KW@%2t=lUv)d{flC9p>_e=ZCfn^Ft&XO; z?tGTQhqiHf9aOL@87U~Pr{;3c2u1IcL07HSmf`SCt54CF5J!D7-cLu>hkimRG(*m< z^I2s+@AP>U1ATa$l-~wNB1rM3z_Xcb_U1g4`^WJ(EXOH$x%1*`NIQX|ir=8{;JE;! z8ZOrJS50vbuQkWU?<@c_Y$m!bcVdAwZ-aFF3wE{H?K4fmPkQk z>bxCq9Hsk0f5xD?PiQA8NtM1CjH~O2c_hxlmZ;Gj89e?gZ~Rm+rchk(1E3=v5?C3* z2yC8lO9^6+#+fcB7Gg%7UYnXur>A!2D#d=ha(#Rbd>wCYB~}e7Hpyp(IyoQ{=_VRE zVK)T>vReX=`mxchK1S>Ndv^*HMyn3+U<{3K5`}10eQcd=EM@TkZuM0bT|AaXalfhu z-wGXiwJ_~rcl+L?2SkM#{qSDDhAJe(wsxR%ao&J8L!R+j)lOS$SG&S_N+tU@wcl$v)B>a_D|m{4hVxTqAFkefj?3!>0dS zq5wsR;$h9!dR^f%9Ai_>WX!c}Ut1e)S)V{;-xj0|@drB^XJ#JiD0FTr(Nirq8~zQ) zn`y`juYvzdPLKzwnrBHTcsbde0pzpQ3GHO!ZD6|N5gDEhNEeFyKy6jjFC$$oJW!Hr zfd@GNGiMZ6Hqf(lky(;?k@Us#c&KA!tAkWkF6cso(o?yjaMFTl(rzaT{5ug*vEGWU zo(KK_2W)~6UFrn+s3JxnR$`_#vm%xWN{9bFK-VcH$7ZwVxdw37_U`TW{2el6mBp4Y zTQE+;Xryiv?_^SNLnU~5A{{V}>spX!>3vKD=pH=h9MNq>GeF^y&5h=fFBl$><>elJ zTfN>>b04pd7ZOrlndJqUNt8%~cA0H~yKg?=MlojDKCrw%uU#Sj-Pd=@2r~=c9ntmP zBeXkiIG<?8uBY*>hh&bGEbOw3b!oSYXq2~n+U2$Ar+>7+?%izEhWdqA}OHlS{hj6eglUJwv zCB#+lHyG5oidE_Z!RgZ+G2{T+1yUx+IUQ0viQHq-Jichmb3-r6{PI z-ExVD$y~rIl-B?cGFbTbZpiI@pfS2pe%$&t9MV)iIz|=Q@kBc~aYH&d?zj1k%;XVj z`NHUEm4z>|PXP`_bUVn^i=y-k$)PM7#otP3rgln}LUVC%G<){=gZJ>W;ret|S9J?2ZoRv`ULmP2r7 zRD`9$p>UJ5-7e^ac5jBslt7@T(jy#2j+zJ~6eHEg!JXU_6T2IZ-iL^Edjk>vHMFu( zCu9GF=r7#_5>P9@jrt6wQDDmes z*$adzb}Sn{%o@gQPI{w)9rmb(sC{BRmK*Ts3T}#)I}rt=M$m>=T{E6>xY50q^$%?T ze!(11Y}xn&^)kDmLH`>qT23wo^Q^@i`ulv$Q+Bxi{i2u4ViS{QW5bu*vrC$(08&TC z!xdl&%%Ux7+yiV*Bfh+dKAc4Tl9FIXzvRqh{YYqr;h2orAXNPD1Aj|j@7wbwa?ID4 z>BeKu1lx^%{K^jQnD0~{4g{$iB0MILW!2Cs_0$kG93P&#otW)_{6%{I{0LiwVfzwQ z>O4l#QLJ4?n=SlkeHa2(klZ|gXNwLp{5ekFd>rt(0q}{KW^Rjmd=l%|%)jQRr|YD^ z!YyiwmYY~mHw;5&BOlXe@WVugR4H&6ZiIaEJl;GzcDa`2xwcT$CUwfr3T__QS}r!= z{FrA}ls@dEe(pmPJY2q8v%k7O1gJoNY6v#)NH6mkxSKxJNA8z0{|q$)0*WUQNEf6L zj-DBpoeSJk2riJ?7oLi;L`bniAk6-##`pPtY!La75s0Hpj5K;S=OzRH<$H(qf5Yem zr|ACY&b50n8rMdi_WQtTnl%Cz@f*n5PMlc-W>7`eO^ypY`OeD8cguVEyj28}4WTCK z&FTY=n|u-qDTK+vLIY-ZMtymVyz^OUFTD3jV&-p7eZtx}|28XuRhNk%u;6;lePp~V z%Z2SICk!=`99l&Fa=_ob4M>msJJgjuc4#Coi@-kPhzOT(VMMf?K87mh-T5B@ zbyoYvVCXoR6pX5{m0`k^v5`3D-_1Q3foo z<4jXJ1V>;IIVvVz5mM_K4~bt2IpEzJRB>pT)NR2zlM;wzl}Met02TyM{z70X?GqE+ zWKmlbCth(BI4Oam&4ws9|BlH7b~?c#cN-y4sN9|0bWIIjB0u?{)5Jl{Wa~3j>jSs6 zPcOEhwQ8`gs~5+i8cERC5J5USTsQ+B;mQV3dy8yjFTa>^l^(nj4>tPfSlKjn2!w*c{>1tOpA0>8jz_V|Q9` z`b^f~Q=9i`@#jNBlDo?%S>~v{9Q;GbGW(_uj#6*^I|?3SK0a5X4{qGtO0GLdL^hh8 z_N-^Mm!4bw_oSYLu>Bg^F|_$_S?l&A)emkK4ZRPAa_1pYdl1GjlMivwNdigfv9IjB znniYE@t+ax?n-ip87Il#8xBCN1~?eU;o75!B4sfoj?&o z;g_2c094C@gAnZ-GR~5t!0jZ@vtIP06-pWd6T}N9z&kSkjgtHp$$;D-lJya3;p+1Y zMZ1f^!aObcv+bHHeJYXDJHpaV-I_0pnoTB~E3H3ch|a~xR$lxadF>hz(70&?-4#Rd zX|04BPKR{lD_$LZ{~v&i@juo37}%Nrr(0>&8W;Z?$bPPS1sGp~GbYFZ<3QY2CZ(`h z%@j*qI`hb(Q8%WLs`}B6Qy}c(V%}YtdkJM*qYt1Ib2$@|@6-fk{b9Aare?ugt<%*bNbj?h5WlZLk z)gDiPu)cjN4c>INH}I<%Z*=)z$D-SI;`a2iz1@TdnXn}?B12^oGa4EqQZja~=X~DL zXI1CjTv4HLG&g#(I&elBQ16QgdNOkIzBzm8Rfn7;*QxaSpbRr2ml8_t9%{0^d23eh zCdH@pJNQ7EPFHTy&mq*4->HKBEm9Hs@U{`eXq}mG*4aJ;h5uqw6|ehywr3pz^vV?L z9EWJEeCVvB_@UjbX=67`U7b^H_taGr*|opC?!c_ZQhS~v6!F7ME_f)F5q?TYVMH9> z9Ew(q_YQhr&=sQH@YkzrT#~<=w=cz~2w5cD8Z!y==EUQBS98#J*+V3HM<=(B<>rUz z>Qu)6IsV@(lPi$1F}Z^pSLss^b-dG!j7rVAgLdKLS(+CgmYa9Ew30kF@hJwpu*K7% zOfni2$}+u=|M~L~+-vaB1b7;Zf!4_i{z8}5+;16cN3-=C7>;uQ$?jdp83 z%WIdlwk4HA{2w+~;gdj6Ok;qk4!)+%1v}i0i*Co$ea10h;^Z~l@*&iq8o6ayqVkA@ zdLIKRsCC!2vL+io_kyuML(k4XX_Xo@shRVP)5X5St~<6YM5Z zOm<6&xeP*6X$Clh^INRQD;>kTvp1~BNtE0(X}jVzPvacMbUx20=Tq z-OlMa!2ZULTCug?v^Yfo3Jf9-`fQ zn_a^loDSGE0pLr`kAQG$(bdCwVuVS4a-6P84rfU_>F0OvOt zKd%(m#hcKVLxxi;Q7vY`xQ#CCn8PaTCXGunP&OW~YP~#aynsh%qzTs8ZphfS#U~UT z6aAhIy5L?pGg26CMRmwYF?d!&?m6e*JPYXLU^|4$%+r+R`a9b@#_56mY{%KG(j*$z zCUV!F{Wit)(p?u z)BX4SpBiT;Pv5~nt<6i$z78fRmm&13h_W&&ESpik*A(2RR?|ohHVin&%p0o%Y>x$A z#-eUR-Q}POj!{v|dKWx@1-HLp)Srk8ED9paqbSNRDNrrz58WPcfH^hfVi&rlT%&} z1T;7XE(mU6@6Y&CD8*2ai4xhak}m+SMgXTV!*+;NZbGOO5#Zgi+n4G10V8*|!wJDZ za4O+-zj_(B^{qCfNU0aQ(B)j31~D?y*cvL6EIkT8B%PbNqOAQ^>=_aYTDrh4J}^8z zHBHm796yk_CkLZ}JU%EKq$Ii7%64Ub&Fy`iwGuNLXB1{NCW=tz)VfK}4TE=>fp$YV`V+tkqeD#PYL56>GaAh5vykW^U#!ApbQ%L z0(Q8gygQ3TUz!x*QJmVac*15~50V4Z-6y~8b2c>6N4o16HMG+%VvYptpm6My90c=u zQFeZg4k#eY^)7JF{~&r^6(Lwkidhgw9l|eX z?{>w-I_iD?d5cxPdC&Xe&^5-;vs0#0nIdEAxv>Fwf)>WU=y|Ef0*Duk8-aH?hij~{ z&$l>guve`F$#7MqixTiLi#nf-Wmov+6)`_GW23NP?%aiRZwlN;mos{p)k_;j)n34k zziy_=@zktJBu$2?vWz*YnG?H(dG1M^9xsx@_C<~YAembL_mBFA-ye#kX!)#OPz;G> zq5y&{(M+We2zy)=BJDcpg0B}+0U;p?u10->`X_Nga25f4?Ju4=y2hDNC2!4t&)vu4 zbueaNjP&zyKt04^+J&H^_&&?n1l~rGuW1>|#R}*j+?&VOi({*~Hf8M;hDF5S$@@N~ zTht4h-B9HzwmE`al4~LD>#TC8@QP5u@GYALORGF6Qx#sX1)@u{6T?`oy0AmNIxF(E zcyLoNF%#MhPd_2Rs6Y)VuXK*|KCE`1;ZKu8v_=k)I19;Jtnl1k>M=1PD8;hi9ynNy z$1c_6 zzNpt}YA+Z}j5*Q0U^c0(Kmq%7QxEYY!jUgQZgvBoWgq;D#tM?;10yaB_*S26>yzRi zU7$Ge*4Ks4;I}w^u;_Y_i;{-R+9Hd9zL<|ChK{w_-DL=nr4Eyf!3pa!fAI5ZJ1nM!RjpvCBtAgEDs{WL?=rnljU{h`s|+j9 zG~@jyqGDX+7CA!tC;~!C3e7*=!467QwoDndo2yx2@;=jR$wN*0abHUYAS&1JY9J{$ zjsa7}N}6Htz0A&1=~=LMYXq@R9dg0-3xD_w_aLt~pv~?qAK1Qpd2+eUN>GONpQLfSJ)n`Iq8Ki*z!&%@NfiIH-ky83)~ zD#YH+#~k05Xzv1Msu3xSt<8MjfB)iaS92!2GiVM&w;jAWdKyQ!En7`z?5 zupNY~t(EoRjGv1_cZeS*lwA}~AtO{-+fSVypT#>EMjGkS9uh!*+wY&=q>?HSHehPH z7+xOlErGFQK4wL$v+3|v2x9}CVeNBYN$oyh0k_FqbW}c^XMX0{G9-(%*(Hm$QhoB= zfGE(mHs8Mj&rWyVKwegfCV7|T+}s2FsaI~bR2dA4G5K`M$Q*0wzM2WED|bt+XdiUm znC7N)QQVjgDrL-Q+Q~S(FXi_dkDWECHo z7hI+ZZwoSYD1s{n$hxV7uV>MbVL}@U!tKGP>EU~?(QM%?1#y+4xrixInXb0}?M|Q! z=N`OxcvKQAM@pIJ^TBRa`?wldi+4;fJin5Q<8)VK+2s$*f^E=V)wF(L#-|#GBEx9a zHV9R;x*A)DzveD#1tzGFK;XW;?n|@C6W11Npb^Gai;Wkx8^_F*ACT8QuL{G1{N=2wZQdR^8MtTx`6$nVCvkt8mN!r>=D$`GCj+#fyjK z0UCo}Zk#an>nEJfrHe55Nzlo3rU~zPALK~=8(-qlVLsf7Pd4D9KBeWHVJcACq<3t< zhkt6^*X4|JsZ>e$o(>G~y;6g=YUgH0GZi%J ztT-ujLcjaW&H)BpL#@gbGzKGh({mt8NxP%S=`pf|x)|c9hYKz2HRxwfCwefvk!rD9 zD$MnML8kR{KpAgGVLm?rDi$vQOo0j{5RK{==F>kC4Dl_+QEgNoPG8KG4QscgL&$2| zSEh4iuIo3Bf;k4n+h6Ira0q$0^v>>&q2h(;E|0&%qrU>pu zJd!D5Zu3s_62=ycM}NJ6X%%w|B=SAo-hlOL>oRPRZ;7?~_`u|Z5oJozSRWK~_>t#E zZFitqhsAQzZz`Lr;-(@2K}<9oVl>^;rJXP`&;^~<3Jg3G*Fmrk3s`X+D6`n3ai_5$ zXXYjpaFs4H@A2}yja#{fitlCu`f*^qyv}KAHsSw!?k%mztgM^d?1)hGKo|H{vFho; z%C64FAn$T)l?0V7b31tXC>WOIVf46OsG7E>njjJC3n2@F_odYrTTExt5x18X{s(@f z=dOK$JYR}O8~&98Vxv1#NKhO;gf;E>0l?=4UJvi0gHzO~%0 zFazDMrI6@<&|*G9`fN&3@s^C@WB~(ssDHLK&=0jE^kycRjw(U}U_yF6CG+PYJpKU6+Hti!>-eKLxgw6CL*!FvzXf(h$m zX~6pmU8~{K+_<*%`1C{r5-1D^x&>Qt{P#~wq2dD~;e_;Vww{(v4hkva@W>UYzc^B$ zS#*8^WM6kiUk6oqSrVJ_zxt{xI&lO)2J>GoEbVN9dLpTyyB-M(LO-b z6|4Bh$j7K?Oc*BldYQrR0od4GW{JV$TdmfteFqWWtAk&zCwy+mUd{U0AT-9vVnDg+ z%D~wONjje!Jb7Y)dEts6Yez{iYRr-x5Pcf1PoX(v{OlH=bkrD!^pJ?0vfwCk|3xfV z2TitaxCEMk1Ybei*qQ2%9jx`-0}sypV^9%kVJ-rXJc*bq7j4r(Y;Z)&2BQN#q(}n- z`nPFE>jN@s5*8!O(wQO?{7n7@Ul^t~c_ty1_j5PcVy{2G7cO_=&XtMCqhBID{m{$! zituvvjK1OA1|N;*Qt$6ACg}G=fgI>}4`_W{2tgFKo3F+~DQR)y^3vJ3t2r$t#{kZK zsMQC|G<*w>r30*GsxjhR^aVU$#;Wvu3R~&oK7wtqziTossE)0+M3YBynLok2;nTD- zHh4fP1Dho?O9K*;OkN}UwI=sBMlE~>|IyvDvneTR*BU<~A6g6?9e`gJ=z*RYayQ+{ z?}?Nf;38V`?6Z-*3#KSkyYrA_hGFj|9lG1`7|%3Rff`vsgoDT1flK%7GYud?$Y@)- zit5cuZ*d58G>rr0Gak%>nBYJGvwOn@_So=H&UTpHPvgK(!<|-@Xe2z4LvPm9@Qe$a z@xY-W?;HN8jKO}F5^JF=%HGF)<)-e`KZkd=u=0&w}e{}@j>h2SAQf;)L;^6-%R2R^spEY_#>-qm9QP|ve@ zDM!+~g#jcO?;;ePa49VgZH^P-elM0e5R8{L^W?e@$4^hi8Ab9R_R}eEC$j+5;l>w5 zfc*J2#;n4LSbckUXp8VMG{|yE@>qbUo?)ne+^G-=rNszof_B3ogS!y=0zqO3PQmXO zF6!oX^C3QD_~icF@c;biQI-8b4SN>xTMd-r{ow#ZI}E*69Om^;reLvD1*fn5=|p;a z_n?qd;lU`5&9Vo?klv;0esig4~s~U-Hz!M4bk2|- z{!$B!9L%_TeMtSpZw#kXb=u1FxExl+hgB_tFEjt zuYp|gFX5Gs2gJ-cj_5_PE+juavGPBv9wY(3UlPPEf>G&R^pXSk@5TQ_9C$x!Ng>6# z=kQV!B{b&M=FPbU?%A$v+IM4BEEB{fz2DVmTQF*sPom?cu---)p&NiRSRxl;U1lks9m5W1nrYB%DJzE-*3 z18{#d5?~r{v5XRKh7O(UwIlHv!?>8};0WJI*;&J#Qz#5#DyJ?tg2K`ImC*dfvz2)E zIbAq;8B;g`9WU<0!2>pE?|j+;T^%I|bKGG}i9>j;KYJ+A@c{gthJn*X&~a0p!fTo- z)xz~yv4hPI&fH;i90tWsR=wH;h4kDt##nIrK`g8zV*!7fsOe7wmq6yA6fc zlY~+v?EvZjcm`0Kcp8~CTFW@i8YJ;isQ>a=sS25ed zg!1YIm-@(cCx^tc29Jp)|QRl(5!7XV7=nd5p#8W2^X80{F@_`88 zQ$5d*(sD}lJKjfqF@{8)f#sT!jvILV&+P`eUOHR24lhtBYBG>CjJ}0nZ*69AaY`Z* zi^wjJ9$dcWrh(xKwR~Cc!K^Pe9u&V(63K4V4K*gp_4(cHUWHpu#1zqHyux7-O5ZF3 zl>*IGciuk+@GGi>@fq1Bk57O65G`g}(uX%>%T{C8VROFoL3@sO!xGF`neogu)=k^C zjt!T8pmuZV^S@x}$MTw5;o|#wyO7&W@(XR>x!>o~s7OI^R8dG`cD{wFGHMw0_q>D! z;PU^S+L)Q>{;%5M|H~Le$Mk@|4rkqVqo0%AKQAQ)8b#mT>np(`pD6FZC%9VPoVbh2chzyBJ8%uUkR9$wI9BVB2K5dIDNOA)T`xIz5)k6o3XbgP0=!qk*u^? zpe9QjYJgJ?eRS+qk`j?OK@zgoL=X?!J_XiWVn2Id!TK_g0O-jgx+8EO>e_6`uh<^e zPPq&dj%`ZR9qL0rO3Q9u$fRA!)ZY=+8Lb?~Yy_Wsdmwwsu9TDp@y5s$RJA>$5se;R zr40n;U&Y_RjJ!rdHQvC82srJfWT~V52YS{Li?!s4r)gMk4TIc$i@vKUdy7NSrsE0& zJ?MUAtWZ$!(*SUXS#U!~{qnqdfgeQr7!7a2M_pB8eo z#N$w9v*m@UTR za-+HtBo}{LCR-7!Ka)3Pzy9T7^{&3pn*4d>net%b9kn_4!&WWY=4KHu%9bzh zZSv{-^~vC1TOh*rPv=|aaA`E>M;$BgPg|bb4z&q_XS+HTD_$KDwr=jUE;UaTPfaX3 z9+)rvrboS-ufyZhd7|eeMV-D^5Fc}R?G>&Gr-mU!TM(U#Z<|&P-Tp>@rUJ1|TD`R) zwxDfsYhlc(#HfpBb+>f)ba(Ui^PM6d@6(+l9`DPY10HScf%e=G{*Bf5`++aZ;L}6m z(M#joO6AkXu*d8Etd}8`ZTX zt8arxqeETk4sNa$8qeq5@c5m_lm63AbSyzc>W<_5GoeBS)JBnI^(v*vw1@siK`ezd zkrK=}c$xs*@maiKfn3nsZsV~aB+1}#dI?CS2p{~g=&GoMnSN=V{ARC);%x5s|Dx=j zf;)-dt>4)E#kOtRwr$(?#1q@LGqE$VZQC~H&E9X-Ij3s>FZSu1zU{8+>RQkDS?jZo z96nTFH+vZ(c$9yqBga>cv7k$tx7Dd&DL#Tj6xZ(y9)7yf11iFJ}q6RU|JN1VJGg5?irB3u02`uw*B}|V; zFrg77rv2ra2cmmR(EbLJ6}^fF@pn<3k3=jUDsO`|OE^dX6R;?5m`8{}^bwfPL9A|x zeG{ODD&L&AX@u5?h!km@02sq~w&)IMl9fB{YJIS1n+heo>UhiJ^K0sTE9yfI>XoFz zmj#U)X`$TATaxMdcT+b7TL$_!=_XjhQ``b1MugXy;K3j?N>&mRmzaFWV~}7d=+USB zDwhyt^htvpXa(^a@^^Z}T`eKQ$ww;VBb^uo?^Xpva@iBCA4w?C3xuFXUfoUQ((Dpd zn|d)eL8Byx|3zvP`?-#%UzO;3?ouzl5fwCJ%f2O;Np!b34A zWX$KJ5XL-E-(X_f+=TU(sB*p83&@c{kS%&U>dP+vOCt9f`l~u zB=wQI62XByf8^zmUZicqF(msg{}Ani+zQbOV-y*tbGfpH`3JHMCsTCGVHX;c8-Vjy zM93P>1NAZ`{VXR9CD}u-Vr1MvVPUw#pZ!ZXEPeBjo3zj!}=bp=*Q zY#!-O4YIlwO9g7aT@GnFBoc#|ZD~v5{g7KM7iQrVn`hqrW$a){bk6*4ha#CQ2ox*D zK2bzU1V_pReC7&3I|AxGNQ7F3!Ui$g2iA>(TRsN^VM+i2PKM@(V%>#C5+%`1mTxo# zF39+eIgCWtuMjBzAd8w@D@%xM@^|=Po9PuP(OdKpNZY|&1v7!j@vtA?#9JG=5b4zb zjIc+y*L+5OVhB=Ly9>(d2?DJ3THFy4)C!t$88P_Tm)v|0V0H+7y~SALR&9+}r9D!) zTw!#vSnp=NDsDZRbkdNrJ-mJWBrAi%_#1LGs=lI+t^|3XdF%Mk_1V$c$PgmM$POZ< z#xrK06b_)XeYjsmJYOH4w>5m~;!o$zn03Qj*#0U0!?fd~UG;omH_L*WA9$ZBEdOy8 z=w>)W-t`I=8VDwk9p}-=H;o7$1g#=slQ4!Vh=67&CJrx+F&KTnr{eT8N8)cEwaCBR zrr4;5)tG)EUcBWFp@lt56Vja%#VC=@?D? z9v9}`4=vv&@Z(rurpj_6lL`?|d=1b~V3Yzki}yPVKP~)t#&LFomatcz&17ZH!vxyM zyL;nzeK8&RdD}8qrwNk2(|Ewalo-IlOyDQ3Kta?4;RWf}H?G{SYo1yjTb^64+S9>- zTWJjK2Z-rQB^p7WNpK~TJQXv&v8g}0sCg;Hn1aYM_7}m39qKPL>V$vdKv~H1#CYef2(<9+zSU6AD7=iEU4hl$rxB4~xc3Eapvq>dVwsk8^zx8Gje-~R?qS$#Nb z`EYLxOuN;$ylXn1wB0WLoG;rf(b;`?P;C9&uh@Jsa!GFUm@9)Rf0O3@n-Li(<#6Tx z2ilkS#PdJ(G&=|D|3^>Dn%P^pS`xA_vHkBGHh;Dt8>9cV1rbzx2CfE-q=RbQo7Tm> zu8!B%Y!w^dfRg^EOeZWKGP3)>q=FFQ5;-;93u81!%*nZz$CcfrpMUPS;a09#KX*j1 z#^Bf5&{|TOa;Bhk!bk%QeJyB7Y{WdRqzhRgFCx8q|A=Db(EOp&>-chu)@Z$L9Xd6< z!=-V>-uHp9nb91o&PM-*0mC*NPgfh~$Ca!w3yf*JII&D3;gm6Q1#8=SuHPpcjQZ`h z91?VnMSl)XJG^YQm@VrMt6*?V!6o=l<~&a1&xx=D(h0G2;3Hl9cbBW^uu;RAw~pH9 zqqmRFT1`ztY;CigLEYI9#^u`5<85hQ8ACK?DFef|SWa3rnd|y-l6)-6U@4sxZu4qK zk<&*{!7zB#i9oBFpB;|QO-6Q)9fk~+{@z4ZWpll*_FI_XuTia3d`I)*cyWLQ%}7S7 zzaJqDteu~Hj>oE1m6F1&ML=)OxZm2`Ldzw$&Y!lGq_i{Ha($EWzx6x)Jx9;(E3T|p zx%3cGXqH?GlfLH**cBZjnYL?*lR=4%r61$Y2Na8oOViNaW?%VoOQ19GNdYSyjQX5P zQjF!GQdD%Pnk}tC=q0(KX<`#JeIj!PN%Y%7HVzZ^O@Z5Z+7PR+H)bzVID;k{Ek7>; z5TJg@_KqY=b|273F7iDy+gNk9yD*CUv8lCHq(iJ$@DGWg!h(ai@!ATUk!tyX3JGOM zdRvbYw>#{t9Q`O?CB>QOL<2t1ik;M!!ZMrYU5E{2EEMI%lykr#u|$~SZ|#boi#M#@z7wpkqVQB}K2uep zmd>n@S^;nU$qwJvT9OiEF&71^MdN@3G^$qkYpCV6eooeFP=*^wtDmZ9FWxYi(}H}S-zWJpMWcgz zM;kDggUg6mzao{5lCu{+;yf5W-c?PXP>AwNnR69O4gIY9-s8IS%rKaN zy^6Ud3uP@Un7aEgsKL$E@Fg879E*n`R?-ze6?hQ6lH#!w0X^jM=#Y9he(Gkj@q@tS zfU-w0UmAEog(!?g;m;~^2*6xf)4APoF|CK=afKk3E=K;@rD+cF8?MX$&aPrXahDFd zYV2cOZ{@(JXy7Et&fBBgb!A+S4q<+8rzh9i80r_fT(8*DUoUFslrO1Drac=??LC|} z_iO7dH1VUv4S0mu-pb&4*+4)4==U+!KIFHh$A!+GX+0T_8uQwRXbLH*~*%H6moN_=hFKmqxZjOMXXN_(f(NulM`BUFf3WcwsJlm6Zq(&W4efr^h)PKd;}wIGo9m72?D2Lk;H z{Dp$hdmjS^9chYP=Km%Y;#(8Vz|zWrtTJQyhnAP(eYWv zG;uiC^nNg{>i=t~msWZtpGyj!ef7FBii6P553E0!Hc+qjrrQm$wVk@8Ig|vtsDca!1X+B0ntLOOF;7F5 z2|k13R!@sTJ$1s92WEp3^=F=#0}_QG@PYu(3`G?mug01%e5#B1P&Nb;=dLyX_eq%; zmQjW37cdfZe^j9iweo$VFa zGBoIOqxkk(TQ2WwvpG+hZ%0_dW0-K6Ba$RS?ZyAaqKmQ+ta7xDrL+#;t_=#+B_pRf0p%k`j0P}MqRI@Q1B-{Bcg zw&kP~UFo+iy?>>d(xm@X0k>g%p|3*Vb9+CEX>y#hDSYQHL{q{5sTw`mXd|&W8d^xo z601({oiR{sTJ8#tw9mc=f>Y1-|5Duwb1gTd$_#NnFwpU~)8Sp{YldS6-xK@7duR+dToojUK*Hu=aJ|=f&!A z3?i!Bzx8;r$>IDJSLfZj1yF$;=r0xm#%GM8OS^Y<2T8$HcR5~+nVA+Tht8FWUGbG< zUm02&JVD6b%aA?M>G@?M!B6f8b}z-B7cqC%+7s%T5h^yc(-Tq1C)pKH{~O-k$3ckn zu=56=NX&u}1?kfEc-+3SP-w!q;j77%s32f(i@jFd=EA!$B4j~EOgWvGps@dKvx(JT zvGPo2;FKjQsuvg5aQ2ZCyIcMvTPjRo_1c`VC)~6+CIX0ZdUQP(FcVL_3#k!^)1;N` z)W0n`xld(reu~q6WH?W@q{PVt zBJYis0Wn}(etH}DfUpu+V$;a*K(AB@vy@gL2Z=dSY`=fdpD_!VnG>>!Ifp)vAdqz7%Dx0IW>Gj9WND zg&@Ndn^ekhxk<~x|84KkLZG5pvM9tZ%G=IiPgaQhAg0%yDCuNz?mkUuJlNR%kVInF zlmy(}4B_o;yLM9Ax~Clq7cO?Qw7w zI!(1*k_*fb_2BdCDfRj$I;&=eT?6zoe6s1z0)ZruE>rsE;V+5(0TO@>;&u()O~=*e z$3C4TW@dR~6#Y;T^3Ni^9XAz=hgM4x$?!M`0u38VG|}Z%~!m4>je{mmp*VXgo)~(22jwsofVPLnK1)iJbbjz7|YJsIxyUj(||d;(HhOTV-MQ zpCcTjIw)}3PV=_ozQ-j3u>9MoD}yuta>hOVT4RZwg2oB&61d0m4GM^=H{7C*8(e=* z2R$^8l56B*?{5ttM54kIF_p6L!DC4z(vyZeq`b4`#bmkdYFWvL=zXF+B%UI0e+=%S z@R4H7p)Uy%id(^eE9c8_5KzUy|71{ubA&RS`*%{O3gx^&ix2~7sM{@-kSP-!4*)g_ znO7jgcFsPvZg74oaE#4^Yv4#tK|>aAFC9YNK{KCyBWDb)Uc@AcB%zTYgPP_ zthGlWLYufJ9+T;BY?Q4{9ZOTK9}1&xdhE8dYu&Zl3ebt*)!P^f3%w}|qnxj-Vs{Tb ztJ5GD#@W`-`EnXA$ROh#V^POUIt(+<7)^4>YGN>GGKF>_NQ@b4l*Hc}mn&>G)t0j4 z7&}_qF%B+CpP$&PUVG~>%>W+f5cK+U!6)>(QUkE|^$$q(1zwMSG}%IQ>l_GAzLm#H zxLLWh>u$Vy8*oci+fk`n-E3hO~PB= z7y_^Nwc3b?ApR;izxWnJRER9sxRG@aHjuU~WyUhN^CEKfrgM3^vRB)pRn1u6`{@4I zkIgLWbeDn@Kn6==k)oV#+jqU4w~yz}{a&XJm4cKYI!};V`J*?lyOo>o#hZDOd8a#U z;c)J5_0iul3RI$^Q@KF3EtXauPa-?S(3DJdn)W4D&El95ZhIYFV5Zb zg>(Fv-3xD zNKQp?ta1f&aPk@f-;UsUf}Ow-hO)X|xo;K5xTW^k-voh^3Y{j#^m~KaJV*}L7q(8p z-=lAQ;Q8Gs{YbeRx}r`huYMCuCaBB!UTkj=IsT$4LJB3X?fvG&r{9$RXryMg)f>r+TO!= zB$l<~r+KT0DXnTJ(hpBmO?|7B!D)ar3v+Oq!y`f=z?fwX2PQR3xE3<-*)9?Cnzn3b z&t00m8wsh7PKj)HVLa8uibi<`+I66COt*j{blE~5tScd`k+fhA~ z`g9^u%>+sr=pW{~(o$y)CPWo~cf@Uj4V33OKc_Wi(q%yc={{4@X#IG{$4UTS5qQyD zU}-y?O!o4X)Ctf*#P|!$n3@1g@%U4i1}19O7%>A9dz%Wy48A!N#D#z{79Tk7EwVGi zd7RB-9prM0UnwWW1O<}7 z$#H;+$}Nvc(%dG5$D<{n{sCW4-#van&4CNT5BY4_r+;9C^RT#+=RAKVf1lA$|Cza z80@=y(gK0=OWG(0GSR%X@Eg><^)zwj>@;M1^wA@Ed|uh&-gy@$zgmNh0-O6X; ztu&~xbWV*!!wyKw*HvyJe2DP5U=izj{HLYG#<5YmN<5R938xa)z z*$1_A&}d=z7H{0S5Mkkz8pybCZ#Q{|`k|o)9v5eCIyGD4+nM_UbT44B$M*Ux0(y>xIbcX&b+Xd5tq%aUSn4>E5cVk}^ zCQfxc)DszFT{^Cf$Y#mUh8RIe*kK~vtdmsI$7@npW?(z%Y6v$&vX{3KbZ+Cc>@d_q1AM2l-W6D14UfJcK zj+ij_DrU@$L~$n)4YwAo2WgY@zqba$Hirp||M2%I)-F4?@rb^7=H7vXf7fO~U5v7n z{F2qgg&_-k&>ngg6OovbIoowK1cxHaf(>JDZk~5fnk2At9wOy?iDZOt_F1FKSqEd(o$zn{(K3)VQrwy0Lv9}QgX9KW zz8G$yU5{|%>|+m7?2IWN@o9bW?4&?8j-^XZm{jF5(fnR zAnC&XIX)FLWNsI=)YH_d3S&D$Im}fx{*tTq$^iD7cZ-p#Z(jOfr4lgo59vs#BgPla zn2C+|zcvcXJ3&?1GNWg(5REWg%)wmh8$v6~IW|iigzTayv1^*8j<<1oUxCz}0{wY+ z7GU~}M)$9PV3v$dLx>P0!J#N|`kT%uRvWBtn3LRSg%0W4ERqV;YaE)O+7l5iTVpNg zs+7S7LLd^e{=F=(5x~jt>~}jcUe6XgO{fY%qQYqlzk9%@m%wQyKYo?<`A=rfR%6lq zN#U-y+Z7PTV-bcvx8uQHJhW#4g#Ur74^t|f&yMaOvKcpe*cQ&sIXUPA^rgl5vjVhd zT_6DrS!-J=`cA!8P^*s~SG)K|nIxZ`2o3Zo4ov zX}cr6QwElKjq!dqre?HX$^SQG`=LYqPnOcFWtRr^ko^w2d&dv}1#p&SwnqUCBuj*i zP?eE_o{hd#Z8Q}geYJf#5RZ8KorZ!4c{u*%i;d^#6F(?B5~>{EB&3a6k1QGrKB6hi z2zW4qpxmqnxt=^tF!}w4%K*PgCAWH?=cIt!soQ`HiBRRcAE3h~_b+V~z~GtC8HUs& zEIHn-cs$OM)Ddicx1;2(It|{XDMy7DKpo3~3V77{hOYKTL`Qv52w#1dB{wE9qija#=1S4ncDghKtFK>RhUu zUM5fe^;;kbEJGm(I9tB<&Va1km8IeX;warbg&rr}TlslkzzawQT=QSvg8+UZSS~0~ zut6X2$Qv=Sk??pga4qzT#eY!xT>l}y&dkZq^uIOkbZg7FY;Xd4J~U1lAuGlQkPv&G z+1Gfjo200JnpaxMb3<%}03)bJL=~R<2EALS5K@xKd|q~MgaDwdSbyIyw$nTYfv&V9 zHy3odo2XLaCg1QWdJhg7PZL-}=*ymK}BWN}GjXEa{w?`j>TC#(H$? ze(*M=6Z|D5znv2#tSEKBmVHE7=v!7QIJX!?n+9z6Dwl2+GZrA1${jFXh z&>fUX0BF)X_n?Ld31ta?pCaRLcXgv!IZ&zZp_7C$BXQ9o3!_V~R7*~hEM@6#v_S2d z5_9$7xAH|eV$KT*KV?DgvwLJ%W7Ws{%rWO}S+YIn%^?o7yn+Tx77+cx=ZAgAYQEPcBc34R3n=+P?yVMFJ7)MnF0mw7vZ#KoYfZ9?eat3G zrG=GTv9=tpF-`1X9H{?}RUAvRqVD}Wdb&RuHhAEk+K#N1+EAdd&gDz>*LRo+t}SzT zjC4%700qXVF$Rtn*aJ1QF|O}2vRVyBm4!V13to#yQTt36GaXObUFzcT@w~~TiE3x( zBeLYhDt$Qw!xDvP7w+gK5?(kalij09Q~pY%fik+Z-Yt3{_A>VQ6@4Gd7!^j_(DUBi zLhvRl)csmFIhMN*85@AzXzbdTJL< zP3%i;_VOf5svQdc<8E=7?m5L|bfG@bG)IzPc?infwNHjaxV5z%?9%ElDEX3=OVV|I- zL={u=J=iGW1a5_EKDHuw(s_Ne)ZG?r)~8I^RcLrJy7)PPu9ThFpC}otb)%g~${(RO zZ=~|@uSNLbs{*Ol0|^g?I-I|Ju}Ue!Ao}J{-YgMr$*Diy;Bx}OeG+tGdJc4b2x=}mGqV`O}&jdPUIMPs$-Pr zSZQ^5Pla7i)yAjQGBfoCQ4)GzTaW&Eg-(v6)2=@a&S`D&0YSSX^j-KsOsuyKW0W(( zKKnx=21^-9w@+>q^bc0|>SSaN3Op~jNCdDdF&2wXs7EIUX51L~R?VGeF%L?GjND{IWE`A9*>xGL zovZ}}gGn4+PAEtvn2?^Z%`U)9L5qrFIjeFO7?D6aOa2^UwozVX?&BTjy@W=Q!+t-# z4`vSa7^x2Tdh-=TBLeLcY^`%38HKqpRI7`s`Q(?enS#ao)2+Bqj79OJNVTaIYcN~Z zC-Wl9MorOmFQ7kp_YSp55!#b>Dj2DkF5vBSW&ecMf#1MScNz|&gWS30!=&y7yDQt) z@=4@;MJr|b3DxX#g+EvexbNGgQWW(7A*B%9%#)d5O%TBV30)7+XQ#EZ0hkd+dN4l6 zNDBR@TEE*W8*IejxyDB(mIF?@nzUwmF$(QWEc|jI1FT{Mo>xl)#S_=RkW5M;dFiq7iqYM=$&p^CU^MM`#!f#A!-N+j=MKqrX~g? z9Hl&7AM91Ba|v80AIkD_FI^h;BIRDah3UANw&ux5{$#~NQf%1^%@}W9%?rE&*TguT z3Lm(4?|Rzap@-mLzz?cR4Az&Vqp|w$o$p7kM&!q;{#q~u7Stn7{fSn%hVPWV05%Ig zL!~uJb#Diw)^wFiXHTP)}zy zgMLBy#M28sbiZ)tjMgB+I$6USIVHKIIq?Er7qoJX3ILCUD?*yvA`pMS=vJ1)eW+)e zL+yYxbXey*4z1Vr3oL9}Y_BL4kK)=63hwN-8-(|5OKI{)ryAWX zqbcTNnr@`SfDD+~VddW3JtV>htt3D}j0Mr+RFZg%n8q{ic0|T}H-v7H)6Yh)URxH5_{Wa2B6J8da8s9qS>67x|2#nspKXg?@ zEH-@YFwU*%TN5LkI(1MO{X?z$r-dC&;nNRj0t;up%mk#mMTn#YQIFMK^b5$2ZI?7x zzq6)`(0o(zt`S^ZSmkDL8Vc z&HK@or5md6gG!cCJHTsTRgOyNBp!D&XJ7Qq&-4&q-dPf_+L(;M;9DMEbUW>2GVPN0 zRXX7bkh^i*LVvxEr_jfav`QN!^IHk13Yj?J#a2NuNZJJ14bL)crkTdo>a0(9yp}C7 zLBN6H!lGzdpbQ)gh-_wIHQy}(KSSuWX{M(8?vE{AAo8TWuIC@x0ih&N-k9Gdb|aLT zOn0KdYbm*f@M8q~=gSzQr41sK=K8GZ_U(V}j*y4IjKEyzV|JP1X3XIR+muy#Mi`|E zthH_#{bm)NcC3&a5qgn41I~0ulMAv2$+@E3H7sawKnf*96rU7qJq?Ss*Aowk$NcI{rQQqv^4AI{Q-(5z{rFNco8ab>7cy z&(m@6@!gz@LzlCMSx9R?cOl9`qMBYw5i0ajRxSnWw>0Q4#vi>sEhQueU0&_a1WTSu zQjXK2uRoAF6#q`%Oi?8E@UUyZ6Q7LY!P1C5Gr_h!yPZYFY-RNn6hHK0=BOBzlZN}K zu@K1G$S|3#eG6gYHF>RdT+$&| zCSK6J*lxg4?*y<4YluhPB@j_5d<|a0eCZHC;YM#? z*R*&&<})l@|1%4|`n(mVQV^z`i5VqJTR$kOsU_@40v33_!FmLAdds795tC?emLd#I zpqIcSKHBGe;oExfNBpsf8-Wc*|2+Svwu|>@q}J53vQ@DAwY`#-?8Wo6822rrTpcz) zw(=0gadCAvGqQv6T>q~yH12=f=2unEj5NiBK@F!5rC_Ke z_)$j+bEswLSE|u<Wa42x6CHmPOepdG)Rn>W29VY>Na9sRIls`OlHLmIza z?dNx=a}2a!zrHt3h2~IsR)iiHI1CVJba%49+)E2EYaglM)lx~TSfkY}=a)k#Yt?UNzS(x_*%rR6(`}dnva1+_a&8PycKn*98f&Dt zZ@${4Ks4NIf5qx>jzCDy&ZZEE;NVHGxWeej-uln*T}O8uXUd(moqr9!k;OQLHJ&#qZ)aN=)jPOTMyENd)Gk8e1&G&=n79nq7IVv%-U&Chi}`nz}SUfa{xzsi%nX^%Qo#X2u7k?9j4zIVMs zTX%n&YTEn*6%xoo6!bU4V=r)uYpr_TkNC)FTB2-&IA}p}t6gOkmq@>$LtxexWudRrx4_-aO zmNrr>(P2}~Y#8qwzn_GeZgb7QPFczQZTr%x9A(xGxg;m(RuyG)IC|!JNLxN9_)*!h zJ2UetwUP*qFqKgy9owKPA(%>_r6hk`jtsYkyrp-E5jW-JTY&moI^unkL6Jn;sM0x*6C)$E>>P(Bb32r ze>zQP+x;=E!w)5|{jJA68#~lp8-1J`b>tX7JB^rVTG0rdCz4FV6$P+lFGjlRsl*J; zr@#x1CT65|K(>LlWC30W3u4C$O05*t*=Xcx({|cIo8(+D3%VFivEdgh2eLZ}2eOIl zn?FPa^H#b&sJ)8vcIh|hvZD_nlZ=$lMJaNR_1@?p^s;B^{ixIuJ?x_x67sO z-rP}P%-}^#GKWrb3C)0_h>D2P55feYkgx?OvxEo*r&aC8&@k;do zH=r{?)HWgm!DHQ6FERgcgP8h7|IaCl?@IFc!Nu`HNByC+d?UQD-|c+RH3Rm#g{nu!ZC81JpA68t-4Mh-4J>TWmm*gPae#7hM>IRK3%c+q3K`xu_8`*^ z9Ya|cI`;s=lh*aGht3Wp{X4Yt1|z7g-%#%D&7#`>EF^bG!*1VK?&?H{mxNdh+5iKp zn18(jM-%Q}4PacKq71)zZ6U`5hDOzEhoExx49|h1>I80y$d6BRB)e=IkZ1^3iTQ-u_}f9C6~zf{xPm`C~7a22~Ho8 zQq;4HQ9yv6+FH~0F3pNF(G_g7$>{TL=?(@%eaZVykC1XqJq3BX#q`;&-5N|AqQ11v z0b~8Wd6NZSky=iyj?a(SrEU#@k@-Uq#jmw&ag_R!-;D6+s73^(br>^RW>M5E*UYwj zMe}x}E4N+^LZ)?{)_Ly)={fNzh%_%S zxoCq3lt1RYcCHVbjtYw_V1mot?RV#Sh08NNKtBiY?7aOuHNVXBV5v|;AAPWOOBfN@ z^<>-r6<=gxZU_jZzoTjWu%?NT^JPum?%eT~=o8TH2g+&cQ0kW0Qr~>6v>tJqfjjsZ zMkoDiVo}F%w-06nA*$cDn__d5bziU%jfjh-H7u)h3dI70V@u<3TE3ujSGc1pw&9I0 zLaU6M*|yPNCdV7~c&8A`#;Aer&a^T4 z@-H3yY@vH_4)wLu>P1~QX|o8w;&CPf%6gIer8sCv9LrFDA)_}e=ktndVHA)e?#_-NPV9@@ANg1Z!(~B)_m+K$k;_Sp1d}4R=KGdLVZ3TI z!yc;i<{Pir!HOwD%LhHCyc~v9-zksit7xk%3|Lm*xDoE z(SA@K{jxP3XP$wB?vbkxV(iU$JN{?)ww}U_Z%E7lJ*bULm{dJtM_~E3K?txS6395k zE#_%6$pV1Dt;SMYm~lkHk8upy88OVz356+CyiIDmO7MYLiW+r-&hP^tcWOo9KC{~p zTwG&ISE>h8S^tL1Ke_X z>9=`pqq#s?B!&?|%d$-F9iu84v}M<~qDK$-B*>atlgj zijOyw=*(9TD0pd6SPjh{HWvqG!AN?2;wl=w@&(&Q&rW%c5HBFYPTNF6)jMbp#NT(j zWa=fb8>$dm$a5I>AKG~(Wg?BjfW8jH|1Q}+QprWLsedzwk)K2`(SBK$y` z_;j)a5#48ifl$R=00oMhOvMiOLwKYK(!9V1)C_+&_{_VwZlf5XTiisP&uY&}aYohm z8<45Li)ZQ$lL(8}@b$B$ecoerKtob_2o`dYkABDR8wziXaeZGy!#SWHWRz{X1)l}5 z80@c{u>X>m4S~##1w_~b0qf{@man5M+mSpz3kMo>4hmjsiX`RJL!?0&5XjHvA@&Po z4V*q@pZG%g?>XUwzkOp54Wc=Y4fO1qFcQh)1uFb}@rZFwt7f|kw@OG1%luk*F*01v zmTl9M3ok^-()MTvyPOp898T`2nbz0Dd&(=QD8ms_R=6u4k>YK;H*!ov_34Q~IL_Mh z^6~D*W^U)aNMEKIZKF1m&BfZJlShS+dU8@CW9AL=&;QyTsE!rF%#DL4u^0w;B&!ce zO5!N*Z4W=3bujb<;PyX7vGEZ#KCQ@KktiT6bCmc;7~d0J;lyO=&zc-vL%3d5C&^u6 z0Pk=L*Ps!Mr&-TIO`scIpU4PvASWkQt8OaId?&yIKoYU);HGV&sYPvf)&R3JE?`Eh zYT+5C0ORVk(0AG^OadvMcSqk$^9ZuqsF8Z8Tc!QVN>|T`kZYHROnl~ZyD=>cOlgOx zg=(e}McUpi&)~cntg1+rl0l{xZ_(J$N9TF*lORRLpak7Unq=*S+GJ%(PP5QS*=JBc zD%n+;RirsEj)T#I`i zaCjiXgp)vzAyP+7mZ|SEA!TE`F|67{&Buh-duerkVRaEsl*&N^`vV2TU%)}yRMuD~p(B}LMc6Pd`H!bc zJb3tjtRg1A4-kq*LSAX>FjvI$6W399?^ z*)H1{564*k{kC_mlYFc2aJ9q&jh;lQ+!QF(&yARH1+%<@hrZ0jSI8se&YLo%f(ED-TwV%Z{>Nr&=+>JnwpL{_IPCr-`1a6ncF7Gy36W7Zi zelMWf#V@p-lu#iYR(DmI)GRLziGN-oavh!?Z(#z@W7Pd^k2s7c5cthd8}Kh*J?mMt zmYt^Eo9AZ~;%{$L9ptY=QEPg3ocn>r*=vhQx#F; z&kq&yg?3Kf_PZ~G74k)0V;*9Vg8_Q~n0@!Ap2l`4VDOKmYXDTrC+bqzuoX#5CtG8A z0b@(p!~R-QMvbmdrxw@h?CiuX5V=)LBS`@>XzbpVbpYk{JJ99fD$?mt*Zg+`)d1Qo zHfyUQ3Dx%U3HVc}V9s~X0Po+0iLqAKRb4)XV~GCFE(?czvHN+~F&@-Eoq5Rc4Ck5K z-x}4hnMm&b)DM-m6NP6N@KaRdnJ1|El2ad_>aH7KT;2#*bFcwgWXWo#(;ek2LwexT z*W-NtD`Tg>rpjBrme6tt&$8wbt4{s+8}cb>61Vp*@Ks-w6Zgas*b7_PG%J2;iD31+ z<*qa2+Ny1)AnrW&qoWxxYnWInNFstGCQ-~1Qj^>iyav`>sV=74J<2^`FGZ_nH{{L+F?2(tq=1PyR^*0-%b?Gm%~w;CsfpUO zZdDfMN^M+~L}s>y&K^WOP|5RR{=n1bmQf(N`D4O(3mc2U0;TVwlb z9OUND*?niA=NrscM^~BV61t%1WkMZ{4pjA&qMiAQQQKY`Cd_=jKysuESfP}5d5gIm zXGC7Z6KF`o+AaK~A_8O0Pt^0~a%(uiLxExb&dgJ6`hgZxZV_=g4n>$E*QQ{WHLK;}1mcjbRpgl{!WG1zGFIQ7q+|$McP}7z$VOrcw3R*4m6%#Zx4R^@_Ra3Z2+IB zZWb0n)=dBP3M#~t{=?2vmH2?@4_oSbdWO%{Cd`aZi7=boa5Bch`D(CkzfkQ`*Im%G9w33JeTfBybF*W(6dUNw2egEEu85*i$ff z<*$Pq%wdu5D)jZ(f>+BZVh6nN>t48RmSb?FlyMH#rk;|ZAKNsoi8&BTixH_C6=S$0 zzYu=ShZPWmItBzfLby<&+2@tmomL(!e^4ImA}ZzvW2n{IQ(fr$E0nVD#7+;sJ(9VP z>EA^YxQAz-+6TmE_*{T^(KZ%efJ08}r{cW^Vwxdt`vdSE3yg;D!A07~$LD86m{Teg zrM9UNA=iocx}xU>AO?-JWAbd}gypm4$T9ym^~Fx+Moo*5RJCc(en<=+*v>dKV~_7l3bxJSE=D6AyMXN@q31pmHZ`HPv-T7 z0r}@F=qMzRK-z$U!!86pso=^KBVyY35k??{M5I>Pnw~tqcUUq)`z>z6r(jqlTRt-v#6c$rzWfdoYENjSVEOMyQ$v%|1kttf1SHFz3`_ zMzSYrTsN23?Kv#lZ5(xOX~=Xm2nSh~4h!tWLQr55f-Rdr%%~^^!F%zYSc+lpHYtky z@O_oUO^g%Fb`j_MPQw^oJR%^SscidQte*IjeU+f1;9aMNL*iO7xoFtA6y^6lWXHG@o`v>?i>b+yAsl8E(j7{LT=^QVlQSN{mB-KOHru zT(IAxqzYr*ygBN7?g2boQ3nc4tAE1yzurN`;qjL=Bj-=}lI@U<4xIrF&?$r)KCZEW zO_HVtS4Y*29ZG(Zrsrz-h|67$DK2046PQ^NA1B0pDwkXZVZmdSWFzF5C8$V4Qhq{%^JIX>Nyup&G*-d!F-jeBf4F*^P0R#P$arX?B zdXVgN6<`M;KhS#P*S3W9L4*B<#S*yRTaJ;l2tqG(zj%Y7q+X)}JT<}s#jCTeD$tpa zZ@PeuP)G2ABbi%E@G)ds%%~u_;Ga&AiGo$k*F35yhpNW$hjbFQyx}%|n%*uye>mEj z>R|8r!~hZ)c3guOX+65`Udz(jSBG~&IUqU}V@GU4W2d&{4V^CFlVAJ$WeK(w9oJ9# z;0h_+Jvve>2i!W?|;|@0Q*Vu_ghy zoYytAJH%n=ip<`E3k6|)^$BcYzvrhBB2&a_IaAb6FKHt1@3(nHYtU*7xj2-uX<$GO z;_(via)E!vDs0;;vw=#$42+GtdJ7Qn@gM0T&y+7~$KQY>D=V4d*Z)*J;>VsH)1o-B zFXEe&7ePNIo}Dn`LF4Fz8%zkknO1D0tGyGqFnrs5UV03{-0#;1MIa*0)|AL$9^#S9 zs59xn%I-Ecf$*w@DqP^bWj106Ur4kf2hL4u4cdMK`{9uE6Txk>L*MHge$@jsv0W2N zn#Yuk-~V8h+qz6>k8&!VQ@hA>ZRoB}3JcKFgvsGqn%_ zVN7@-|Cw-ftXv`OiC1eO;?-Rfd3n^3OI}7TNyTIWdOvq8>M((>;B7O;D6$y(()9sN zj(Bw}mz4Kph|x^ku#M!>-sh{V?xDj_8I01tB|E~^u6^iI|1%hd+csf_W)peB3geHh z7MV$Us5nTLeBQFD03$9MMz#b37C87LHc}$Y4h_q7g9s@wvfhCTkt$b~UTqqcmhP_u z_8RWGs??HAOw$zq<9r)+({##Ut+K^i?xc!|JAlNKLq*SeJ9k`d_0x(H~8ef8O}vU>tQvVbL0oFp+0S z`C{x(tdSTDS$GLzt0YgW1}lM%>iru2f}5{04kDZ5WSbR%Upif|*b6fys-#0@e88+I zoBw($vn`}{JF08Cpqn%E=TL}gLe$_q>C=u7X-dtn5h}1Jc(+C0^$4zAc;sG$E2dXO zWRm3PMpvNz&3!L^t|W{?8hj*eCwQeqkE5J+`=&U_xe?`o)E4@d)b_PSYNxC+edsHD zIeM}wTm{72{76)o544PanOC^$3kQ{0pb~e8I}@OQg^-?0sYO`$_5+OrK@G=9771(B z;SYT6;WG@?~~+J{#zm$s`TC#*|=Du zJCd{)EX$hc#pG|pmud|lojf^}Viy*Qdx`{~NFUs{ra%J76!+k)T3R^YFBnmp-$_v# zJh5?Y&rtW`y3$M-eH#WJhSNdv1_>Y!lgH`&PwAX_WO*BHUlLn$Ofut$%yt%3FIA{t zyI3i6ZhCcIf)iYC5(*mPy^48;}4+Vb$o3^qKy7P;|x<^I*+^vKK<2DZQJGdQ& z>F9@MA&2Ba|JKemtalNXSR2ysMt=G&%oAs{@|h<^eFJ&8YMV-4)U}V&>wqGEg$jSf zE9hWPDtohjf+ARdJ*YV$JBX}Zi4*5>o)YxZ*-oQrjHdo>n#-qhRu)} z7=C?xZ$x@LFi2x6RoR$5?3s1f5^I-cR4sP2BE0s2uyA+v8Pjj4ahq>jfn)SZUo|g&AS5?kuxN2ko67ZOeMo zWuZskGHIsBx23eIwVz#X@WVWv=H!eQi4!H6&>&3f7U(r9b*}%qlzch?sLca129>J! z*wjV{${wttJGU%i;}sF6P|k7g$N7U&rVYo+O4&m{iHk$Cb=D;n~NtEviE*L#D9M-*_# zu5p9cG@fN^L%eQB&>;A>;z{TehB=G#85DrqKij-kBDssN1|kUwyZVNYrWg&2s;Miu)YFR-hjHSa z1%L4Txgk5U4|N^bZV7r1GFRpsY&t7#5v500n02VfWH_K`xN3MYqdTQ?(g0ZfPJ2$B zQqk;_!~g!jVvE-ZVSNzBkR)dGP5p3OtD@SY+2njj5TBP)5-ZsIH4BKbwE3E2%KC+L zKafouMiv&3^HMk$xPM+u)s0&tO9_cXnK03GaL?I!A*$70a9qnpu=HFVk%sm!pdHKA!mSw2Zq z&uh}CRvPoGd6vclL@^e;qqm+ab^o0iK&lp6__z=Ajtx*yC5YgxyC{O^FPqr*7J0SH z{y9^XDw-YiuzS;{wsom-p*7M&0cvBZy!An0hwX>>oHh9)Rc75q5-TE*D%F&_j4i^M zac{1+OPG7SwIB`)ckiv|k4;$Zp%FUS+{(Fq`tbcmUGa3I`fo@EpV2PuIG-$S>-$@N z?F~&ed;!v4s0GM6Q@=S*o4W<@)F}KOjH1QVkK+`2^{2-L`X?99WH}> zh5ID1x`4sEobDFl(+$<)FPf11v%R`Ot2bmwIJ5j|E%mOS_?Nv~c$9z;?txx7;I{p* zTMlRI)WQ>39y*^y2klh43$ux22?|D>Pshhcto}nK7Q34eS!rS$s(occ3 zNiHO?mg?8*xuhgA)mSi+pa^49XH?UHw9A_@0RODM(3($MSX+F@2S3MeQR%Awy*HYFyno>i-a;$l!dN9=+bBJ)77#}BAr#^TC0vs#1~%~{9^N80025>Fa1 z31A#q$!^2Ob;Vc71x{n5)h$_qR0IITnRGH4%|oA^n5SZNncwM|mp8P9IF++{D2}G= zU(O6u-IDnE(L`;d<$B6}+O0k+B-eNFe%OX(dS`05U*EW2gZfrU52R>>6PzD>mS+#p z)BX6^l?xk`=v^yVG5(mm&j1$Nt^I!VM9?DWnBjv2kdiq{l*BuMjBhdNNgO4YeV%^) z0xK--94>7F?;kF49u1C%LlB%r85%{SusrEHW)~X}k^G3JvU}HWXYiW-21xCzfQXzX z^itXD<5p3IL2NJMM1nu!d2nTcPZ0!=GQrxW1ews`R)jc|?W6hu56D?Fq<@0CB`BLq=F?&=KtOGU9zwrH-;cH$PvKr3PcM^0>$TP=cjZajEWf(A&Ir+(u z(h6wO)nWFDK@x@3kuu#G5Pv7sw5yjuDhS`+Hdlh1;+LoJ)Xz0Zr`PDMe-l%J`4t!h zxUW%RV#kOL`=I~sFt}UpRq8g!Yr>`%s>t5PmG%bV_)jHqWx>8TK7(t0es%p3X)JC8 zm4lXg1-q7A?pF^380PVgmEsja7N_B&f*)%vb1@0r2HY=JYx*DtT4o?{LSeV}vLt4~ zaU6O(V1+Nj&+Ze17kisNrp}N-i9onx3!haGSd|G#A@YEnTrCbh#J+9MdoigN3m)OI zO^kuCT!eI?P2Xh;Um3n$D^DlPR`#_2a-nTv8ISwvpD;Vgtq>+5PVs<Df1KcD6*C->Ey$ebfEthdvLidY{wHT(L8q4hn_~Cng z0YnlXJyjK`96}!AL;CN8v(d+cvnTudK=R*P{;zRO4xQnsVA7f? zmBSC?f=6FSSz&?$B3a~7T*^{;U#1zDU!V{L?}%*cC{zEEeX{>cCmaj+H+J^_MWHTrV=nBu&?#b21 z_e9c2K1W^4M#Fqs<8M4~E?#p4|2{md`puBRiIb6%CX$4qM$#ddNA%du_IRVt!yIji zlPH-YZ?31TOPSM*Hw8N2>g9Z3vy?1Q>yuFbaB34eqhry^2*=ah0Ev2v`aR^*Tfw`d z*8hCx8x=(2+m6@6xN}vqi5LZojmXwJ4F6_`W&QeD5&e^a!N72H`{CJzbzy4v#EIlQ z)%mvK((-zJw*IpxXd1$z=?H`K;9lD`-;n^4QXTsdQ=`hCD+>Y^17?okAoAv)T#Rq_S)RmuAr7 z#Jf#(J;}l_ulw-|znOMe4kpo0>%BCMs|W-fkhgL#fmdXEx-4J*j{Q!6`7VVR$kE{y zdQ$a$=Ho_p1=aVNe$*W#=QdY_1`MxgB2&+CL+OuvAb5~2XcV)ZRZ#Nj^R6bT8ps_3 z!F&!D5pr!cUoiQqX}eX1x?R{R*2zasj!8T0-T9WatapG`0{2LK1tJaK$p&7SNAJn? ziim+UYv8H^A<%N=ukT790}y^i6lQ)Q#4JMk65p<`mWX=nT~`1kkbv4+8b$)yN>zG} zrVA7ux-B=|26g=UcU>S#$nUP{!FLM=5N}q*R$4af&(#%r-tnVIlAX+&{ z=K)r7N}y~Xj7`gd?UsY@Go<@05|{4_7(BPw;4f9{B&V+*i3XdrTe`)}Y-zOSk$y?) z(%ToQJ4Gf_Z3Xqw@f+^%*VpqN6WO1NBw>Ex8zh1g-;vTxTpG-kcr;`HsH!V?3Grr< zm5Ol*f=tP4Xz&81A=$IE0SWb0`!92Yg-{QfANiWGVt<0CD4w@wsf4LnzFT>Uo-X+- zI1~MvQ}sW;zGx$)9c>=O#bVo}Hh&R$TDO7A-N;uyd7qQB$M;W`T1=wM@gA-qu(;0O zj_E{ZeD!c3nGiP0NS=ARJPFy1MmG`VvOm{5X^4YZ5L4qGE&5#^$$X7Ms-@DIuFg9q zCgwa^MKd#iBceE?@w1Ehd*8ZW;*>0n<>1S)x4TfzaE;HSMLP6Nn1eiTa2ABR*AAZ351f^J>KgC3R(h@YZ ztbU#?|{$OIq}HDtfsJbS&@`WTMqL|pU3}m7{vGCWAq#vQQm z&{|g()|G1snxW(eUF&NJbBz|>?%LSAHaq23eq%Wo-0Y3+&BsrVn4b=fJ7rEnqRV`3 z4{m6?_~P%pz<6N8r@Y{p*+oMU-(KAy@X*!i?1a&_0&sVMgFi0mMUhPRm{{q#ef$hk zZC5o;=#+SJ+{v82$bzNHT0`P@0oK8__(*&siml7(MZX)nXLlrN#Egh2;U1%T;ounG zdR||qQp%-KwNC84nu9H-#t&nS%jwKAfdAbUc(kX>} zYD|$>eGtU%QJBBc zHry;c8l)31|0ranLGwCJ(RqAtr%YDq^gYN0nb6jd2)@h*+cY3$d*)gaAf2{P?CEQW z*=yfw@)=4!ciM9VX}NK3!raStKWC4Lf=)jT=@7^v{JDW zAU&Aen4TG15ZlTfX1VwvY1+12TF@97 zFi{&_W&(UFz>AWlqp9^c-V`~{f@Gqk-Q=Dj672sFQ?Rr9e!#2z>gQbxYRnX^p006f zS`pY&Q7!M^QL4@fEpACPRca$J;3uY$)2_eIwYcpXdi{i@&*co+v{x^cW1K(h{UBYvv-H-DD}J2> zc{lWJP1Kp+JlR>O9vs*#*d?($FlGPb&n{r^z;m9IjFx$#jxlGFm@j-PaC#H$vIp0p zp3sN5jUkN{*givoue#|Xywz93Rp?nk?8A1yWRPoEOzYUkxMZq!g|ebS10uC4WFPL( z^T+^;9eH(#FNi!Nl*k$=G035HpD&?8>FHl{hPBmmhNnvaujQtsAv#30aAaLHT_bgR z&EXaR);uC`StWu?U3f3w{PoJY7&E5`0=Nd=@vYqk*s(R&cdvZ&QUxM6A;;3rh*#R4 z$hb-^*2Do_%7E11E^?5R(+SVCy_!gLe7hYF|2!NBtu{l}AK-SNyTmvhVWS%GJfUf$ zFUM_@P3MEkvciQgKnQKy^p!C?k?x0vlTP#WjtE$SJ_y7op3SqI_#FKHM;Kwk5n`xN zVn?3)LsE9v>lw&nM)n{xT#eN?9Q)HMb0_Ps@hTkKiYEPlKhcUwnELW7k{+rys`H6K zIlUJ0IPZXU(r6M!()h13Dl#zC!+|~8G>~>$Obhxldf@UFc8u?4UCiKs_m>`QUD~l$ z9|j9#XwkM?7^+=(bW>)bCviHu$H(#Gz3$BjDiY#IDyMT!!)ox43Xxve3KV;P3^vW_ z{iX+mY=?z=uww=;imTy=bRwkbGcz|%4xO-TE>@u}jx{VVgZ;bm)C91NWo!+uDKU1- zaUBeUxjYLt50}|9A@*r*CF%)l1bFVftdT@KYV=^5<-mq?&l54rH#0AAZJDRJDro9Mo#;Y)r^*NNhXWFaW;z zvX2HmXUmQb=O12!gs*yq4!9c#pbWh2;&FRd*m@V|-{s(ZPl7xqNEm9Ley?A6%Hg;r zV|hn1@dkx}^kG@e7e*Ve^p5{Cnde~tucGq*54Q*|Zr1g8^YlrvU z*3Tc^ic&|TRssnWP5R-qToA^}U^#Cc54qeb7xU~2>IHxB>C|QHp)Hkf1#N_F3*T;8M$zApKb_x}x3se`r)`lk`{N|XnLXSD#XVkkp+Fn9 zVC$v`lDa)q`??4N36oB_Gwc+n$S^`%d91vSl=z1^WmpwV?6pWsBzaVbZW6r}cnoc> z>KvQ7WDo@~uYojp(vo)I(F`Sfndy0%=iC4}o}ZeVJmK&0#-I^vt?TlZU})xYj)q8h zi!=BvxV8G1H58thu44n~8x9Cff88d7)Vle#AaoQjm{4SjP%NE5CY-I)Y^(u#Xw+r1 ze3Q$P6h*YJ#l8b@CxXGU!tq`JvkNf@57=A@ejm5_=djvzmdOC3O4&u?_cN z46JNt&`zc{a~F+6;JnO%!z=UfFLjZPRwcGTmvmB+pHS+qD*>m@1FN3$UlUGbg za2S)nG$hxraZY34&(#v7vSynlE6R^hDydF#Ln##oZcR0Pdp(+=Cy#d#B}doQWc}XP z|JsEyQ(A5Z+x6=0JlO+^N>}PS6P;w^J!UW*s9@61FTKo0*kP)mC9o%n9OBT8vAmjE z?96t|jYj4bPr?`$ln2wdB#i$)Z~zeGXEb{83A=RyiVvJ`**1y z@s1ft5EEY*bOe=kz`uOtXE}WYx!~uk6%Mjgkb4A#c}XrwP%;}=x;DYD09|dgS9z%} zMI=p4WYi%Z8&QIw09px43}i-sCvCD!CQZ`$Fsf*^b8F3FE|YoeQzOyq@t_zYMK#Y& zY7`HGpBiARXub%Oe($#m!A~nl{74>lLAlk?sRQ=4mMpCr>EXJ4-IweYmGSf4%n;eXZc ze?9Ddv9!3@_*iUD9S~bZ^;HCWUBmf@U<1!a#yx|jWc%Bw{@X=k_|juz;q{KL#RxdUM-?h zAtdF|%K^e_+EQxoHFT-m2eQ+7gr?H|a*(|{yg%*vGeb&Tk@6k~n;PnJitlL}Qi)m* zS_u&dGg0$|20ntz$gcedr-H)P7v;2vW4b(CKEVzB6-gZeF&JP3kUFXV`MIC%nJ{*s z5YNgaAY&aAg?>Wm;^hrd7Op3OpCN~Wi5fz3c`RMYI@2j1dADrg(`s&(7@gL-psWav zNV9RSsysfAOiYQ4c|_GNM+T6!F}$%~rEc=?ttSaR$H$Mrc6b_9GF-L710FW* z3@s2!QMPy`l3H40ms&anC0=UNNSz3E-9U#m6$9OtN0#3F7F5q1gbqVvL~F~=G*IBxZVrr9ZH2U(6yix7SlHWDt#mLUtdaiMTcoQj zChn#iyA3B2he0BREeMbP`-kj|a?1Ph@`brVZ!wEr;#+~^urB}r?lr7sUZACDnNG!TuG z`f?pZC5u!r{6s+_j;;iR|AN)iUbt}H%l({3#v_S=YKfpggt{gaT84zRX`gVC1u+ck zs={0co<9R*-K212adwn|k;LVpuyDnbwQ$87Xpm|vcTfzZ9MX7SQi$#m#>m&&eG1wlHgkM1hX><=T zGkeQoDGoyi^R?I?{I=_h>_8)kc8ESvcRkaU&btn9H7#W}SW1eH5Q`hZ|BREu#^h zLI+b}fl)N5I_KwmLudpxsvn*{h`$Ve1HZU47o5g(U{$gi5Ooe5O$>Q<>OZGL|9nGT za%)7{;mFW&_DiF%*bRg)D?%hx2jTs zi~(a^Oxdi6^LIIbtVB&SgDNU8x<+Pu*7DUG{%?=ua19~)TS4KTdJO^k=0(Djy=!%h zE%rKOL24zpKs-4kr*!1rC-Z2nlr{NwCWinozkY2?RWBr{1^tmdjmp|#XyN?2Cf zPW*~5!ykSI$u)BAnyvy25B%9ar9GFXL_yqlf;3WG0Gabv9j;945rGHvoP9RXN>6C? zjwcG^UEf?nndU@7$PZt+zpZJJ0+UESp*{inE#9J;VL}PEDD?dFb}%z1kpkl{c5r7; zE_{cc+N!6b_;GOvB{3HWDs3_0e@4D+-+O=Z5&j*i1QGa&e$8S%74`_r4zu%PcGK{> zi&jfnbz3xt%S}^~ns8a8Nap9$n7{p~Z5uw%MyBy*eVsvV#>xW!uK#A50HnaOc- z{!3dvGban%f4eNJsiUyLh35N9KVdX_2upvDYn3yvc)dowz_daS-5qKO4kII&B18H4 z!Ry?3mMkE@a{(rT>-gD`;a9H{OV}i%Ii0o(D^4{Dj?aofTw3Fx%1B~3bK;Nj!b963 z6$#}O37X^JBabG!!YIx77m{(ycbCn-pB^f+T3wm?^n$i-p1s*VznHNW!o?#K=|b>X zq^UIKr#)RA#0ycJf04+D<%-7vj(B8>h**%BY6|XFkLwKs5igADmQDOJP%{HVtn04N zYfhZu)nPC&vu1G3zt+@(gBS_T=0mdVoqcR8993%Vdx&ff;B3r4(D{7L+2pw^qE0Qn z`aZHNpOuR&^&pk>HZ*tfYdTlFe7&8Q=WHDDq7dyjx%)SNr#uy%+Rw4m>S4O@A6ssS z-Z$S}U$Ygz84q#up-5;BFiDg;r3_v0jqjISVqTr0JgwlGkFb)U6WS>c%)=&JKNo2U zrpp8|SEupWbr^O3d63!0&|5CNo(~moEv|uv(Ulb+*t;uTJALKdv{c>1)`X2EfJ;-y z(i9v%#;{KYtGHzepL>kh{Q3oYkQ?PlN58U z1r;mzTsMLP0s?*TGavmJ504*^A|s{K7Eo;xF};TvK&TDUtm0ykKY4L+rwYn#dAvDV z6o;PTdpO7@DHq&7N(UI8nbTMp6bq5-TfzN-ulWr73{Wt!H`1hvlE-v4Ki>p`qLPmm zkiS=mh-a@`2 zWU22^{`;-cfNX|%nkqNWqCs*>P_lp#C4IB<*`Dr*fEN&hXC4HD@o`(rW5kc8QL~~8E{E+2UVc- zKfML|35jAc%fagRy9r8@V;A}$_P0T=1yei9D9GBoiD*7Sua-brj4v2Lw@NNH(T!8K}uilpNti zU|-Hv{LZ>m{k=_{v_ViiA8=jvMY$_29!aH+fO9{W+V52R9Y?dUqojd zMAuiMkB!TtyzEq*(DCr*)Cnx2zv6|}zMU9Nx|+QB_|sq2TRVIuE?R6v&iqjXZB?>< z&?LSMtc7PHo3H2KyQ&N^bXn_%!X~UU z-2LI?;Q*h*6NS+w1?{lQDxu$m=@QR-s1~}M)L9hywYUQK3-n+bu*PyOA{xPQ;w?Xq zCcA6&>n}DrjQ_Fh_93>`1_xhH4t4%g2ZMI<)=!v}HU}b5B;V`q=vuS@$f2#&Q=n38 zzhozq7#4FbvN3A|QU$A3BzX}rx&RCs=%alM$Me^ANq|ww%T}jTBMvn#+IE$Gm;8mrP~b( zWQj%lgQ@1dSDXq$bE>(~8qWn?rMVuW8#`wwE!_*M>u=ME!6woKmu_cohen|BN{>Hl zB-u@_a$u{S!WMf^YRY{Lh{dGaMmemywG3G^NBlBBXH;8xk_&2JH?wLFm{?kD{$i95 z^j$y?lVxnc=O$*~%|ix;$Nlo06ypp?Q77GST7G$_amsdj-k2Dn?DGFJN0xg)ref1& zWb4Vd;G|nAx1B#!FLy|^bf&*Xibk5Dy1%J!U}+IIh7N2Hr}5lK&kGi%t~2l;ZgKB1 zdUJP~@|isk*N5I?L3Hr8NAE^xdKLK-w>0$q+^h(g7Na{~b3zF^Er~$#@6j(A`Bk>f+s17?v z+i!5k_whd>m|++dRmC+KzDXXY@`kpiL{tonPOj$kmH=xfV?%pWMnwxlCsTl^ovr}T=Rc(uWf(>g5j%Gx zoqt?9S(rE&SlEfaEjt<5IJh|3^m*wl&WAF-XdyR)Q< z^EY4QKRy{U{l}ZA@IP}I8-5?Zc_RV>-wOgbe~%C`n$a`SGZAre{WF#Fe~kU_5)Lyr z)BlxOlD(w$!-=dFzUQg-WPeK7HZYFD{G$9=C$$yci1*V4x|svpNk*v!+_tG*Y?CXANpBg+PyVbh16f(hn* z=wB`_9jOMk;4Q>?4L-!xVqfKoGfO-pm~;w#>;qNt6^Fd~aSf}}C{J=u9~rv3t7O@# zau}tqv0pIdYn&kqF6Cf)wJ=vO><_J-oj!|x%h>f`xKGojX-kalv#xa&0O$JNuCt!k z!vWnso3vhM!K%-e*rpDB$<9}}Ymn=%&%d|pmlvjz{JxrbG8l1vgkB|2u`m7bXa@4U z(TdoE21ciZwWbbUPGjy>RZ~WO)clS>Vl83>h7rsN$jMY?LvK0VD7g8-#7u-HC4{o} ze>y(+zf66En>S?ib>2C3O0AG>xR{+wm z#?{Cgh^nMCK<%^5ng@N$6dpw|?~sqE+!hx2+ous8z`s3OCOIrFKtr(AY8f>Ma0W=V zFhlj+4~>*PbGgr|=O!QQn>ZzV?bgLf+t4?Crvxou6|tvH*I@+nF!8Jtf4UQk}(G<6WG;T`)jy*&ahUA(ryfZ{)2jH%PFfaH@xd9``y+7 z`;dI_raG~#%K=p%z8CawtHmsMPNH%z+)e*BRylI>ls;cg!UwIqc1QVm{ zqs&J>mEBsXM!)*OuAz58cIf-~`#dIbkEthDHxtlWi8iH7i9AUuV=_c_5hbv9*`3&V z5RGLLk7%NzgzX){U`8DrB5TH-LtzosazgeD9>FCu?<}QCeC~azOBK~-e`9rEOsPv~ zXy_CzP1Ci+HrAO&>>uYjr_9L!rXa00pRCQ*dx5=wzYeW{*~8ky+i$xg0uio-Wku%y z;Z{B}F89osRnEC}PmPw!Jk7xkW0MdQlhMhJIe=kMPZ8c=;bkC~xJ9^jsN0eu^FPow zXh4(6Z@Vv=GqHcUHO@^z%PbusFH903RI7-Mhfyy^7eSW``E8nKs-djDqQ>lUv%W5l zcCNK!K^Bk3JI`w-u>BTr4X{mssuqn4oEpVyWhZb5@HS5Xt=2dP7h=k|al)RWzL7lk zd2B<3xG~Iu}i1I51DR*QL;znOBodF>tx}*o*XnTZ!Dfya=yzY-3W@ z?#Kr=FLxZ%p^lEFU9}J??##`C5f~gpbqPPtWb?#(8X=y2`NNr?TUjdHj9wff;(uCk zdJNCNL_7s2zYZX-Nfh5!#k$MnaFNn;NzmYIwgvlJw=0H2Q@8J`j&^a8A4?2?gIy;66S66KmBF0`W6az4B{<8nFV987o-2 z6^F<{&t^mP0f`%!I+t!q_h+X5`|8sPP*iX;mmC}(v3lksTKNm%6CGtNfv~Y`n{+y&ZvzBzq> z>WijcVYqY9WV;%t`o6TS2*SZy_98krm_%DOY}B0D`Y5zkSu>k8Vi~6_=0mTbHd`D2 zr5T#?%m6sHXRuR`f?^g;vYQG>zzG2Bo@J1;g$K{X_80mRIeWof%HIvlZ}nVM^P$qw zEikm1KS>0d-U@F{TbWJ`;BE}Unor`&{Vv}Mw+uJV6Gc?MS_T}@Qh;7IlHyo*@iD!C z@0k13UjMv)XvWL0oo=K)CEaV!L28$5hP+o7{rj}~?x6bWsxT0d`qZ|_ZTFGCo{&mi z`e06jUcpwN+>tAj;ZR+`b)orl64CRQZb|ryuM+H8H{A|8KnE=4J;|@=9 zc9M*3NB9x`aes!L47>WOxjliswTXC%x!RDg^PZG5K|HOYs5CYc)a*%uHurEeQ=;q` z@B}2ju&~E|k>U$=Tg{B5UojlJiWwA=C4C1&df}{!5a_#qyol{69bhoLv9dHGXGV{}&!xwx04NAczU6>y6f177;lPD@g{b zT!sS zPp^Ans^x1z(mJmCySa%CtUV3jaY2zNO?HKgdpUa1f!Nd=K6@s@5_b$op0T>n;T-CH zJVRE&R&B}-*Gy#owTaJ0^I9We&a`FhOz%C_wSQQ6TAl#Rsw0Cr>W8lxHr z4c0U!$Vew4hT(QJvoiNkaHGIo$nI`DLHes5AM>fky~rTyIN(CFC9&aNrg#=R$4 z3F{%vf4ijrHE;i)W}BQ`|5UdAUoI)*e+DrVF|)FAbNpB0UiPpTtT)=y>Jzv5%+$=e ztt)3|)-)h-bNWbv!%(yVHyn&L7z_#+G$5F)tu6p4AW$q2Edi&AM5>$U@j;vZVWD+N zJihAHyX)SL&+s|Q&T#UWae5J) z#YU2V`aADRMzkIIpx0gN=eX?!CFhPnywGlRN3p%}R*D)d;{&zJtMO3tv)As5v=o^J zH~2M5y|&YFiFI`{Ruon+&`p=0wzETjJY79N@q{i}?LjEul@$DR;>WH)ulYv_eGua6 zZ2yOMTd&h*D7qdagCE4nt=rCL;)9-!=lIk3EOI6r_@z%buEyg;H=%|7Ho`{?(EvoH zC`#b`Y5WItgyPW5+>c(r2z`o_w`yN&U|l9Y7eHsYfN3ujl&gU=Xwx0;4H-*bindTb zdSV_XO`VN)Z5n)zXD3mje7{9~yn4R{Q=g0dc}!5nM1%??dI)MnkOV2^mY@j>aQ&9W z3)fg&BYLV5mqOv%Jj`>JYV60SR53f!4KK(ancJ-SpwZZb_R-i)>0YwQ=LB{4Dt=R^fAUDv-Qe6k}^H9OK@Uc1EV-WB| z;i=;gu~fM1iL0Gdaoyo7eXH&P?keBP=iiaC=RQT88D#3O5$aPo60IFwHR(~Ba1xKX z{bOrPV^xtUeM`1RHiq~hHx$Q+NLP1%0-iNl>oDcs#oGi6u{G@|w!k*N4vDNoki#@* zOY|}RjRW-53lAP6dDhn$r8V3I6O@`Xk zR29qJ`7+sAl=)Z;?<*wP-nn9=%BJ(W99ZIP{#m(Q`#}T>hA;2D$lrGdcQELoEeu}n zs`_jeFCm#zJKeJ8+T2C2W2as;#Y4*;*`8U175&Ke7Vw*F4O=V^a_$o3{^ z;sidCYV;y$nc6#x2_GK!a*mxZw-ddcbUa--O==c5fL&r=!>YZbv5oRN-7fiX*kc- zXe+`s?o-;>P!M_9Zlb;!a5>D$jsVZj-~2e-8hhDe+8-o$_l9#7la#4vr^jM0Z0Jy+ z`aX)@T>X8MZF$`cO`Xo?yj*GseLlr?i(@WQjrB@4;ug_us^IZjAXDC2>DPIec-m=)|G6Ex&CjB6~ z3p>0=8T-2gvBx-09`AwbsC^LdjH?ggaU4Q2d&v75!oC}&n3VVor5_O9ykO;K=2)Z9 zqP{RJI!U01>IWFxdu(cE`)sqc&{=%f(1+l4(mPA(U)XC`3E|nf88$W_D|08j%>%BU zq3RgUqr#%=h?0ZoKDjaZ10&-k?}xx#i0fpM6rwOOz-^Fk^NcYA9Hql}#+GE-fMBB3 z$RdB@9SzI#8OSgVj;{klYaGOoRWCHUKF6GD?|a6A4eH$4!1((*GV&lA7h6ZRq38`<_ z_d~2tEY=yKby|JU2zR8+Al$Gw3Tt39U~F1N?+_le+0#5NC_PG*FUv&o&NbdtKiEv z=2A<7Ca$|L(rGVIz3leKr;BO;50a8tIVtcY_fdb?P?@jjiqmd&xyj*GsM%H*un~PhwQCQU6}my zr>VC`ig!y_WbQikQF2>34&EDNn!TyU2xd%2Gs}?e4|uxj6j%-f@2zNa7~BW)X|<>; zI~<%-pCV&r%knzO+Nms#TS^?CvPS9O#DKx&z|A&1n>Jw60;f!`3T_+d^-`X!sfScg zuOt<9YxL7H^!t&b&I8vQn>A(MWHj+Y${#;6{w6dLhiN&n?#ZZirE=itH*Fs`SxUd< z6q|W8S~YT*DB+swt#X;$W|wlr9hk`dU{EI=uaYQ;_Ct9#rjKf7(9&E)F`aGXX}h$~ zIo`T9uO4J_3mt5hl`U8a1o0TN5>7#KJ?owGyk6tGeO&MI z+W7^`%6iAUBP<)xzGtO!r9SVp_I^It`8}*_v;#K8DWGAvr{nX?MqOz7#n7{q8r$IL zQGtaL6v?G5sV2bL_Ary@`HRwIJ^89No*Z?XkD0nYM@`CQmGT` zqhDn!pnpW-JDCnxe(pP%4(MjsYyb1|e`eL7kgzu$IE%)lLIp)&pU0UYEcuZ(sQDpn zx<}dVMn?5+cEA`oA%A1SH;+o_gMMI%Keh-rKEn(=4`a1)xT@kkec5ro+T&U-dD=|H zAzM{o-H~C$jp?2AFsZk=T4aIjmYcfJ6W1)X!0Z6sc&%KcQWiX!E&z|z#KK@jgUQJL zHzjedZxDRK*pQtd?%areT-G}fvyB+G_m!GHx*Nb3l}JnV}VG*RqYWBcmYE_l z(GG)|jpsUU#{eJ&5ze?KJj$zZ%Gr;A^`u2Mh{vIju9IMORjHs7N1i3sB;Fv7j7&#f zxw{-|x%w&klInId-TjA()kVDDeW5wSHvz&Ll_1)8);7+*0QH8IwJfefiJoMB?#iXR zl-{Lp{XYXEn2RH4w!z&t>$^V`Y}nGB2{&j|Lk)bH zelWZaPIbJ_zR5sVl`>jV+r*-|m((Xd#_)( z;W44io_12Cq%l(al()g88A7(~b_`Ma(Z4)?fG+p*{ORKXKoXh=*;#VZKp?ijy5>ky zqeMEhThJiD8sel5bd*o9edzuUJ`3^GW?VYUO!jz{-=J}htnQF6UaA8g4Q4lzZ57rs zg(?FZZ!XdWP-MQtFTes#RCAuV0Hl-aa6M5rREu_EfU~8YX}dwDqNM^xP?!x9#vo)K z!m)GthFP=%g|~)eW2|m7*%nz)Lky5r0P%mDrvPHK1$i*@1|jT?JQI5Mzf+-Op|6_Y z;=b~!AVT`EK5147HwEBI?!Mtr{X_4DeCW&X4D;cB*_u)lQXU1Uet!4OMRA^R!5>+B zXME~DLX&+DVyx*DsQ-hta}4h6d$)Yhv2AzkZ)`j1*tV07ZQHhO+qRvKZ9CKdJGW-; z%>7N>nW}kpUZ1_|>{I($>$8>svPhe5-?$Ebb&~y9sC@NMA`Ix^uQdD5BAeQN=_|ue zV)TVCb=>C}Vjo%Q0UyT8QjucLN-VKWzghKg7uP;D+hN$aXf%E8J4Y_VE$@NW_}IrbJ?ZSf~j4 z<|YIn*%j&lM6MSJfz3{4p{^lf-+tenl()2FynAGMb4cA!JUg=XC+JF{RJYhw1EnQ? zG+iY80j#X43f{E)EAaRJn^ICMsfHXlnI?XG0c@MVZHm>V2YTb2U1>&m z^+kl!>QjC4vhz4w*zzRX;?}~cqx@(dF2pXb7fE3N599oi-rsXZ%O!r~aDVmT z3U=Dto$;{%>M$JHY+r^8NFO?~aE)I%E(*&QQdCMZ#KtD4`9Q?L(Z7E}DYKt8$M;zT zx>bLS#obB^5XL(i{VEZvy(>}3ra3OFT;7{qPUiA%@;;=>eAiQ#u)A*L2x)&v(A8;s zWvptxDr@Fjp+DJvctk_+-r}4}KIO5K{q8b0=H(F6JQ#08MdL0w!U!U}(oPxeOAzr8 zHBq&!w8TG|RLo`9g~&phWosn%ubX6cwH<$TU=-u#71o-J>mV@9Om^h1-dSb8x>4|^ zOVaJr>fQZH5XxK?nWSU&jYs<8P(17qo5=Mu878c85wu z`idqg~^6d|SL@(>c*N(ADs=@nRDL zoTiOpR$a@3aBObXcYg;>KV8IW;@<{z;ustOHe_pJk7UG@)@#b^H{<3{-mhI0@y?Z! zy^u*xmwL2+ft12QyB4X(l%g?(f8cWJDxMR6e*1vI-M3~bEAhZ?_5BlWgKsXpmHAI* z{E>0oS7_-zufRxa4fw zh{d(YjrxkoRE_3IgXHmjtI0nfoOyVgAD{s!R(lssZ?ZK*;SjThHnQKEexT4gN8?Bv zGpJO~_7pECf6Z^osd|LvLxFW;3mCOa`P+zMF7%bC(3si%XI!)*qwP=_Vz; zNfWc0(+@9HAK%w`?tH_At$rJlEx*wl8IZo8NR=tkyhyMK?kR+VIf}<*bLCRP?)_9& zmPFw!Udq5?5wn;@5&`C}Ly<1R(@}Wn|HbdbS?G%==J9`8)pa*oUlLfa&estXgfV$jW?qE(?&axrWRe8M~!K?oMr zpD}8AQ6*pi%Dxd5ObL<4{y_XLWEXT8M=xv#17tM^__yh4&2zNP#yiN^&|ULjNtnY+ zM;P7h!6^FOn;G!vcB3%cC4_I05Szt98EW!b(W`>=S<+9D*)Vm%Vs;cZ=u0!kZsa}t zEF2xAEv4KjGcrPJ80Na|?M_dvLe+)40`YkR2I_E==d!Z%! zBx6a@K}}_Vm`yFS3A5`l>QYLh(8I==HSN2`GS!Uab-5mmV^YJ)#`%U)ec6S(CjZ=I z@))2){D=D15VP3bJ4`=^FVmF1#5KKhYul?`gBB(Pkxd2Y>lXA(d=c}#kjx=xTbW?h zNfqJvxG0150bas* zpIu=RSr*^S-&4Xqhv5qOj+&aH!TePsV|dF?@h1%S@%PcwHR-T(D*edN3ViosQ~qh) z;Ydy&i%%DZ6!lb9n2YV_RYM(h)3ZkRH|WQ}5Q6NI$%^!+(P{aX7j<&`rH#kf48H4G zK>9pWLyGnaigt!IopU05Ze!Piv0x_7AbBGhk#1^iTn=O2wyN%naM+a`Fx}0O(L|cl zkQ=kuV6v4u^}u%h9iYm}TirJ8Wofo3QbL!EiO+abLJtFi(VohgZ$L3FRU#;RR#8tGrWo$$D2j^wDtlv-h(m{$^QWv|)w2 z!9d?6ki}L4$A*yiFc>V9acZW$-gT=JhwXZJs>ANyX7lQzF>DH7_QUi(q+ubMh0EHq zVdPn--c5s<3#uw1aF`9dzM~U;s(y=DO>nLur=cl%W}B&v>s#DC187oC22M5)*a1IEOj-G4=n|fw}VV0Qg2*ElXQL*~4nH$clf#Vfzp6c#qS6k<% zb0$9l?IduxQUPJd@QjU+R0as&}lV&5b}KSdp~ZRR9|r$DF_37 z9m+db?F^BBsFy1(?XggKg_}U3*E?Om7Ap?CjljXr)?yRkKBa=a(rSPDGj4P}16h@x zaLP!k0kC&SiQ3+3YbKP!`$UlSmSi(X~Q--I}ACm>E+P7q6ob-i>3@dQ_;O!1*yW8ZR!aLRy0w|Ks53r7Ct}ZptL0ZMn0LhA>Q@ zC3{Tv9X8C56-9Qd5sk0+1?zErUpz)cf0P zuWHcei~V-pfqr+=EZ?AJEyg%|*a9v~aFid87?7Hb2{3MLqg@V&|NF7&EkYt4gZ~1@O^-yh20p(7{*^ z4aM34TaFF!G)3STqzr1<-~MeSUcpNkwkDP}%y|p{0X&27BVZru5(MThCuW>~jW|d4 zx9pdvKUbW1=H-iig!f+9)#{QTzs)(1=C95Uy`u+m`pY+y0!H3N$0+BSUMH6(?!_GT zq!)JT`%qedo#34DW5t=N9^djM2ZxJ_gS_4As84KlXJ$$a0$!EOQTI@cz;|S;yykrI zh~g+}on(*SU?7}<^dDLGAn!U=TQlYLhb-_s&DEb;z`vDce}Lt}<>78B(Dfz?X$jLd zX4B>WJ^_-^ueERwAVj9i@HAYAwjVLvck>*I^c->>jdC5$lKj#3LPg5+hTdTDlzyBM zq?8|36EfOTItZI}_`O}6EwQoqtjN0bAnV);lvz(vFg!fxjF`LJ$Dl1G(Fi)~XA@q4 zH^yx3ND^-I0|Ih=&{>KxH8UoLJlXbFC3oc13t1t#p4o)y(FQ_1F{$0`4-6(_{)iqG3=$VZL$8{^lI7!}C_z1Qt+5CU)an+Jk6XW{$D zGyW8l2~VfR+7w(a*c2#E^!M$FQ%lo_-qT0-@bv|Gf~}{6je~=_J|;+)YB9ZZXC}MX zUP?o8q|MBX3FDttH2@n`_pfrq!JXAG=xt#NRR?GbCtDVx(shN)isf?3a`|~B>9%Cj=E7`k_ z?E|a|3Lpb>Tyuv-7L+PdT}65G>+^6$`7`>B4I)f;ABA-xse42pec(X)&v&%U&flcej2_@AhrV5ez6ltd@Ff(TJ_^o zjpO$`R5kJ*cL{>5xRIg@sBD9|{kX^+*6>`f!~{%qs{`l`DUMYqtq%*=TN#+=7Z>5$ z>(N6U&rws7k)4k@Ve&LRx8TcRL0e&L;1DQ1*BWi*rbEz>{0RErXNNqNq8-2Sv(sP9 z_o4>Rf#S%R()-bK;@&B)Uv)EF})*J#gH6h1=X9}JXJkZvvxbdCn$l}aSI-}Y^;p2ziRiLR`(n|Vf=k|WkM=h1h4JcrFas(h zJR0(}i;f%cW?Oj1l-upz`Bi}c>-7QuC#omlI>6^$;X8Vu2PG8@a=OM-@wMbKn-35N zaY*#!RGxT-bc^M_i!IKR09H5hO7hNht*P&9H8MWp>+ zk_6gm{~59Wmc#S$?bDHBPulU4=NfNQAiw+E%g6jwQrCj4iM$mCzq{c{Ya@nGFmS^D zHuNGTbVBjH6$w6z^w2QF>oyw9~UOwG@6zLDdQP z1JA?t2_@!=3g%kX$rZi%HTE94cO%p%(zYkkHx36p)0;~pC_@G#P$DW3RTcR(nx{ z3+HZMKMTnWzhXn;+jQoRw~$pk4b8Q9zDvbiblc7PCy)3KU-7%F6kXco!Mv@<=rQm_ ztgof6Vx8X(QFczz<5Nh$#VtJ!?qHXOv~)M(h9_ZNa(#+%+u?k$4p#NO(6|~bFDv5f zy98K9#cW+|cP(K2Y03TU*Wl}Lc64mz9SBbIORL-JFa`Hyav5=Ufs3}*#lKMp>3C*i zxxBItecdzj_P`Z-P55&+Xu7?M)H3LPBf?eqm&tZ$`LQCALN)wNElaEI=-+On_jvb=e-wXZx3;xs2x&v2g7QJQh zlw%#AKb9^LcC=xhEL~Unr=JFLQ@gc+qM^u`44m*Hqki<>1=;qEZHq|!wE=75*Ym#3 z1DcL(M@by&JYUYcqCO7$dh$T4hXRsr2X*AU4N>g<&vv=aB|dr+;gXljZP1 z8y|%y=i>;&a7v5K>c4E!qvl1NYM%twqL1r{Sq8n&Y3GOk;{W7qhw{!5vOGmBCqg@6 zeDO;D0(k`bM1{+r*wGqTC#D~WZ6Rb^lnwZE?nIt@X?+stiq@{tj?`4wTv+0k5wiBa zcUdZ%9`Sbaev^&jLVR@Y4n)`~bcOEO?}W&}Bk4nz9BwOBG;gP!VI!_n*hu+&e$9-E zv(4CPsAcRq-8kc^wN;W`uVo#zc4uX~fsCbjLHADe9z}_dp1-ss)D6xX=xYpHR|!5B z@C>T!iAn1(&gG&fD3WB{%a#i_NpOO<%3Eto$a{0wn*sVp0!jdXGb8IkFypA~c3!uB zWKA+vHK8#UEb`J3fv+iyPBU3Z3zOxj9}zHZZk5M`L%yIMh33eb85L)tp{OZPvh=F} zW998MavfJgbwjXZpsY_Frz{sOX{!-{TpV{pj2(S2pE6(@%m>@>-ST@!ukWI~uZ|4? zxA8~0+WfquoO}g*yXnFdL^U7Kz}w&C>#so$>kHp_U8i2&jO|+LfT!y7Ey2a>k6qsU zt@Fw9`R@G(C36=e5GRk~lCw8FES*PArx5oB_lWipkE~~tYudbwmh08-^JLBEi`52) z89L<-l{%#|oGzR&=Qe{%g%!g;P!}HfEBN0#?6;pv@00=)j2brTzZ$E(w1u_(CoWVp zEa-CuJXmP!OlP5-As*Kq%Koqgyj`$7fVqG=d6>w@bOg6wqAdc?82A4E>i}r#U$Y!Z z_j-$@TGHARL1x9Xyu*%Rb$b*`?}X0WlS@eXDjcK6wYiHY&**%SOTgfnJK%9{9P~Iy zL%x=6Y$ob?9vkq!MhW@YE*QyX;&C`oUznB6X2tiuqukFU2aih5yA%@U>ilGoM_9tQ z;9c|yEe{dow*k6K6YAk+b{1czPAHob?&XCE)Du36a7B#SZLNZ0p)HRv)qBxaYtb!( zWF6|zJagW3RQ&bf%%F06$$=LD;0A4`h_<~7osfZ1{JHnL!B$aM_eLtZbrvxN+r52H zA-6kbD|IajizdH~s2ZRFw+Lakxjl>00{R#v`Zh0CORt=E5vn_jrn^jzGeOo09`KFR zoVi%_5B7_{T=#!+)Bu#Cp`j8547U*BePQKl%o*#%{9aqxe9sJ-ukv%o6rWm&Q zqd(+--m$Cn9nr~2{ETOYn%9C#JMJ^V@q}+utCFD`@LA5f%n3F@3+h-R$Z#PkS;=VN zn<2&=Cxlj@tpCAoR2NGH*S%<(^BvoVzPt^laKa6PzctOt@UJRyhHC%w1|M#eS%*j^ zs=c4$@zO>Bp=h7%Fg4L$Xg29!n=t~z{-KTaAF2>LK5xM+x^>x`0!NH?h!SxV+=BPL zN(G#tWP)J zlg9gnK5I4hZ4GfUpKtb?y__oGti4osF3zc<2MoGi*)90NH|6cJ zArt)EStuNo*QY^*iUyE_XglVcy9!co%FQ~qRnShuHQTdQ!r#4p!HQWQA`HkVif;`- z>L`0Em9VdFWn~NVw$*>A(1)&_*Xtv3u3Mhx(|=+v39~E;Mlhq;S*b;&<+@F)1OvmI zO+qg`k0wNB*Uu@ka#qH>vzx89zSL}iF~5j=2R%~$&?^t}KKkT_X%T@5&(|s~ivxUg zH98vTx&!9`aRsa}&cl$RP$Gv?mK0iF%WG^fH)CztMU$YxSBgidNX7EhZfUT(9((PW zY~&a8WhkQuUHU~=>v9Exymn(+?7c0iN6?cbxM#*fQgsf}4rtp-F?Z+U?aY?U8^ekN zxit?G3?f%FIz7$aCF+{lS<36-1rb=glxi9I<_i<2^cB~Wflw5sNcPnS=sO1z#fo=0 zBjlOm2sF0*ap3-)Gt})lcdM9}4Q?Cgd8%$KoL+944c5XkUBdBJR)AEcklI&Cl}Qey z_athu&>DJJRReu|=5amE{Vp05)FuU$%v z5+|_kSiac2w#F5UOH1hVBEAg*Q=l^MtCC9$dH%Hn?@t1od9p^qDMzzAnnexX^Ct`< z00j!QsM9rJx`9y2>Zg%c(J^t)+wul|NY&QbaI+rFL-qbGO#+=l>=+7q=uo8DNy3xpLf0~ppH|_w6siB1v$|Clw6>ZL6xZI`bSlAxD57>O~$C`$R zbQo_34OO!QQmPgtcz?v59eh3p;*zrpFtMPZ%q@sVHGd*&sGjkww@!$}P<7R(bq(`18`I7rM7Z*tm zya;jf!psQ$fV5bMYijmWa@i{d%*hYFpa#uLc#4mLh6Q}7mN0hUfxYvxoT!;L#cZhg z=`b}VyexX~;43K7d?kt#KC&@h7NXW1q;I2%?oGy5qxupzlyNjhkgGnL$#48i0nLl!vdZ zr6rC-|2m3u{N(_G3=a+fo`w|y8&%cX6&EQ~0z<_-VrA+f#Af-)#wk;GwkT|r^ZJ%V zwAK$jRy?u z91F@4w@OkysicxTDg3Xc#iYQt;N@IU+I7tptX{ejzIg46om?*GfX%#@glZq|MwY)# zrNaXSx4-R`(L0uv`yGf8GsgKeaN(pvTvXbBCr=UqlQOwnMug)LmHjq2*=$(y^bx?| zk1_yp~=Az9R9hMiXogQTk)H?8Ou1By#wF@+H zFO&K`^s4#!jJYSkBaXu)o5a0T56*bWdy3Fw|<=^SVzgm0#m@k4JPI>1TcBq2X?e@&h7+z zwEH#eWil6625l?!Sz8=^YmX7A@4(3-;67vJ7x$4*5TJw}Qz}xVK`k1Lf48JK=8P5+ zyDF3q<@Nat_9kDoDIqE__01DN6{CQ*GTcjjy@8G~2WM)eN_jqG`+_{JHlXkY1dUaZ zO%Vx=IN*CA{JNeM@xV3~74GKA+9k^X?U#ptA3oOjre)4(cb$Csn4c=8fPJtdgUK*R z5B@fUBIDncHN5!Yw4vp&P<$NCpY128cC>-j%%G>(6F;Qs%> z(K!AMZTkzSG5!lqyY=>G<%u`{y&*Z%FU6e-zF2E>u;S5)5N5ElF%FYP21!Ez-% zYGpxOL>g*n8d7emw^J@dazE?jASG8cV}P^O_x{)ny&iH6RIa=NObHEFSG5hbo+ArP zvjg$kUUhugW*-JPNbRKUGaEG=rdVCleXj5+_f95yq^-%E&KCxsKd*6^>_{(Byh-6awmD;MW5PmGdEgTfojn_sTP47_oA7qelDS01x*~1 zn=~9%w$0SHV4MhTQHL40AmFYo-Wr4e)H!NPVjNCXoIFBKtY!9d5R)X?f$`x7Aktg< zh#gOaXR&gQEQq>^I{e5z1a!;e3~u8}_%&id@2J^xD>b~*PUAkkbNU@$Q+8fEY&?9w z&_~=)m`)7W8OAQFzXVOsJ;6K|l`074CE;T|D0oO1ZCE6fTlY3JfXqlGoMZteN=S4+ zFxzAiZd95h^(}0Y2O>%-*F|z0&dt z9ktCG3S8an_AxA3|m~b}P28Yuy zN!nw65ZpJDqv~wip3H8o^0Cum``x0GGC%ewQ$vEIqQ&-LZP-LVrbNX~HL7Iuo_x$UqX zm$(Pw$UEk&w?kBYf$eYgldQQPTsXl)6*ttucXjB`}`Kg$V1hJz=kXG!1_FACqZ57yk;4)-h488SM;>O&zn9D?iJ6&gzr8fhB;B0MOY%H$t4OyB^%6+4O<%t-HYy2D@f z5cf3TMXGT+`ccSN|CP!-iY=Xa-$Lm#aLszUg>uYy_z}!Pw$+eLh~`@HGb!D~{yMKc znE!GjV8TlZuL1tL;W0wCy3-rjjys|LpVt0A{uurpbYN%r_Y?WQW>;iv0~lbtj#Xb) z@u(AcXy%Q%xc_3WrkIoY%X^w~@fSeZNp|WQibZeL)F-bbhO}%HMV_F>Y zNTS2y+u>bk`cG7M%abc<$DC9v9QDuQtBlTpZ6U$#v6XR!aish4XACuf8FvZyA#9QK z;$2R-+jKV>_bZvBZ)`Ot#2GKivj)aVoICq0)DwMMdU09lj^8<1ZNsU<$rxla5o9dx zo!3gKplx^0FrN_R&;PVT|1b+-XZUw6`=55`f1oI=%uN3)iE_zq?WiP@>~!9>^4ZR{ z_1T{ASKR!0?WA+ufWj#u#Oo`REx`#1?Dw;M%WoMT3K8+AC)AlaQr z?NVrW&jBH=(6&F~~Y@en@NU9=9yVEL#aEqU9M#Kl)@xT5a{kx@UHx zrx?iH^pxsWB-z(A zF_k*ioE5CpvT<>C)kkL}*n&0Lmr8;fndP7YAu;vat@cPu-5hovRupHH!|gR%jx}(c znyO^L=-}A!7i*wt_j1p}Yi&=X!&m(hehbkpsux7I=ELG*dhHfCN|u4L+u9qLBQLuh zUZNJ;9l-_6g^2-qkx>|6;A%IViJPe{Elr*--HoJW(%bN8s?8F*L$dM)Lmsy9m|Dfd z*t^@4flv*hxFjW9ZXJhP1D^)M!%vML20F3}i#{1jH+w*2B#=I2VgjmKUDK`C&tq1V zZwM;Ji!50bWMI2L821IWr_J-&Q8QBe57howUTPQ zozC_y{q6I5tFaXn8vpVSo>$YVD%@{~z}~o3(6$_GE!Gj`gu}hY#>Ktvhtpp%?*}9; zm$Z~)Ojrg?7PxvX82BDesY{QsQBV5@8}b~~s6FEXoJO-)T7ibQOjbkixE(=x(h!^C zD}C0bdwp>}s-9#Xqy=b!1(8|XlFLkqh`ggShm`t1E@CoP7K1%pR8&)v1PKv0s9+KF zk3tAV4ajc%W`1N+GqTO4nfc4~g4AB7Jl9?R@f@g?z@Z#$V#$xfl&Av$ui}9R6T#$W zXwFW7Or*Q^6{fb!NK2zwT}<9!9k6OePckq3jeC*)fx;6;m@)vbl|2FP8|aY#iLI8o zAh@m4{x=t_i#f{lGVz8O?M3q5N@Ik+aO&f41EBLQWlOKS2~SI(YsINbgkK&%?V!OC zEUxW=dcs1YVSZ3CC7Hz;Ba=yPW?w%J6pLV9-FoZXOHdrkwmAckEmPDZUra?DRiworf_ z5+78Yim`>EMqqPm@*KRXs$_~&)MN=~giC@IQO0mX&UEqG+Hj>dw_^Q7s&_}jstwzb z4RJt1Lqtc^jLf{WPHQQis_7#KGPi1hU)|C%Gc_hxOKFDv)RT5-dp$7O;h}6G5PLiX z$72Tt+Y3Sii7n4x5w6PXNpGQP%97KCH%WW~4&7SgGN(D0+$G-8%h-C1zS?rk^CP=# zL2@SvEu`F{qIDs=zc+d{92DiX@_6@gQ~j5p#K-#1?-^Wghv7^mYMD(bCO~?EGr9ml zZF*P2L4tL-*7#y-u}PvE8rkIZk!gmB>7obD5ZGSS-po(U>_lRvVz}s!t6JsKM!0Ct z!q!>=IXS-~5J>;`UDUi`gs;9hB9TGS9=>z^csj(Mo$Dv2FFm3cnEfCI{f6BkkVIrE z4)n+%aX9w~erak$zj_5F*T{*vz+8^N(-Y$PEqFI#J4ra?QiBv?PMI$IlM^qe%pUO_yRjQENAWy~KvatnA1B z?vWfsZS$e(!7~3`x&R?FP?=z6Zj2fVS``bHH5%g3Vr0m4i`?+#)M`IbMOYh#tsm4f zTeV}2Lw7&DChh%s4c(G->W$>adsT3)k43WY8l?58oLZ@6Hq6RIN(UVVV52)rT#-yB z(Hr7!0s)z8(?K*&$tDvT5zef^iB_n^X&RHTL?CZRxoDxvb{9(@OAadRhZvv}fo`Eg~vP%!$x0t2d<$k(ko%M^@$7qu62v}@5os(ke+ z^_jE?(sP_qJ`VCI)jnv%v^u@+E(Q88w3?G6r|sHJEYRad77n1zdkJM3AU?PIi`dN!M1qTNrVAC8+wpSN0$p6WA}XS%VA1;#%KCataDUv>s2IGA;7 z;V!st^sY*?r}ML=3sofcof8#;hAD;SRIhiiNOWk@gK^0$Nr$xrCbVFRaNC*gOUJ-K z^KzYIV#*=Am1oy>P24wbw8Oa8fVg5`Y6isyx<*A-;O_A|64@n|U}EQ!{F?_YXf{n8 zUl7(W(L11MiD*;7DTj3y;uaZ23yX_Q*yZpSJBuo>dCF1>`BR^NKF4Qru&r21uH{Zk z(mDYsxpR)N&{v;8rOrxC>Q82PckWhc%@P2&l)qGaByJv=PM@X@inQq4@%h$)sDO-X zL=*`TbA)l-q0rD0MlSnu!?v=jC9)@^aHTq9{xCuc!5{P~ht<-&la@Kn7rwT2f8gez zR?$Vw0}^{{Zj$Z%aEi%;gMA2E4~L&qKg?5i};9YgW8sC0ZyoFjI|ZK(?tK(qEND8S;Bz^_h!8F!GGVG5a@2 zF@?eo$p$DwxH$@8rj9Wq>ZpV!hbdijzK_bbI_5wpWw~W8o3S3#U^3TCI`(HR7u}Is z9QObi#;O=Ve55vDWoSHsQHWCEmId$&(}%3w7V@ zMMWE3(=I~DLP@+9D0t9Lm-ZhBWHq>-c)3A5b}?Qq2|j=AJwtciC6LJQNpu0Q9_AzM zhB0Rd$ebIGy!iz{2V7|mxvV>N@~>AcappQ(o&YZ%Z*hTN$h5GZf$S!cpLGSu75BxAzzDc$C$$lW0h(q>F1{I@x=UMQv z4TJ*Vt3dqV5SU}eqd_#{V9BXSBWw(9rO%rsDH!_DZTwE=ahIvGu`Od*_R&9kgT24m z)x-Y~-C>5sLK+G2Dh(_ha8GB4c@YqS9zZ_1fsK6lc}nv_;A`xfoCItwN}A59Tpasx zwq{J{rKs~U_Jf}V7EQ{xLV`ayc-tp_B!6Vfi}Ct>9*`6V;*;TwS>2&ag9LH(qB0Wm z$RHr*OPiOK3twaRV@Uoskg&@wttI56U!gC!Mr~*SbfEyauN+l1$`^=Mt(Q?F)&_Cl za3f;i6=2It=m4?$u&!Rbx{XGtIXBu`#`ZzX?;B?-?S0f3$mQ!j)W{E-@YiS%{C zl_g6QgxKI1<@j>JbV+8qSWXCzD0pZWnv{Ww#mM$(S6s2h3I9S?PkdbMaNcL%AuaM1 zTGkZQ1mFfR0T{v67E2)P;sE&B;G0BX&ro%#aAi~eqBeb6dex*$yB`PcnNXBve-v(b zyN)H1`}7UvERaE#9_+L(Jqoy5eer(7@CE@OBTs3_aI${>k`lH7XMg{m?&x+RoISJaMryl`SX&DsLtR>9J)9E4IT`x|(sC_G%PtWnn* z{?Md)I=mkN5}p2hNs%;xW>j{KEKfw2^M27mYh6GathI|g*9+c8w7s%ICw9Pv7klEPyO1UsFWMJI=ZGk6+D2r3;F zJ6YrpydlNfa(z&z~bC+cETTq(vO>f8=`U_z6LxLK=m>ArlOIY2{;g)X~Ye)f2w z(&0T<5S=LhX)@-gT^P+BuTY{M&?C|cg^(fYN)vXGX(WJ`n~o&K^f6+)=+14QuOl`a z`zkYE@J%)rgZ$LOLObww-V8ZkM>Jp(nEP}=$pvWFpPztg7fu}wgbD-e?pK7QKPZoH zahFM(owubh^mCM^K)tbJNjhF`*@ShLSAm!Wle;5W6DYtcgDyKxM@`qQwEIK8 zu8`}yID z8aw0`(c=rk6+@+^uv_$@RSBXMgWMs34s;)?;$+#c3yklNI-$jF1iT(8B&tN802dd| zLB&*`h*!2$-Jy?~RG*;NF&=L_`XjL?@x7U6)KCv+_o1GLj=_LWti6Fxkv*Z$w!HvI z>d)DjtxMhBt1PU&>MUTpkzYCD&i=z@yT2mj^nD~eDPNFLJds9`b|IS(K-}O9YdU(0 z`&H*v$5o}DNfGHJG0Gghx81NmDvui4au|!Q9lL}O_!J3w9af3J5ms=cE3_?EHa2~- zZzFvAak&c^**^d_!iLOuG$6LlvZ%6#-UXV-y4TL3LaDNP-QO>xb{2f#BqMq|<{_(( z%#gC;va^>iDdAo&5JMduLVL|RF|BC#$=hjr+FkH=4%eu47$xdXX5U1Qv&SK7hm45m zk}yd@lVF**(>5`#V$U>n5a%0l`(%^%?fYBWTakLtVW-u^b7nVTSlPsJ#-0Y{4dOI( zbr@h)U_novo*8^A*(4i3b9gix-Iy9Gvm>EYRNFVsq-7e`!NerPmy!(tnhLO@yg~YH zs36QDwa=?%1}BViL8tnqS&Ol4FQIyuKXN>T$25XQq3$@bh&o-U=+{ebh!v+I3d1pu zgZQ0Tj%MSfSmzZq@jDU8!DVob2amq_Xj9cIoDl?s`V2A@^ z^Wv`OYls5D^Ny=Mt{OSRSIo3udjN5hdX`9_+~m#ejLUgDVb=38Bu zm*6vvo21HRc&JwpJl$1#Y8Pb>-7)dp4{;&)3is9STttZd9^K#D32GN0b{Su7^SB#Y z{%P>?4?(u<4F9GR{Ie|ZKL#(1j0^zw|0M%tOT*1mQMsG%c+(-lqk(*CxzIYk7)M4* za=j5%)BaRY69l9v2pz6bE>|gb93Ft4RHX7l3;&EA&^kG(Xc{a>rEn41$_?&<>*Psi zD~dN9gk+3sglVZB!V+bWdnV{W;I5CF@0Ifl z*6LBi2h4^sxOjC8*83fgH#kTEKFHYTz4zA^U--fRqA^Vy3kF(|EDbB#zu7@y3TiO9 z+aOBdpcdfJP3fBmG2WcHD@=PAz7&AHMPE^pXYn$Ps(h?U=TmL(lmiO~{S5W8f{COM zu@Hz8_`nx_g$3F~5N+9Y-G)cW_BfS^&>py1FA6*H0;0is*Z~gR4+qZpTv;*x6UUQ> zR$@#)lR_nm&I1|HRTCCUDSLYd`%WE0yWGag#>8vB-`9KBx-pOaO9cF@Z@me&Hk-5d zmDi(j+Skq1YJR*vEY2tGv#wuNa%&%}Qa-Cb#jLUKpO>$PPP%gVPSM`}3%BmEpy9g; zWy%Hp+e%485ng2OjUdkSM$al+lac2z$!F{Hs;JwQ>t?$NtVuD{;ju)Rx2^%uU})whziIArfB0yC#mMnH7 zt&)eVNaKf3XNp;mU)flE*1!+}Y zx9Q5vEsXyLJ^++jlVG?vv=yN6=!exrWrv=Z-uHlW=z z@m>NdIx?638LPAiQQO*8HLC|TZc(N~JeDW}X5^2#){-|5_u!r6RkA*tELJb85apuz zH29uy?B{-oy5pze*5sh>POB1%_sHtGncq0uKQ4N~qNUn6R!eC6SInpZ<#uW~)2S6% z`j_*~Ys;2wCMSA96GgHWje7agy5eQhB8%g(I*Vr9(&s$LUi(USXAfJDhd@__OlA7* z?Gpvht=vQi$NrH;aw08$zY?-6ipKa`7@-^o11T4ztu_Ns3>H*e{3QZ;{6cptD`SSd z`J1LOh_R2!;eUegV7M6&eb|E*0HZ=kC%2C8Ht(j8CnsN|cir9FmA{T8kNg^n7W%U$ z+v5Sg-EsUCfPJ8Kx6_)Re-5oPLmd<}3nEiX<@|O1`pmQ56Le$67lzStPXOTiOicu_ zj4fPFCi>NPFBk(kgNw7!eYQ~Y~ige(0am&xqGb9u>Or0*2^CdL!tXBJun)tQj*GazW5oTP~!_NtHPgOV<5>cq}Y$8AQ(@24g}4W zi_Mh4A?(K?4C)XZ2}+oAD?g-_AK)gybMIe&-9f$s9SAZyqBK0he(tai=ZNvXJC~X$ z<5I7A`pcONw8Q_($drjv=1Ox!UPiLDC3N?o=eNyd%WG2%!%T}f;BRfNt`2%7xJI#AUU&fzj|dd3;J{}TDd}Pbcn`odEE*30@1ny1%85AuL*JPxTT>%uQV)8 zZNOwJ(Fpin->D&Xedv!=3{V=S*zJ1-{0M264ecjZEP!jg2Nh2IeRuzQnG#;lv5 z=cHUHYu<%MIf6yI+yr|36D0?T#TvRsIOPdlBD-)-UcMv?w7-9URPGVqt~=u%>t%RPy=Wn3tEF7bN?QZk^uDL+&%VXc_DiL6U)u&F7l6 z3b)VE5|0@dMo7yvi`{5LTY~f`jJ!m}Ll4bdOrE=hMHzDon@Z}?f@QvkWRPWlycc+x&;InF$GHoeb z=}?q3#5H0Rr^3}gXi`uG=8>kQz&pWIBd(2NvmbR#LL%{YEqtW4YNY(tjvPgwlTLc@z1)szj9W%i>k0 zW7lPi=*@qrNEXnS&E(MwdW>n;Og00_Y@Q{&y@`N0duP->CV<-Ae+dTH?vR1}H`>m@ z$Fr~9@@1>bwr$(CU0t@mW!tu^%jmLgTV1woYx;e2leshZm&u)ECOLbbKj55fJkR>9 z#Z^o=PWjR!1w}8EPJ(gym-`e?A6HIm^efgN|5}42_Th=T7p5z2n>7OM{PTe z;P5a|(OZ~6jL8lNisR!hb{wy7d;aEjWu%$uvE9``6197HclMG#kG#@E^1`CFd-rhg zhW0icN-|X=O{+bAX`VTMYZ2~yr0y?Pv5~j^%|u3G{52YP>}pziCh@g1IewY%s)Tjk z%Qr}$Y#7E0O(TuU7Ks(fF4iJU-o{Uf*>}H6-;Xj56j9`Rs zsYnrw`ZKQ7gaY3W0x&`qy;)O=|_KK_>2Wj91<-m z^BC`%9VXFtTt8Ge5?nk;6wx3bNu>e*k4j(o=>TWPgFxgj{9}ZkLABWi2E5PgcOHF6 z-W^NJiY=baC~roUH2bM~1%IJUFzeYZpwdb!z(Q5hMOCd<3o8A*ZEz)k3L=QBs1H9b zNYK1XqX1^tR1wKyFY`gd>@_)lm|3lT!rJ&Xbc(88R@4Mo*Q70Cw7;oL(w%+vm+h47 zSqOu?8smlp!`b-WY`P?`(_fH#gV;xakmi!?T5tr4(rl|`OyWA z_uK7V(-+et`qDwapq|gC#4~ayM>p$p)!Ey#eCM5S=;j{BaNQln3puj+QZEF(WUMuS zEEM^k?N4p>u%a=74!DoxU@B7S{OB$kn>BK`g2+@{8(j>GTI9VbJ0@3$F}Xz?qIbN5 zy8%V3s~utPi(Wi6*1K!znTlTduSK--m0+yKpV{n8rRGl5zX8_Z6Xa;o4KSf4XsF1= z^P6Z8?M)yHuYl-{mNf>c35I8zQmq?VlVgaTspKDQJJR$*92`U4FXyK#X|t|xHM3v+ zNzVc=gGq=N9x#6^2`FCB>VhP%8dzRTPgC#qJ)d9K+kOhedBLSiFf5Y5cHu=AFcL~@ z?#}=THSMkrvAOaS_Hgp>=uV$R1QDX3LG=A4kqNDguF(Xlp{^CKvG*RqWL6+F{RnCn zy^LS72PU#E*eBr&RJEvL`Lqvue*+)JiEA@JjO%-Y3882WZ60-phb9=uphQxWYosKx z5HZsPCHE1D4rV7$kOQ%-t#j?{PsxNl&)(X*=C=4)@C{gAwKYLvc)r~)7qM2`ZVp0} z0M;e@g&MxkW;wVGEiqpq5+531ryY<1c{j0lr8f@QhHODzl&0qNo5NS?t}V5gMrOq% zO`~o8%T(!l#=*Q^sWcM?^vT%6rC@r+uPVXXA|ldN*3x!zzOcKx4V7&-p^HP)V%0<4 z?B7#=>@-@uT)xiwZOLmWPvJ~Kx~PyCx$hj>`}fD_r6fr8=#GsKjXm0SS)uVuKcz5?SXaj@v$RQNq8#P* zOC6=QAokZfd7{_vt~mJ9OCuX&X^8iv!pZUVnHwnEM}n`Nx&q%)6Mydkm2{KIpug5*a3urA5ctIgB#^ZjH zlv@P0G4t6Vl+MhuonoA(l#>ZsDiRkfH>Q7z+LrLc27^<&Fd1c-wW;)XE zrp}Opd|*TX`BCHVXvFjK9SD_6H&x0mg!j|}G0;03 z;P338svoe@VAcJcBNN)Rei$BjL!|a|SGXLs?Adm^!0fbNPk1{T#VIxwzI=j7KfKTGQ;_q8MhjuP?^RHBHo~`7%5q#9C zzyqF`ID^)+p;^erlO`v#Bb@kY>wv`PcOtS+=9K&{3uUnfF!@8dLYbxsqkvqGI4`Kh zSvsYV|2Qi&bgHJ^*l>sLTjWhc^SY7+4LBN+FElkcmS^rO%Z0|=N7Op%kDK0YV%4Bd zBR+w7kijBLtKX<_Vk^TIW9G7-X4qK)_ zhRnE5jvX^A#moL+K+axXy~%gB&Qd~ty1r8<=y^+*-{_;p?!>)IT6#II8X~BH5dVI1m%2n^`ljDya?Oj^TeK)R6y02~3vh~u68Wy|?5M3eY z2U{HmnI>7WFs`aYc0PvQ9v}g9SxD3ad@5ZW3LW&uWkC!4C>b}@1D(;ri%>t{m0ii5 zD}{0>ntAx{s}(zstonmg?JxmI$rw>>J0H@I?{29sp=MNy7vpQttDv3^5!t&n%Mc3t znz{G_h`I%AW2vl9`7qa3`)9k@N^;431dL9~59=2=DWVFtqhMyFJ=_M0hNM+HT|{}( zhn;Afv_@%fF7F;>iR`4|QBGk50Jk~s)Z!>*G!a8dRe?y-s1)>V`3G1Gd92+u*=$U9 zi;A#(J}X?OC;kW@(M9?lo*dTFh+eT;TaX5AetzcCaC8kFekf@X>nAbT} zK`ZOJs&1mKusWmLNsOR`%m6pdVODHPh>J}Oz1He%OtHc|8CMC*oR8$Y7uMLx27qA` zuRLuzJlP|8N+pT;fDXlM9ram{5GnEX=NkX&YM2K0s_h^Mz; zM0E(T4-S6#Tj5u@Z8 z;`Bf)_^^&C_oZa|lK(n2*NR>sjl{~tseY?O|3%eX*(#gnOwRz7oSH~3P-1t~$Z@se zSYT(i$)sS{_o>HmK{fe^E7CylxgK4fRJzFFdkf}ve=~*SnygTfsjB9C?Nl9ibLLS{ z^bYN-o)ld~j`&IOp?Dx#w%l&W?PLl2%Rr|nby4oD*n(t{a8L*`gE|~kvT9EiWKXRV zS$OYGF{?sHtQG^7!UGNov`UA@GNG3V-$8br>**YPq%p@?SG)P^0n+r`q={Rr=Sx-{ zfIm{X{2iY|NtABAb3Lou^;7L4E;+4XJ|}zGjsusk{g#J^U%Ko^Kv4^aM`yfRZ8Yi7 z(EH3tQH+SlsEg-8-p#~P9S_=(5#(JQ9EBf=4`FO^cbXYABOZD`bS-a}x`BPQLLRL7 zxy}^Lj&gsT*qP1_cGHi(Ad_aHQ%a#puGx+PEny_0E&YN6sAtN9MBePVf@NX4nC8>p zRvF|Pj9NbP)8i@HL0O~Gzi3M$%Cko~Eg?GTrzNmVZ>5rlV8^zBeKA80&Y=CETZy-b z1oxcUbUBP}DujnMerNWlw>S>^CTIS_ElpfXN+$RieG{}{Es65+fa9Lbh`ffJEL1O&*mOKNa@Z*HP*kIs;iq8`n^jq5A~|N(Jxf z9uj`|!7a{3MC5?-LN{el-@->6_$rb7aEB>US+_bp8V5C!$(xJemgSW_S7Wvw&eb7& z0<>+zU2#|r*kuE|^#`=Sgf-{rt)yVQ@ngnscb`yobH-MgS=jh}%#-rk(jP0r3 z=14gQ{s<5LN}RCG1CKZ8?ugu>{7%QMQ5z^5Jr5?avGYAFK<|bmHYEE3k#VK*w|56G zJzs)%(Q!L*y9zt{clHJ!+e~-YoV;HG)gRk_sux@u-AW9AdNuF{lBn6QVD5+zzj)skpqIJG(ac5=i0srd{D7qSo}i$VD0;VT=h^cO9&8r zk~Z`I`C)x{MWT=F&$lDR2o)Q^kr)-)3wz;3cLFKVSD9w(PSc9`f!hhe5427Cjt}J3 zr$Xqt+PV4r+3^PKg^d#`)*nO4fT1<(;Vb%UNbary#0IjXSHzIO9j9dEU0>9UGH*vF zU&y{s&4D7p5m*SY9Hh2`UK^8r&Y3O!MlH1sH{XH$8}d1ROUQw3vkI&M`tB5jBM{VN z`2IIT-UE98!o1A;!HnGC@HJ4JzX8&BbKvayn1`Qt%BP(e{sC}hpTX$3#!k;KAHD10%upwBW`*%aC-In!d`@0I?*Y@0N$ zA(KTb_h^_6CHjs(I_I|67tYJB?eCpzwrnBbyThq#*rg*2+L}A$n`~ErN=Xcn_133LXen1VB*87i`?v84$x$SOd6%swqg|}jO%i=MSD@e$@2$S2uj4BeAGxl77lTXuAvEACm`TAAtRo1H0X<68oj*iY{TAfk7o0E>gwn>eb zlYx%G-}25BY^PmN%e5fq#K{F1m!xQM(wRKDZJGT=n(@)D1k}MRGu|r$^;qx=}>4?$c zU9GK~$u_#HweIGZfPKFG!#}`a6$tJ|*OQ>g7ddP#rtz319WCX>c{{OZ%@yk7;;NgA zPN&pPb4`Lz<-BW6?W&(|-abQay;O`%-gl{)Ob_oN7Y4_m`zTzok9YEaVf8QNx26463KOuCwnQR`RTb-`hOHT zI}mnsCllrefkN0*$ssm@7IXu8mExB1H(cX!&nNqWY=*%tAM(@HJZE*|u21CpHYeJb zNj??68Zo30byQ@E^E7jc=RetnFYCBuT5RPUPg_n}&fL!2PTe}1TV2~-U)}7s+S}Zg zH#=Icwz@ks7&ghVr5|bZXc7QPWmHQHVORUJpFEh{Pg6_>Ux=pyNSZ)>AOj$zP1n{E zZ|8=;R>NT@S69sGM_!Lmd53NK=$#>+S}W_;bps4s7k`E|An@R!tr#H~!e*oi$67P< z)F$X|no(v@sHL5`ywd0UuVD<(Pr(|coms4qB}NgzbllkY)7vp#2ut+SyHj3(%mnK( zbjM$Fzv*_LbNuaL#GQ}kk33HPeTQHe%=5cFcwElf`&MG{-u*tBWeH;o{WT>biM_!a z{tzY{Rzh&b75o_X5v(gTdW_KJVet^3k33N;9u;nXh!hAkwX#|L{@Uqx&ck-LEWCMk zadI8=K5&|Ap+ehtJ&I0hWe@5nLZh2xw9t1lbel}5rGtN!mS_y@uh9QJWcE~V%O!68 z#t=ZqZ4MaeA~m#xL!J)@C%(1I8cM4P(CA&|VK8Kt>4F?sbvGi_LX}=w-g?}NGl$`h z&?SX?j1uYF)65?wfJL7WGz&Ghw~pQ5li_T$AilPNMErP*NbxdmdWPbnjON9!r5)wu z4wuMwBsP3hpc^3g!lq~UnO(}{k_*S{|jfL{is zPDNtB=}&en)Axy!5uBeqs@yXR!x8cQcARhLCf*{PQlXZko>PaZKrmdb2oPxz6~;qZ zWNPN#`!!#c(xP87udx$-u7sGH+EQGh#>M!Pf1#p9n4^|-w3<4ZTl1? zt>GCB#c?z-$g8r!TX8KI6JG;wMPqq@rV>`W;!H=Ey3%dy>7nBfOhGbbl9)q&6&z#y z`=yDAVKl2eH?licJ>y}~c+M0*d}0SMi*!B&67vHTNk7&hb)I>U=^s6zup$%Be9~H0 z&oV$)69&vu&w)jTPypGf?u5c$oTcWz+plM$&Mvmqdu9>|i87=jN6H^=B1VYbagU-j zSlRPO95AHtPkz3ut1(Tu%rT1%y~cP^TqhL18%b}~4F{;J7>Z{Q$R#!h-2yJFT%hP! zo39xWOJ6&H2EtRw#-C8~s3RhThU6h)a%({~J?wzG@49tctEDn7@tkal+sO?4aENpn zs3ZESI>$YOZS^XAh{75x$TZWQV7!|LRVZD?1W5)kJQRQ1!gX|}(z9p{_alK=JX@H} z@{Ya)1&*Z{xPj)y!<=#iK23Jh*POy^OkEWL39^U>{{VllibC!@UI=&w;B%3(8Pv!> z7A}^8%YsfniMaY^>oB^Sk#X-3Qdf%d95*3@Y=Z@u3Jk~>*aNi-&oM)oxvaY&aE~D_Dzsg`i(0)bOSli%0F@G#H~5bfej{~q+fQPjb)*z8 z2UrvJNEJNB0i+DpDD)?WRpc9tW=Q3~mqcZCaVQr#DVGIeK5L&U#>Rlx`Vr^k3NE;5 zxhIQ4%UFPnN05a|W>0b=Rj7vjp>6fqBD3YoR@XWSGu4cP#|Z;1H^V1#x}i;8EP&C& z-+|tF8KF^d6HcfK3*v80u*V%}qY8Sz9Y7N(t$lPh=}Zk1JBm*fv4lD|4%ENaiJM-C z=96z}v(18fryz*pXdgm&pVqSt>&MUg1mW-vuA4#8vrdgYN^Kr@@*txvFSeJ+f5o>6 zF^^xp_rb6gLgvcVNne~8=~_1Y;9>%YE2MT==Qa^w1y}z;VIp1H{CZh?j!LeCyQY86 zjfYh2*2rFVyz=}|S!)TTlR1L@cFQ{3hscvc3v%zP;n~<$@B<0+sdQ*XHfjb!j4&%U z*1qDYhmYC*VPyf#FcUy$dwuIau)nvuAHbMUJM>4Zvo9GQ!5k#sAu<-Tg)F#`5Qg2g zq1-h^3BNigGjSzz-7wg6_UQp8^Dci10INE#z4BpcCaRp@IOb&%`(tGr&tyLwYDLfi zQNDq$e-PoWq*NSO=!CuGZTACB$wnbe4}8o;Aw@3OTSa(>ranUkO3cU~%swNKu~k0q zA+?)y_n}g0=|ay+uZIy*5K|n3d4w98Wa-(CR8xhHl9n|3%Ows+hf1=|qT5)dh4JLb znUm2y=64G7fJDmxw^f8Ir~v`}3Ih2gofRqA2q|H|8S$^>4Wm||mfaHypSsoz82HE| zbjNhzf>HQ=@)O2yEw(1jNkv;%PQ!EX*GMU~(tD|v+qfIN572S<%igj^jVi)3Vz>QP;oRToV&~XSKkX&(n z!t~tkd$hF(8%Whh)`$08kxP4h>iI{@IdHM2n10zp?Nv(VX5}#heuWxpRbV1#zP(4K zi%H1t>WWUMsW3cqld)z&!-zK$K1(K4?fwBRrlgIQ-Pqs*u!|{=o`eVIAyqeDBZBSEu>^+6O$AOM%25ls6#i(u-CjLNfL*itLrt6 zy8&|!XykuFZNwhbMTKUTr)I-MQz$o8A=hhqNv8Kulq z&-%a9Aljasf|g2;6$%ockr)b-v&H)oOOtF{r#)*t8GEWrvkm`*K+v<2&eBw5^H*aD zuFZo2Q-+Z+DJD^rV5J4o%9H8F13pQniR6qNw+iNBLy?6ZHz9i)p43K>Px&LN>uJxB z3B?3k+e)r3I=~A2C!fVNY7bUJ&@-MAC>YX89vViC>UCxP5Y4+d(F!Qf@+naR=+2|g zTVIO>eu4(VDW#sKigjk=k3d^>&9Q~9BlrF85Bu>`&BF8TN*vSv5O{{OSRk^)U&*V+ ztG|-BR95TEu*nf`?jGy+X-bW|`|5=$TxK63n;CA}cK~~E@R>PbLL9-c-{ zBj`)o!Mn|Ve9qeOA4FJ_Ye!~0`W*;+lIaCD>|hpsh#FV$l|I@QHP5U%L~0V}mTB17 zDz~J0?0Q7*?6lVYqcM4NZ$+T^F0m-b8;lk29PZV#YNC&waNhu3Hh4`y@>MZn&1ZN# z*?n^pfS>j})y6M!hK&%_vMVWd(!>#=t8e8UmOAGc-r^WLWb2EE#;Gp*Z{JRDr@xHecV~d5yXoU8S`qX+i z6DuUaS-L9IT1~l9x{1_p>Q&~n?I0KSuj#;LR454I!P6lxcK5*h+`jDG@Vng0*K?0;S*^%DP$lZ!ojgHHf{yei?KLTgpb$6)xB z+5I(}i`TAT>YwiSGYI{g#|N7=V0y&Ni29c&e_j}ldTvbzX1^l0C;2_WhP^|gOFmPP zxjtsoqV<)f1*u+iU}V6N?sbh`g37=@zt=vLLy&vH+z+~+jbT40oc$3(@E0kU8ej`1 zNbj@nG|?NOYc=^d(;R@o_4g-llV1}2CV0Xq&PmIf0hzCfti?9zu7=sN#ncO9uEFf`=-if|J zw-MRRhJA=VQRwBegl6|9pt|zvNmTa(Ji?xgD z&1#AAN0I9p^DZqMd5TA3-4AWqA=O}R_jkD+VH;cN_%gN`tdx%pe9DE88LEHz0*j&l zBh}3O4_9JN=KqekmV=R#^?%XU9&&nltC*&4zh04WNG)u1s?0xau}T?ON)bGO!^POD zK#X?`NontuGztnW-XV+DsZkr=f=9ZF;Q~w@&o10)_#+9`-InvX2Pn@tucD_pY4+i& zYhw%c?ekA_y%y9LJubdnzt_F)`KF(Fubu6nkc8oi(ilarS}VHV)7T*S2}$uFEv-kI za1JNBXriEhr2PQNtG>{8Q8PLQrGToVCl0pOZ+dD^c|U*S()|z-mZj69S>xHp%FGi9 zKmUPSdC?CnlXVLoye+n}?XomXXKk?H1?@;8sr^TPVeW4*hd`_YY`>UBll^Il+k6w$ zGcm1OjltY!<@q*G$c>ONCf_gWdhUJ_|Cmp#+Y4Z)$Vp_**xZTaal(C1dIKL`D~P0&j5WR=hYu|rM?DdQvn z#=nPmnmR%4E#}%$RkqDFapu|u_Ea%@avBx?bgadr%x*I3 z=?_3*KCz)6uY0-UaReT@GNfF9)|iiR;EQy3zgRY^+0q>}V<}X#@-Gdy#hpfJHHaI3h0xVRU-#;EsiiRUaU)K+poMJMR7+x5NV_ zfFdAAYhk>(gn}DX!{-|~k+u9V>%WC9)5pLv#B;9)SzS|`kB1Y>PTNK}1{F0#gK8=) z=_hg#T?8J05fKjL9sEa=Qk*O5e%^b4o=LCTz}J6aYwN%bD{-qo9DE!ebZ2Fi`S-Okk`c9_on|KnIX_ zrnx!Aix?Q7m};&WG|tnd|9h`X(=r=i6sAT5I&%v_5|x|%9!mE04R0I`tuH!)pUZNNN2Vn`n12w z%A=F!($b5%UFE!GLC2is5@2i6O59N<@w~{Yb~toj(WY%ZojALy-GpP{roI#i-66J` zT;6^yIGX^^NXKDM4c3>)Y_h&AWcT8AUtrJA>q%GTb$63kJayjj#Gl#-DIBu?=heLV z5u#*FLv;yFz}-XUXrN^(T?>w(2Jd%u<&k_FY@pYkHKH6^eQxM7h;tQj(uc;@UM9=i z@Wm@Tirkj`Uy519Gd1VpK-U74+sUg{edowYiF~-qgcDa#sUfaUDZe(UAXcEjOIyN) zM^Rl|e55S{2<4z6gKgsxfYOk%K8jOLtxBK`QIiQtrVCE6OJ#qgiCFv=@B1qkS${Ag zIUs&b(e^_bHp1EoPl*hMili;YkWB3!OsS zAE#tx%2+3uqK$+h4W(-A!~yG!8#T4V$<$L0gWKUTud4uh&1~=N%ms4}lV+_3c(aKe zh4NEg-Bj-{Z>P`bvKfsXb_;&?Nd70{zb42uNxFD;PYe0KvZq-W7hX5KMSR|P>r$*) zXdizc)htq6Krf4X=J*=FiFe?A#b;!sI<8P73!!F)AQ%PpLWA(cA1$8e_#C*qQsOZG zn(?NUS!(C3$Qf5!y0_9Uebv6^Ttg?7B1cbfuS1XpUmB>#VCbgB^>O-KZ@6peZs2<@ zJOH8%0jUk-^AKn#>97t1`d)QgPgJ~HE*4V+!8*Yu8T*#h*KN1^T$>tIN~w0am?Dk4 zfO(fr*Zz!-R#r%lsJ##Nc=N!5&m}LHYgcX;lAlRg7^Hr`Sy`8m{i*hLv+`~Pi4bnY z`homIbk4;fQ}Z11`({N_vtQ^hgU-K)8e#D8{DS3I2J`_Q0g_&yBaj+rQZT!hxfuV) zP`8j%Q#&x0c>1txxDX;yOR{Cb^j0o}H%1$dgDPm=T}Ytgz2R@<=aNQa&iUrePnkAj z@mj-IQ@6|SudUF^53YsmLzy@;j_Hj1N*_phj;U&z35DFo)YfdR8C>@lr7JaS79PUn_)>y)v z0a#5(y|IL^ki41ER<+uMEBe7}m*_y9%LT^;*Ot7ED0xHwt24ZF>2DOQHYC%&QOxP8 zK_7#5sMTjD`KX+y1aoKJ^$=ryQ699vw%Qd$x~2}Dg7912xK^)`1NybP{f1AvPJ~}K znMnq$el5F0PiP!$f*MYQEkkZ2c<1)CU7ib_*Zs1R9rs-!a#KPKA7{b{Qz#2z2)Jt) zinp@EE6!yKZ6_gVp_Le%7^n=CaXkBnl{wbqEzmj(?61wKIC#EpH~cl}*7RM=F<1*e z-X;3ix5r#a*OBGxd?O{6xDuTd%H)9l3cfM~&Kq;&(rbTi;qHR6vnPz*QH9-xll7cqoHOpvslsu{_o5x~nb=LD$~q>S`r;%q3u; zTu$bNg+I}?EvK(Evam70oG0jG`^v^X5WNVlrj&fH35W4%<}XN>j0iYwVlz_hAYlun zR?JZrrpN{BH^{Dnvm%H27nC%{=X-i*nWd7Ktuq!$ru5X*iLnr-Gdnppf94TT=`n%Q zbgMgcUpEN7f zVnF(dxJo3qTquX~5 z%zDypwAJ6DFlP|k-3HJjj8ED(WoFZ595I|RjQvI7V#L!@8XRf~LPC8c?FA+t7LhaV z5VfT$7S3d%Yf+Ru0O)7zJ0o=BNggMg_D$K<>b%I9GxPjBp&QFuCFBXl-~F89?*t!R zN;X$#X&YUhtc4ONC6+=;*(I_glGrDrS$(Bd1PgH2w(6G5AqY5Z_-b&vE_fF?LX z@#ff`pyB23z5Eqzga}35Y&NGvR$GQeuD=bcP+Zd|| zKuf}7AY`KSz6+Gmv_q1E%ZW&hzwn)49PWD)AR0>aU+|Ay?NF`XiF zaC(Q>#bs=K_Kd{^B|{i+zdn3y%W1&E^_@n*_U(sp6$ZH@4l3GSBol;4O@IFVN>tVKq?vNr9DNRK17kk~txOnv*gP)U#oKTlLqrH5k_(}8p zfvOzn9tQXpMa>t~b&o?mTT`Y>F*F6{`pm3C)FvAo@ZBd}J`S|*Q0`#GvEKP`Nv~Ok z9-vl*j}kbHu!A#1WQj=TR34Csc2DV+)Y6So_AwkStQ?hU|HY+q>^vKNk(!#DdX|{9 z>dA*~nl*(V0aP;Q@-YA}O+f^0MNp`2J^)G)j0g9wEzMg_-ox|Sey~A>E|@xB+k|7B zEao0yb05&@++YmK!D`mGGn~bsFvlKO;s73O z?}Fc~zR1`TVmw}>7G=*%HH@ej2}D6ZI>aw_*RF^xvca{(*u_f_cf)$hTP5ot(6GbH zOkEaB}=h>xzN z5?0hIG9*ToIgB-%p;@@qR-!k=QZIhB-6cHm$PN!_Ygq&fzVOwe{`f4x?UOM5G~K>< z`Y7EhW-TdWtxAHVwTy&AfNkK<@|!)$BHTk|(oP$>O5?|U6NkI<&pceIzj`1+lb_1! zOzA<8lulv4LgZ?%7->=Z!9=S%pn??-TV4_l0|?bS5@}Cv}wwq z;xg*{W2Fr?O#GUikJ@BUyDPQJ!U(D`kEsnTDfJ9CY`C*Tq9+BM3k>(?a)L0uH2v|o z6njeo>P^PrRL2-}b)X4Lm}I<;Xu*XF>G)>2sehx@ArzL$mng)kqZ86QqT|9S^wIHw zm0d&T#80~wDR~hr+91SJ={JVxq_zyx)rnQ1>6xkn{N1gc%@1NKu9=!xUmP#5`cVMn35D7Z%!x`({k}Vp zRDz3V8AQW2zaHAp&o6JwZ~eH3FyJtNJE2IseZFG58zJH4fUi3cghSh_N~^hjDByW3 zztOx#gV;-`%VJf(P}7p19uE=ETzJGE7cEZto-w{u@T>k>_}$S9n(lc&;K-{;ncA z{gdltsgb9%7GWx}jeDBPAJy1p-@X_&qRZm$posNh5)Ur`w#V$D<&JfamFw;tr_)|; zUcDG~8RNdsP8;Qk%(uxGZSf>6FY&8rze_o^L-8k8jY$K#wAj#5zoDmZ02c?tCIRE| z%e-j~myYzaiCM-5mWnJw>4Ztss+`$eVyc<6!U9gTWv9HPu_k>CkQ~ZXml^i3Jr=f^ zCzcg?lL?WpZmn5hUOj2H3p~h7(()+g4_+3qFlj6^*=>Fue}C_;c?i(zWZ5h&jQ^Ju>*n8$~hpAAeld$XS!VK@RIQW&Ww~`LCwa|0Xlx zWd3)*=%3p|{|8|GQrk;cMWQ<|gN1^N;yRc#7)(;wU8>iRkPv3^ZQr#Jr6JvP(DZ&Fr==Gdb6uCFJ%8oqIm(!)yNo*?C#IB(lMwW!snu923uP%j`Ds) z!6%P-^?7;hhaMyXNW#+iMV57q>P?6BrgjRcu7JNrcA8B^kK#*bZc;w!ixky1o3j!4 zVl_$JUE51-o|dJvuT@}z)iK`NP=bJZ>3krQW@$rT{Q$=N((9OS&mc4um`(8(rYO{S zT^A!3#O~5Of2apRe_o7lq;GacAc`0LOqyO+O(2TC`bI0Csy238;OtU+_L{&6r6{ZN zH}+O}ThSZBwzd353=*kIv6x0xR%s~W!S%=#+yn5g_0!aie`|s-dsjTDuK3QRRy+v$1ZtgMiuYK#fVl7Olv=Da#){iJ<|s%HKyw zc(G8W2y>Q5yEUH=X1*a44%0LQUrIIG$M9(>uNHLP+;D-1eG4Vb1}o=e1Sl}Ot|H52 zwwR%tb|>tf(RMv-t5!|vXyZkD7ugp!aU+@s3{-Sfy9AN3VlHzvvHc@01Qj{XnB|ZR1jEL}mn@lQjbuSC znT#sOj?s{K1 zZDfNNw6kC|g~#8y&%G!fEr_vGAvDVmT+iOV~=ow$R4tnaAZY}4I-h%u-8M) z%*ogsOgBuDmJ^m+W=#Wcu#+{}n+?k5n@#y> z0(sTbWHUc#u(k3eo>K8NMK$(m!>X7hs?0}> zTtPli#jYT#;F8nb6n(*Q0TnA8P9PpyZ}Z_$k3CeJn!0E7*U>A)jc_t0(t{t zOr;Gvyk93YbX0YvlNzXZlT#LCj&DBMhF4xGZ~}F~AxD@gmSLaF7h${q9)_n4d7W$U zFc8;{nDVeB2-^GJRcMQ40rY80py^S)Q+kpc0iX} zkKqb|%rTy^ub$BbiMg(}JQ~9P#&v-56>^az9}-rBdvjH4&bn(r0Ks?WIKlo#^zWHJW{VvL&nk#vgI)bWC@7)^fJ_G9l(dA z`>dD_&$0IALS`Ezi%aFRqzR<*C^m|N zE~#IbG`9R~v=IZ7OCbemXD~uSuS6S`3eHLh$1HUispxF^RkE8RAu-e2N0FDVFW@s2 z27huPhJmN7pb@v+`)bNv*8_pMII zX&};S;#n_(Q>7rSV8Hq|8W{T<_49-PH-pP|a=GB|_!kllP7{fy7P%UUE>`+)BsxUq zsI-r}8hSDehwBGb`NFO1!`0EBD^q%BsNtSoxG32J)`tTJ$P9q*;qGw`%}vPTzSpFs{=5Cfnxvmes)4y zn-ll*m~rVWWe*0YV4iCE?&aVMXOj?@R;Btaf`n5%ig~e1DG}aE0=WhJq&eJV9~@l9 zzh>8z{N%<^<@(M%NpUk=dNah#biVAUb&<)jKIyk_I3Pmcqyi4z05q~G0aZxerGgG zG3IBPz^|O`(5j`_rMg5`VX>d34ivZ3w~D8kFs27#U%0MEv_IfS@b^f>CT6B<_#npx z=Sl8o=xpvwsn2$sgi$gs8Y#(}uu3&DTPP3ykc7ys!h$Ba9WHVb=RO%*3H^;A&0t~E z5v-$W>Z_+c`02B|5XIiDt;2zX{^2&UBfHdje0+`LeN|rn*zMSazSIcfCue&(@{AJ8 zSx0(&S>AL_;P)5=$Qm*?`S1kaMO2aUmja;=FZ%7|WppOGOzUN8RaGf9SAD|zZ_wE` z@-OJzm8gL=70wLx#!4wqRz_IEUT-eR^uR^ofk_A*t%Rvri7R}c4x+{+`zB6pxF|dW zBsIh8VGznfk{*C7yMzFG>BtEt-Ulv?(FtG;h#_aR`l|*27pDX>>j@N;KyGelFoxTe zsd7lxA{HZskuoJc2;IyDQsZPMAI+`{XVEWk;&ri*H(9OgnJlmNtZpj*TgH!uXY(TA z^D+}?vRiAa#l&{=b-IjR)#ADt3}FIzg?{d9_&uw~*hE2wS4)|Ish`A8T8Ty0%Zw3i z5#NayXi)0v)g7m&%%%Ej^~suA)>~yLWAO*Um8hbsoRxFx@lc>K(U?|(0_t6D<#nRq z%QLuI$MMZ_^fVh?h9nww?r}_&D&WSB^pzpqlMEN%H-rdFbU8QRnJWtHdmdsu}#}z({ zx3Jnh934-$hE^uGLFkLV)S|^EC2~eB)lc_hH42*||G8D9(N!Bdt|{0X3^f*&HiL-% z>ny=E=&t*z%FOIDp{+g?c;P{ncKW5SwH=yXVcKL+;$WLSfwZfF-reN5RVH^MPS>F% z}SX0E3w#KIe+Fpp58*8~i3Ar*c8UxON&Ah6N9%}aWKKbic z$uF{*PYB!0Ha;Hvjc99e-=Kl4vois2k>Pj?mRxDT6>!Kb1)3_U-1Pmi0`+fX5h<2C z>U)up8#b!>fa}2Zq3+<*A&PFI4Eo`oL&cvI3x} zD&D)Yw;_drq}Sb-f=0&8{Kp1@xbGj%E-P>VR2;D^TJFRc;MN$r zUvfec^>sAmvg1`KCwAY&li89M>zZcq%e~jIEKed4rXUXWaJ@c`98!!FHzGjPpF}`n zg>wy43d@zl1lHDVQ~Of(-T=_PLQ53{gKbaq9CBvVc0JEV`-y=^fy>z3@LU-we0K2R zxQVv%v(Sq2S@@KW?OY`m8j2Q&1H>{mlFOI5Ul>7k-s%LqW!&-Nn(d{Ns^;3UYfUTC zqZZ6Wh3CMFI{uNT8b8)aeDNtV@5UKxq>5CO)2)`dALa8@oSHcu@4n%OWP8A77?>w- zhH~=%2W#ipq}dj2>9p-in{V2-RcTk+wr$&XrES}`txDUOU8lRFZ{Hi|!|jOv1N*~X zE9RbK>^YzDV+fi|t~n!#Uqbv5uk}0RdME6uw~0V#^<$RV*4f&MYu)qZrusQUtx8C@ z6XUXnPQuNg)=A;vi2s6L>2l`vYr3;OgT5@g1@%L207rmL|8}C-BpSw3Q5ggADdTkU zPD7)2++-{3;ru@JTytI(eY5-zlWWOVMvah=jcC3C6LH}j*`!o(Sy^))tb7_V(#1+? zAB&-!fRw;O^6e7#KnV-$&st-Kp_DyRaDsLf(@4Eo!FdTUD!$}7kTiph$A*O9`~<7_ z=iz$NO}B`^hwWQH+Je?F>_f^e0_)a6>io4bGhLy{g;+LqC?YxYcA?1`I(1@#f1Zcs zEn@ArLHiNRN}M-|Rgt;ak2HzDpk04O1n5O7CTURU#yc=00wNs9>Cx&4PRYLs7sJ}R zYM+5Ux@`{-XnW}u5m7|orB9f+E*ig4SoP>iboz3p1<<+9eot<6X)kt@noMRcq3aSD+H>GUiJ588wR(q9`_V7Ltz6BZLc-vS`2##zbPs2!iQ$h_Rg8O z!3fxZq=`MCMcnSWkzTOIT*%f!IMK+QX?n(*oo-^wOgq;z)n4l=a5&UaW$zd|Sftoq z`tM*5GZU4fVal^~(I-hHClfzlIx$7p3OpQ+bi_J?YX`dORi%==%SccU#w zuca24*5-(=MSmP6d7fBK+s`M5Kz%XjJWq zJP)@wz}m~i|8j-90*cauBU z+#YCrwU>6*hA&eI^ZiYxo?hL!mAZEihw04XI|n;-lmJhY_sOMnxsg-)uI_#W z0o`w)5BRx!l*)KTLIg?VE>0u)!{ot?aEH1SB z#U7noRpY2Srfp2m#)d&o`PmVi$Av|F?;<}OU*@;Rxw)D#nN7^E(GHTkHw3Yb8=L;p z(;R^C_+24Ww)r47pN?XfMKmWqb(meu+3JPf`46qr z1A8t{v0pUU@O1LRHkc?OZiS&e$YL+@%!RF8$nrrOO)BwK$!6f8!R@SLo}BzuD+%Ha~}iC?nV zaQV%Zr6o0D^Hfi%jTxm=(ZSNpuZu0#ld{m zj};>&$Y=uMr3K{1W@ z*o3=HDbh*^R;D#25**NX8GgpRfLHi1R*Yg8^8~frL@i=*$?xH$0 z-B;s{SROCpI-eZ!ui78v1mHd^uv~}tOy@9Kdsu&_$~(5iY_{8ruO*FBB^y829D0OT z`$$JQ_4LCn?gl6)M}DFDkU9`AT4poAb2fp`meMLq|ABaPSOjNuGUD5`_)%>!YX9Zpv?TnC3!azZ%zgLnRFX=I7C-((}4jIZ1fQQ7n2sq`l%{p48hKCFXcbj z*h13_h2MU6woYK9lVOI)LjQApy(Cd$B0gJz9V^gLpJo%tHt;#W@YGPP zxnh=e>=D*=copk28+aA+Tp#xATcMIa{2`U>?fVsY%+(8yz@I-#oPIKG=vL4tL645W$f2A*UcSB@DSdZQfLxirwhTYN|h6mmU93fy}mu!9+^op#C zzqqGW61Sq)r52V4=E>hxPqXrp%qZjzt{VjVflV9KH6eM1BL3E+7Ge{kIo=&FkXb?t z+&oiOQ!NmFmv5d6s@kLjT@OE;5O0^<&QJSRYdJ++6Gs5Yyx98Ap7|8S)qkXKrVp8^ zhK{MhvyVjW$F<9$m`yFlNBZU~^#{9C63^UBpK5?BHIPIQp(a^f#2<_(ZwP@#>kDp_ z9*n|T83)fa3=I^bsg~o2H4zMtn>Wk$*_yIs@~~90;S7%3ZrJD@@lQ? zAj@2t1P3+_mPov>Ye}4y5xeR%WwS&oWj1$&;vxS{(1^k6ipO>km0f{`T+y=Dx++-O z-oC6J?dFtCeQGyf+uXG3kbz&|SHdir}Aq z#N471U6@PX{cw>=@@MXS=^6GxDxUDSS6oJ3%yJ?_B7XtCQu%eND_JTof>iU%)-IOM z4<|kPR%l-^t~dhRKH|tAdwEJ;hGG7`ZXvZbTYl3sb zd8s?NRJ=n?@-fV6meQR)opb-J;5b<=Bh*Iien*qy69!oD?e77VNgNW}J0Y<|!AqZc zAAFF7@Tui4vUk)p*gEcXcT4QtcFVsj4|totA<2HZ@TFSO*sBVD@|^InRM;z!Xf6Ty z&e!$;Po-x@ou6plZhFAx{8Ec8T}s~1;Nq_)Gu6q1ONIPwC06&RfZTGkV1QSHIKM@6 zkUE5e_*m6l41pdS^52Kh#+4WuiR7o{Q<_9xx4-$RYCYDwS_+BygNH21#1b+5EkXE6 zv-4}WInYSc6an8zO*?KFAtId&a;oX2I)`+#t-uj<{`)1?GyWlswOHh>Zb^ZdH%+F9 zcPu8sS}QT@jrOhTE&EO9ZEKo#I(u5DJ3F(*=4#FP`l_m<<@#z)+BGZ$<#mB1n3M0h&&*Q6stPu$5z6N~NWB@fT33*XMQ zOZUtC#5!h(Zw21lqb*BdXsp>=F2O8T2pb}ix!pbC{4?ac>7(njp?6PgSVh>2(6`p7 z;b(vpU7@HI=zUEsk}IKKI9yy|%~5o1l*kG!6< z%3XkP1qnC2H+u@1h=rXTL=1eTQm0|qGnu4cMI3GEvI;r4)B?Wh)J#--Rz?kPPD$gs z?5;not)16^d>%cpGMr$WwNCCeQXP0%=aTzOdpTkL{FA_d+)e#oek-#4%W?}73oFBa zdwX3&+HsQ&rTbj%X0)tc4+Th9+|+pFNV&Owo+Gr$Ay33?5D!6I+Tm{&yHCd)d_rD` zl*NP!e(mj_la;O6_sd6H``UB*0zFKTzL|q-`Hjfu+2XklEx-9M$o3B+*6ovQZua9Tq5Ph^kL5y&oVAMMi5hmCx zM9iJ9umG6jZm{^DqWC-;$)N%iQly%FtxN31TFJ&GRd&SCh!WrtS7XZp#2R`F^865vzKs;B!*80_ zTukJXPZw~@(isrW&BVYTB^p8~wbTazHSxRCQ(x=03O_fn_Mew1R2KSJ8?gSL_X3up0;6>B8 zhBrb0BUq$J1ose%kAO0ITWPpu;H3`e@9vJ3U5DGRK3}79^P2%x+qi_B#$ve-V3FA| z&wU$GJN%kI`#aYZQ7jdy?a`bLqS76JPZ%#{Sqr=44&Oa@b4X&g*T{_cyK;+RXI4dS z7!;hNEi3Y?BBADM^>R{2D_8%}VX9|e`7oIHhgaUBV?#0YAoCh5xy-ZK6(CPg8R?9h zvHcv$+bYQk^fFV#OpT<&Cl!a!p&J&=+K<1d&thutQoXmN1IN6hUc3clE&rMixuahW_+kxzc z$#h7VX0VA@SXndqb6GZ4{r6}s#|<$qv?)*``S=3pJH9CRyv=AH$HRPFSHW?gHR+M; z))n?wH``}o*Y4`C>hL&f$%Pu%Vh%C2?57>f~UwpD*0q{Sc(p2EmIDtkMKx%ss|O^sZRV zjmV2=v}QMzpLTm}FlTq)P9l5t@r&j~Xq&xXKh>4a|aFe<=*uG{^79P+_* zOy3X1F}yCM>dYyyK2QS}$+YnJv7u#GvCz|MuqwOQtj9>eQurX&D?wg^Qow3Dcrp|lLBoBqd(DcapX2dUirw` z=V^d2alGd!9T2Us>(e*B*_jfgNaBmzW-gvuW@@_TBunqWU_{QYPtW>$@_m4!u)2J^ z-z%R_3i}-5&;Kf&oLXK%tTV_b^+h`^2XRk6RI21~b$gQ2Wawt6xJ?wX4+uZMIsM4X zl1~$cgo-X!nPk`5B*Ihphs#m`p|(OaNhuxs2_0rl)s&_&lx$HPGJEh=P;8JO$_|=G z1Sx_J9Db$?G7BC61uVhI*O)mxBNV4Ab7pLFCA4KJ zPqVGO{bG6@XF=t9w)KYnFpiJFlG(L(%jQs$Gi;WT9Pt5DL2GNNne=_{A9}isbP}si zucOf|mlPv*j(-@(KqJ!TJfjk-SDP_$@G`n#idc-q42j=miU>rk%s1ni@jnQ>F5gFm z8iWGsM?D0D{0=^hN297aL9q%IYI^c#EQJ*Ny`ck{_kkb~kGWtMNrt?LzFaIpBv9q) zBkb*B``h_lOcV~5e^ZeES2UzR(wl)-;mMi<0)1_D)s`m>Zvqgss0OHqS)%B1zwfUc zQRE)gzTI`6q~}@m#YHah7a%dvN;V?}01!EMfn zN%*`QcgfcAcMVP{3O1z4bqu>lAEENwj#K0{8f z9AGLnh&bH@$PD%ToZh8+H$_6W1F4iJAP&bw_#{`P8k zzh*{-ftPo3e}}?4B!+YAQo!T!P7MlKk<@oCzwR2p*6UPh&=t=_qJZ#GAN=p}ndYkA z@o%65BD(y4Yw`Zsj{Pr_V@%8}%>NH9p6y{P@;`v0-w?x%B8q6vSwn6R>7sr{m!tyA zo^j$%T4qh_@rwtQzTV~PqLPb^_gt()u3g=45#Em96S;Rr{J)IH_{I|G@2};b)!1|I zwJF@`$_wJgK9z`N>150k>Jx}7$`89GePokYbS&z`>i z5U6poG?2=V%cz5LuL>E}%XH(__xqJAGD&OWs{h0amajlX`$9JKYmgnGryJBebZ@+d;mhtuV zkL7XpCLNhFC0kh^6*0aP1C#~RjURqNQTSTmS%JQTOM@rzB$3vU+JFiP>+UIXwxheBU%<-E09mO>UkirlXsNT0+I!fxtY zZ1rx{IF$}R5}0BBIqlw?X(*JGoq$({z2KX)@aN-TdmiaeKM0zb6>AM|L0&INsG}U# z)Mt_`Sgaj)&gRdD!5E!CS+M6U7Mgy!-O;FNIP+=5p#me{Nwhe(?(Lm@Vd7v*d!{&j(^_rko2eIgCebK?_nc9z z0w@a%W(Y+nYN3q3Uz)qQ2zNX`Q5wI6ZaL=^Nc)>@S42Hix6Zo_PFw~eAa3WbQvrDP z7w z=?=y7~SSLIspkqozddqh%FQo5OCe zdzMFw=-U?((QBsVNTO*l?-={y1Qv}H&QlrBy1=sK8u4zwAb)ymcl!=6NcxAMLw)tY zx|@@PrgqH|BLa(3oF*(F3Ly;29+b3Siecx&o>vL?OGpTlO9?X|0giG87FRLz50tjD zLf4!hhR>18TF8~eB+{8%;k&p!U7LvXDnr}2{aRys`pg4#qc06%^^Of8jNo2Osp=su zdJZC4PV-mb@xsPVx)tT2=rgyg>6{0fDCamr@Jx2}fYmAmXp+&|(3wP*0>_nIf z$0Mc)X>c-u#p&w(%_N}+GDC8(*@nZi%uGmOV@Q;Lo;O)Dq(BU|j-2u4j{BtqyIK5U zZN|if*d^1|R(cL%g}v%)CLw;2NW>f1#a5ey8|j=28R)HNjs+W}TJ{HC4pI`bx_NPg zhq)?2w5-f(8wMYpRSn24Cu^JU7gl?x$!liJ@*LE~?Mcc56?Z8|G@)cy|A{(L#_oE2>e)&*TCb+@aO%4|6^6D+Y zJXzFS#qTetki&92#z@yCP5SCb9JWVujC!?UddMH2^#1PqkZx!gtUoahy07@yv}Ilp zQVsFLW?}L%LmDqk)8Rg-h>9Y93^JJ8^6?x4Ys7Tdy?a_8n2p6REsaM^8GdTQM`k3R zy`oMf`#b@7V9Kk+bXCmh2ncEC5+anp9{jo1w+&IIb@E^!zalPH;2ZO7J4@^^G9qF% z%KiNgHa4Vb?h;VZp=y@~TB2`p&0?2HhtC-IH8m!ii0e~|qZ-Z?^Pr<*!2192 zb4Xw$$1SSb#wdMw!(6v8^GsrBl-_m%}%L{NiMxl zxm48`{2cla8Hg#wAdjVE=E(+9?u^kpy_~eAjbL82vPM72g9_1SXibW^d-8Zqcva&#+qSV6t8}cS+rE z4fcEw+TR(7^Jh;-e7cB%jb~``Lpgb=R9oFwV&}cVEN}jgs9rtRz3kVJ_d|`t3 z9F1RXyC~eb=^XmV$yfscDZZSyX=|CbLj2ut+AzM9_Q6$HWUAFysX7ef#<`PZdU8-S z1_2&ZU@C)PkNse*%zd1l`6si%%`h3WBA-$PJ}iwyQ5n#MIo{|ZF$L1IH#@vQ;35@l z0Y<$r*4=4|SmLc-dOHruleVX6w+|)69pi(*PUimEU-?U1iYU(;ix+v9$=Ks=nvHlAMgOQ1q@xR-5RjK|3L$V?L?YnLy zrWT=Y2_^6kO0HxaBn^wRC9^=S`2&LGb;5y5=qJZ7;IG3WcB4z%d&T@O9sy7<$%vkNOpYk zo`f@#N9)h8-)FIpLp_)%qkwqH`0)9F5GKrY>V)^N{qq)px!$#R0<=!@7^>t`_*m0u zG(@}fUrS9ByJV?MC*99c{Ig9(GG2|iK~EnM!$-G_Y3p^VSXJYX=Cxmf%3JHXE6$0| zCWqhN0%AH5OxqlMsex~eRN}I*)_XGbJma7BRxRr&+f4?h18CQ+S&rF1-~?T3kC&r| zhL`3Qk(QV*>SousyCe`dle93I@j}>RHttEZf*5>xVk+)jj~}KKD#r6#+3^~QJ2$Eu z_rut+yw?McSUNmSfx78zr(6WA$8)Z?7%Shyiu$2%JQG>kqfu=zZ29(vTQ2@Q@o^W- z@<|vl<&ix3G)?4%04(rwD=FX=D~2l_-qro|p3rg-svqj0UICml!Y}G3ZQ~7n#iW#%R*>HHJRvj%bKcSaPF*bJo_Aqo|Z~)pu ztW~Hbfs{LhZ<6vk7)H?VsmeRRK`-YNhg3pr9^UzKiQy_@46DKZ2aR63u#)QVG$+*~ zY!gUH=7Y|bjPRhM0Z)@~pt78GNY-VY;l znUa}6pRVA*MV7W)E6)fMPqrQMHI!IhTpX)@*Dl(hbWT_D8iW&xLQILkL>d?_d>3ST zw0=@+Bv0%D2P+f&tlBpL$xG9g0tg73!gzY%T z)|ULj8)(^62HwEeLz@jUEHoI(lHfz!%%sELhFj5e23PjYo{ZeLiI_~7^T!uM(dSnt zhungi>a-=yzz0#*?Aklsc;X;xK0fL;tBQDf`BqUdDWxR7~jpxmIEi0r=8f|@%_(kM{hXk ziC8|pT=Zdj-QJsa6$aVwT*%t;B0maegCqfn7`8-O84kuH{(4zrxPPgcZ2v4Y{THpu z$j18L)~dm3TaK9=NWRayeIz+$=s`hX&na?myj>62x}J`b1Yruej%cH}a;aA;?)065T@CiUV0c*()LzK#{z^`yzxlEue z&7LgK9h~cX5_3U4^f|b!gc+GaU&Gz|#WWR|*UOt7y4t^{|9&Hc^iREYX$)x^*6OYt z`JOD=h`4ibu5FOwgo@-i{!I^+mQv#QNfnvnS2gwmUu+kc`z-$4TEWLrQ7KPjG?6C# zvT~rO$#3#7^_1v9VzS8Kl03L7$$^bCIOuJAEo^za3xL<=dVgm@VQevNn5Kt~LPkhH zW=QTGyqV4;T!G80$fb@PULgZK-c-xfJP+}=n1p+e&;*zG;WRRpNS?tE7zO|IIk|1F zq$KvT-14fwJWT^xO^JY|>_nL79NvcNj22vR8LTZW)sQJ(itIV*G&8{>=D#c_pBg_H{q5mnue6n0|=v zW%|{e-y9N5qtXd+mk7Tt!9ouAMsRn0WKofi8(#TEHkZM9S>~nj5}!%QIJJT;*vop5^DyJh8NVtPwP(! ze|bnvymvo@$Si#?%C(o>JDR%1V+se9N{Wdq%GUFO=w$4GjPj%iN0e#6>#fu6ZPTAdp?mA=UjAW7#gIQFXJ((X2#fCr-!^3ML zs-PW{qtw%xGvvwIO4$~L8Yvu0XR0kpVC3Q@m?f`jLsFYHMw=$6q~qz20K1;+;<(oBySN5^i0)2YVh(Sh#&f$T#cO*@ ztgI39%>71{twwNSoGoXsP}M@e{*)oZHZ=+2lsF{74kWw#ezkkH5WT!$OPsK??$j2p zo~QYV?zZmwHBy17O{DaBJAM$rcu zSN{V`7a3v&E`_)>AR^GgzSnhq27ouLuk-3ytTt=f%9pH~ZeWU5_yWK%S-_XnIZ;Is zjtrXV&esxG#aIOx`W`lzUw3#9$*R)v0`~NC-BF^`4HS*vJ;qL7TXr61)lFo2DUNbT zAGuobfb^gF5d7*hmv8nprm*=KDlL-)ysTjwtjm~tE3_JUDo#85$6%LcYs^Oqf`r9~ zjTX13qpW$C_FUP)l#brOzS>36I581u+_kDb<%F{kw^UtI>CI&DBPo;6BK?|dL6@Ie z>Z$ZsUbc+J_2#fg_f=y{u%vT;JIm(cPXoeUDyHZ0j|gB|2)m{{~2z}&h)=%mHz>^K=mHyFV!q&{uE`M|=)Gigy{XI$s*KckrLz zg)f(`e@u>k|2+C0mnVCUgp`n$Dz>!g6U0$~$v+oMU0&+HbKs=&1^CjY5lBybuhMHH zZ6!;UuNx52Sq>X3J=sQF)5oqNyFJrK?s!}WrzB%^Nfx`?LRf)Y!C66HpsWI|GPrhP zMpyb=_fW-1(8u5`#N}9QvqUEu`-)h-qo;PU_7?0%nAmT5!a9K1;V_CuBC|m@gFT_F z(&+KKebu}p{;pF}l3Q1dbC6JBFSbcj)3HiR!7Qo_TqxR3$H3`tY>u&(wRp66N>i?8 zOOX>z*BmXex6xgpr(S!wqBb|XR!qbQ%kt9(?z{%310DuSJ-q_e0tE;tiYq z=V0HPbuqU;cY}Dt{RHW}i!gremEowxOs*x(^b-NI5%jPE7pN~Do&kdOW9&u2yPiKS zUZ<0%s9`&op*nA}G4!+ab5B|agC0@PO9bz)gHCK4CNeGZ=RmY-Y16c0)xeZJ z{u9f6!{-0Icfhtq|zx9 ze_0U?+C{JKUFFF-+#!k&B0W|mLTLfu?C~UtZ$#UMBaXKiEtEQV=nmwm;jl^{$hO}! ziSg{Srxyyn%m&dan0n6f|9~cR?WN?brW^U(t0n3W0RoMi*mQvj$>AA;ow<{mDBrE+ zK#24)U?8?8Dz~Gx7(rH{lyZ9v4hb!U5hWr}X^n4cN-?dvbx|kUpa>oeRk zCWyz?bfR>;{*kaTCFj>G`XCoFpSTOpO%d8Q7LC@|A%@5`GawF05*hfxXaaw4{B)%k z+`OxGWstUE&%3?FP2bbA$2M3Ot#nh!4=Qt?6uEhxy|RIEPMqIuieFf{)ry3pJ*uP4 z6|=pTJ=t-viZ?P0b*~3k3#1PGF!zqJD($C6=nEvaajYJyl$MkCh|xImG054Aa>yv~ zBc0O?90%h@x(l2WSgb?(6eb!6fu5#sU0N-^3f9V1I6$f+u~h<$Pen040UAeHF|Gu9 zGeBgY+>A&l)<3yd4ww(f9>C!UJG7(i;9PUn4qadQ$4yRaO^S> zcqJB!MT$Gspvurd|LU47NF<{7^T%=rFjgQBger(9=;ZVEk^MJtT1iX*An+%mkNN$+ zf2!#{CeV^PUE?beiC(Ejkh#jw18iPj*Nqd`wOF`2-ltXB_pgmC)yC`RnXxgnzQ7lM zde?jSJucL=g~?ii20dy2Rw!PDIM-3R&g(P?NMdcdjf1#3wwlDjp4I6PE4dmwZ>5-f zwJSVRcq^>w0AWDFg|BbolH{~y#ky*$X2H^DqFQ2Ps|ZOynM#uR(&SdIp?$eM>xGu) z<%GA*^X0oWcxl)N0J1gfXtQKelMJC{ptzvX-zxEL$76HVmocHkz)%n$5HDnNG6S%(QCOJNpF6+`9NI(CM*Q96YR&l`{if&D=Y z4jDi)JCHUsY-Ha!bxwMpYuuK?sNyV7huAQk{oD9pohz0$cBRdzKBe9Hy!pKJsc_j+ zPxo#k$Co?fsI+K9SuXvug_K9!dlXUg>~k#WEU?$GW zc_~^)+XZD6GIMwt_3T1LV!!=?AD={NEFA2st9XZDQi?Fh`}gW-G{VoPS0V$f^Yn2+;n7vbWs7ChsYqcOPh6CIyp=Lm9x z%8IbdpL#W7(l&3M{|@aHUYR!$Au6#?;|R#?7ULxhNMf2OC9VUwwm6t?e2A3~iuOj( z4DJHXS}6`xZ(!3NuZN^h@aG7nk5hshi+hG6n_T=>GiX6!|8oUMLB4bWK1`T+vY7JR zs6UIv;7vSyju_DuvI}sn&^3x)f~j^ss4xt5FiV8wQNPiQCD;W^Oo;E?Z!&1^pVIij z;sj^jh#=a(x3vjPPqB_yu3zS5tP@uwz2p>Kj&Z)>+rjj9+<-;}(k%%DEZjeU2`P-> zEi+;^jt>TmpQ^Vrw?VWiPG$n7b3r?%e3l^-B>#kUyP@KDj^u*Ar)4)1)Z>Uhfk5sD zBBC!~LAXId9RL=2o?|qD^X{FmMnhG-4wGBy6@&CLi7A`oCB9YE_OsQ6sKYlXZh_Sz zUVNNW2)ZHWu=W?vk&1=si=+fSpqY5$ruq}WSvLp2o?utOYgI7pP)Z4%l&*UU^z4(R z=@*P;s0)xP*alib`QHqG*`+A`MhJ_x73@|f9eyESG?>KM zVWQ3~^9#~~f*uZk~?~fB5%WoxcE?lsE*Op*sG1^R9!VyR!vl$;?F1NRYBxoa;<@D)S^~ z83^z_m8++k3w1)dk~P0pJn!3&Fy=#z%5IY91Z>tROpUaiz|l22OiFA{XGyao^fSz) zcC|-M%_jwo9Zx!ntxyc>RX5orabg`{4TQx3Gj-d}F6a+nFogNlx>v%}Jj>=5BqCu0XfdNC_~ zCu0#~Lt7)`{{#isQJSzhV1Vm9r*XQ#hvBZrr_}>fccSNP>{x9iAe?Zr&?CW#a2(yC zFQd}TgUlp}z(p``cjx-xI&@!{%B?RVvG&NgS3j-SmL}$%HJ`RHec&j)JW$>_!&O_d zySsH+JM|h}D0utD?)!RIpPbqK&PfOQ`BU@!*!4%*~s?QR{7_z zSQf@DM{V8xbSI_6YebTrnT^Ywg>K?swlwBSGu#qV6B4PcAPW!bB{t3ZoO~$h0+JoDL?mwWga|rZKr8X(_h-_E=<1)Jw?i1K9_6NcaVvhy! zhF`)<#0!m|C9NEom+Nd!ptOvOF_h5J4wzA}Q7{&h7oXSTY)-HT^%LPk?uD1dZ4SvV zP!HCJ<^%uZ*9&cJ6_#Ty)8EidEq8{{pC^c)-997_qhc5bhM-2GMydR+^g7aeO%<@Z z&$4XR(+{uml@rt&kFSW9`ty7LcIy8y;Qx!g%fa!##p!?N)c4rN)|>-D;Qe?(Q2CI=o(T=V|<`Qe{t` zl5LX{qP!nIoQYgL)*HEAQxnzg$8O40@(EYxwca?@8cix6Zc=wX+t;zg@0hpe-Nwb| z_x>sS8F$t=26O`sW3oHW;!E-ibz{|pYz50p*1~Xz~}EQTs4t}!O8pS z`NDn(?>6!a*P~88$`^!S6w>T$VW5=Ewh!lx#aZ=YBA;Fs5gQ-3srpHxDpa*0MT}O~ z7JC~|SCzK2xNJNA;`buJ=l6Wb>o(91;SB%IbZWT^2RUg+ito>QLI{a*=Y3zB(JD;9 zO|T;s?_7gfb;Zf%_3Lg#XLA|8{Oujqx&Bh(-)_ghnExCc|I1Dq*S)oOZyLN-k;8&ulQ>e-?MnL z^lQ47-l&bFSFdj=Sf`-!}T6tUs9a>P1#wSUkuh7+?;}J!taJ=9qX7gR`MTDPi;`}f#gb2 zP}!A!Zf3n>9zhgH~Tq z@vQ2g=M=3BCT|eF6=qFuC^;v3V3uYZK-Rp=mfNBR9TFnGW`tM|?;pTD={drq1W+%Z z`F_3%KEGmdZyy%|S7WQIL+9-XZVmcB$(05XloA zXAYai3r86C_}un_Pup`5>WSKqv66`guk_XO!JJ0oQKX}b=lTbq;d4}mrQc9$oU8SN z^Le{@{SQR!NldD+8pH~>EutGnF*LT#n6zZcnJt+PO7W@?vandxjM5@xmP*8wLc^KK zxKJi!#8I7H*NhwDnfn}4QU_R$W(*hL#&(_`p5gARQsiOwq3lIs_0>CL16BE8UhSZ? z-2HFWt4BnGf8;1@jsWj@;8KPeK1=M^#9YpwQB3ySN-RLf{ZYT8ota#9k4s14-~MqM zuOe#5j6=?rq{A~EqPnzn4Z^ts_Z5D&|5S+9D4Sl%Op)$5Ndhng(5Ad%5Czv-)st-J zOxELEN~(77j{SHb+sbNW3YRRe<<^<5uQRKxKyNCv!CWo>buCp(Qeow+@x#&+MUI&2 z)-w@Ttn1ghVTABeJjhR|rXnO2NkTmsKT(AxZKziPF%=Q_K`3Ati3o6Z!(KK^?Yz8J zQbMd+3f98kwXK8uRM6@ma0|)UI!!Vpu{QT~^%gwETd!S&pT}2=SM7$*R%W)O37pKu zF3Jfnetn%@T@^f$EZ0LMg)<7i7Wf}oI*{$jKqw}Z;FTI|>Qkr!N?YwN4TP5}7ppca zH=f38mvY;M;T7@NMa3uwE?N%>yzy+yXjR|#w2DjwZEBuLM-`2e%vQubq8Iyzr z)PL{k1Y};j*HYP<`=jer_Z=i z+Y8JLZ}<1|{~+ufdWCDlWW87tEnKPWre1=4*CtQ}e zMkEmPFiwi5EuiL^O-J<+>4vk7l3^h?Fc6qmj?bfC*e!=W<9f>G#iz@cmg!D!)x%ne z4Cy8*z$5vCriLj~d@~RLDMR^%Q__MU0Aeic`H3J9xdxGVmT#oML_BfHI9iQPrpQ9d ziAVjOUOzPLSnL$OT^XG;b#F_@c&v0r@1O@wOLZ;D^_C$I>@tG$8IUzh#lxW%&`3f* zYJGFGI{Rg`%BsMu<-TOv#YBo=xHlzpT3Nq@aYWJ z#VJigk~o;#xhnpvK+>kCSYup`>e+qf>2NG?P6O4p?w6yXE5;%K<=ylD?w}Aq>9*e( z@q{4~wI`E1Jqw7dFl93iX28aIY&>j6S}|ubntUD>ZmXCdn%;VQNq2xcm`_XM1ljT%9CowB9R9T3Sqe%WrRHCSoyR((hY1$GytAym@7exbj$GQ=x)=59?;! zpPPFMX;-GyQYgR_E|Em#->R%PHs`1vtJF#?_5iQLu9ePP4qnJv^3yq3(G+v! z(UGr~xnZ@9`2@{U0?Rp%VVJ9WQ> zL%eck3?l$=Sg#v9G!NgTi*CEF`XT~eVAC7@NC<#=rPE%GyK~Tp>(2&SV132z z7Y4j9p~p2CM2J1PhxKOai#B`5134f64KxV%zZNH@Rg4WRPL&p9OR~+Eik@e4*JTI* z0})`9d`D}H><7nKCX2-L#FYIPJ&w@;oRXGxBOo0^Ta1;*0bu~J+NyUO5&S9gUi2QA z;SUOs-5pUSm$NQ+s2kUM0KZWjMV9VpNf&fC&T8qRN|XF@uI{O6p8YiY~-!pF>~`KAtZf9BM)pQ6PMZx=R3qn1F)g zg!6i^fs9R8ozr~w`7w6iY!o|x01A%(wUa%9oZD@2Ha;7=(MJuJnivHyGB=aiwVj1I zbLxAJ!Evy>v9%gY7yaz6xOIuWD}OZL5$q1Xju2-`c>%O~51E~YJ-hZ81A#K~aJ7#W zdjkZ-ounbb*)Lcg$ovmO@K8GtGDV5(!XJ(?oG4$Np1>XmrWXNPM@Tb3kcH5IZ3W`4 zV;%da4tpOY{C>DHyltiP^0W^YDOF$u?k$y#0ZyrmX!tK~H zLW(SnokI9T(4+tt8|sFa6|-YU!z;-IeVwanC+ZO9N})jeoYEM|=f9y(*HIS<652KU zBm1-a$Ag_AjZr>hZh=1l_l8J40#Et?mk@vvLwZ#t@c~zt8zcXkL(K>I`p#%8?)^-i zp7_Fcz@skJzgj{qqbllWy1HFY{co8JXi2WkD#{e}w6-4Q+>!(_wD(l)zRz6jvEx0( z`sSim&t;0S7mK>|r=y!&4yLF;Q;OMhT^@_+Qhf�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'!q2TR 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
  • T17AOLT%?LH$qX4#9VP|}QP7cczVlbSP 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¬j9K>w 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 BB3=Lh literal 0 HcmV?d00001 From 9fc558c21a320692fcfb233e2233a227f0e2799e Mon Sep 17 00:00:00 2001 From: "pl@gohorb.ba-horb.de" Date: Thu, 28 Jul 2022 09:04:25 +0200 Subject: [PATCH 02/10] modified: src/test/java/AllgemeinTest.java new file: src/test/resources/AllgemeinTest/M.jav new file: src/test/resources/AllgemeinTest/Put.jav new file: src/test/resources/AllgemeinTest/Test.jav new file: src/test/resources/AllgemeinTest/TestSubTypless.jav new file: src/test/resources/AllgemeinTest/Twice.jav new file: src/test/resources/AllgemeinTest/Var.jav new file: src/test/resources/AllgemeinTest/Wildcard_Andi.jav new file: src/test/resources/AllgemeinTest/addList.jav --- src/test/java/AllgemeinTest.java | 5 ++++- src/test/resources/AllgemeinTest/M.jav | 7 +++++++ src/test/resources/AllgemeinTest/Put.jav | 19 +++++++++++++++++++ src/test/resources/AllgemeinTest/Test.jav | 4 ++++ .../AllgemeinTest/TestSubTypless.jav | 12 ++++++++++++ src/test/resources/AllgemeinTest/Twice.jav | 3 +++ src/test/resources/AllgemeinTest/Var.jav | 5 +++++ .../resources/AllgemeinTest/Wildcard_Andi.jav | 8 ++++++++ src/test/resources/AllgemeinTest/addList.jav | 8 ++++++++ 9 files changed, 70 insertions(+), 1 deletion(-) create mode 100755 src/test/resources/AllgemeinTest/M.jav create mode 100644 src/test/resources/AllgemeinTest/Put.jav create mode 100644 src/test/resources/AllgemeinTest/Test.jav create mode 100644 src/test/resources/AllgemeinTest/TestSubTypless.jav create mode 100644 src/test/resources/AllgemeinTest/Twice.jav create mode 100644 src/test/resources/AllgemeinTest/Var.jav create mode 100644 src/test/resources/AllgemeinTest/Wildcard_Andi.jav create mode 100755 src/test/resources/AllgemeinTest/addList.jav diff --git a/src/test/java/AllgemeinTest.java b/src/test/java/AllgemeinTest.java index 50a67b381..92b2314a4 100644 --- a/src/test/java/AllgemeinTest.java +++ b/src/test/java/AllgemeinTest.java @@ -41,7 +41,10 @@ public class AllgemeinTest { //String className = "Var"; //String className = "Put"; //String className = "Twice"; - String className = "TestSubTypless"; + //String className = "TestSubTypless"; + //String className = "addList"; + //String className = "M"; + String className = "Wildcard_Andi"; //PL 2019-10-24: genutzt fuer unterschiedliche Tests path = System.getProperty("user.dir")+"/src/test/resources/AllgemeinTest/" + className + ".jav"; //path = System.getProperty("user.dir")+"/src/test/resources/AllgemeinTest/Overloading_Generics.jav"; diff --git a/src/test/resources/AllgemeinTest/M.jav b/src/test/resources/AllgemeinTest/M.jav new file mode 100755 index 000000000..39e6d4828 --- /dev/null +++ b/src/test/resources/AllgemeinTest/M.jav @@ -0,0 +1,7 @@ +import java.util.List; +class M { +void m(p, p2){ + + new addList().addLists(p, p2); +} +} diff --git a/src/test/resources/AllgemeinTest/Put.jav b/src/test/resources/AllgemeinTest/Put.jav new file mode 100644 index 000000000..b22977c62 --- /dev/null +++ b/src/test/resources/AllgemeinTest/Put.jav @@ -0,0 +1,19 @@ +import java.util.Vector; +import java.util.Stack; + +class Put { + + putElement(ele, v) { + v.addElement(ele); + } + + putElement(ele, s) { + s.push(ele); + } + + + main(ele, x) { + putElement(ele, x); + } + +} \ No newline at end of file diff --git a/src/test/resources/AllgemeinTest/Test.jav b/src/test/resources/AllgemeinTest/Test.jav new file mode 100644 index 000000000..3d505a850 --- /dev/null +++ b/src/test/resources/AllgemeinTest/Test.jav @@ -0,0 +1,4 @@ +class Test { + a; + Test b; +} \ No newline at end of file diff --git a/src/test/resources/AllgemeinTest/TestSubTypless.jav b/src/test/resources/AllgemeinTest/TestSubTypless.jav new file mode 100644 index 000000000..667fe6e72 --- /dev/null +++ b/src/test/resources/AllgemeinTest/TestSubTypless.jav @@ -0,0 +1,12 @@ +import java.util.ArrayList; + +class TestSubTypless { + m(a){ + var l = new ArrayList<>(); + l.add(a); + return m2(l).get(0); + } + m2(a){ + return m(a); + } +} \ No newline at end of file diff --git a/src/test/resources/AllgemeinTest/Twice.jav b/src/test/resources/AllgemeinTest/Twice.jav new file mode 100644 index 000000000..396bc5e2a --- /dev/null +++ b/src/test/resources/AllgemeinTest/Twice.jav @@ -0,0 +1,3 @@ +class Twice { + twice = f -> x -> f.apply(f.apply(x)); +} diff --git a/src/test/resources/AllgemeinTest/Var.jav b/src/test/resources/AllgemeinTest/Var.jav new file mode 100644 index 000000000..b95b36679 --- /dev/null +++ b/src/test/resources/AllgemeinTest/Var.jav @@ -0,0 +1,5 @@ +class Var { + + var(x) { var y; } + +} \ No newline at end of file diff --git a/src/test/resources/AllgemeinTest/Wildcard_Andi.jav b/src/test/resources/AllgemeinTest/Wildcard_Andi.jav new file mode 100644 index 000000000..30ef7806e --- /dev/null +++ b/src/test/resources/AllgemeinTest/Wildcard_Andi.jav @@ -0,0 +1,8 @@ +class Wildcard_Andi { + + Test ex = new Test<>(); + + Test sup = new Test<>(); + } + + diff --git a/src/test/resources/AllgemeinTest/addList.jav b/src/test/resources/AllgemeinTest/addList.jav new file mode 100755 index 000000000..a72023eac --- /dev/null +++ b/src/test/resources/AllgemeinTest/addList.jav @@ -0,0 +1,8 @@ +import java.util.List; + +class addList { + addLists(a, b){ +a.add(b.get(0)); +b.add(a.get(0)); +} +} From 33e9b87562d9309bd33f8d657339a61bd3eef6aa Mon Sep 17 00:00:00 2001 From: "pl@gohorb.ba-horb.de" Date: Sun, 18 Sep 2022 00:19:20 +0200 Subject: [PATCH 03/10] Der Returntyp des Konstruktors wurde mit TypePlaceholders als Parameter bestimmt. Korrigiert: TypePlaceholders durch GenericRefType ersetzt modified: ../../../../main/java/de/dhbwstuttgart/syntaxtree/ClassOrInterface.java Methode generateTypeOfThisClass eingefuegt. Macht aus der atuellen Klasse den zugehoerigen RefType In getConstructors in new MethodAssumption den ofType-Parameter (Typeplaceholders) durch cl.generateTypeOfThisClass() ersetzt. Dadurch werden GenericRefType in den Typ eingefuegt. --- .../syntaxtree/ClassOrInterface.java | 14 ++++++++++++ .../typeinference/typeAlgo/TYPEStmt.java | 2 +- src/test/java/AllgemeinTest.java | 5 ++++- src/test/resources/AllgemeinTest/Box.jav | 13 +++++++++++ src/test/resources/AllgemeinTest/Box_Main.jav | 13 +++++++++++ src/test/resources/AllgemeinTest/Pair.java | 6 +++++ .../resources/AllgemeinTest/Wildcard_Andi.jav | 2 +- .../resources/AllgemeinTest/wildcardPair.jav | 22 +++++++++++++++++++ 8 files changed, 74 insertions(+), 3 deletions(-) create mode 100644 src/test/resources/AllgemeinTest/Box.jav create mode 100644 src/test/resources/AllgemeinTest/Box_Main.jav create mode 100644 src/test/resources/AllgemeinTest/wildcardPair.jav diff --git a/src/main/java/de/dhbwstuttgart/syntaxtree/ClassOrInterface.java b/src/main/java/de/dhbwstuttgart/syntaxtree/ClassOrInterface.java index c99caa53c..459ae46d2 100644 --- a/src/main/java/de/dhbwstuttgart/syntaxtree/ClassOrInterface.java +++ b/src/main/java/de/dhbwstuttgart/syntaxtree/ClassOrInterface.java @@ -2,8 +2,10 @@ package de.dhbwstuttgart.syntaxtree; import de.dhbwstuttgart.core.IItemWithOffset; import de.dhbwstuttgart.exceptions.DebugException; +import de.dhbwstuttgart.parser.NullToken; import de.dhbwstuttgart.parser.scope.JavaClassName; import de.dhbwstuttgart.syntaxtree.statement.Statement; +import de.dhbwstuttgart.syntaxtree.type.GenericRefType; import de.dhbwstuttgart.syntaxtree.type.RefType; import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder; import de.dhbwstuttgart.syntaxtree.visual.ASTPrinter; @@ -117,6 +119,18 @@ public class ClassOrInterface extends SyntaxTreeNode implements TypeScope{ return new RefType(name, params, offset); } + /** + * + * @return die aktuelle Klasse als RefType + */ + public RefType generateTypeOfThisClass(){ + List params = new ArrayList<>(); + for(GenericTypeVar genericTypeVar : this.getGenerics()){ + //params.add(genericTypeVar.getTypePlaceholder()); + params.add(new GenericRefType(genericTypeVar.getName(), new NullToken())); + } + return new RefType(name, params, new NullToken()); + } /** * Die Superklasse im Kontext dieser ClassOrInterface * Das bedeutet, dass generische Variablen als GenericRefTypes dargestellt sind diff --git a/src/main/java/de/dhbwstuttgart/typeinference/typeAlgo/TYPEStmt.java b/src/main/java/de/dhbwstuttgart/typeinference/typeAlgo/TYPEStmt.java index 2860e71b3..ddc2dc923 100644 --- a/src/main/java/de/dhbwstuttgart/typeinference/typeAlgo/TYPEStmt.java +++ b/src/main/java/de/dhbwstuttgart/typeinference/typeAlgo/TYPEStmt.java @@ -687,7 +687,7 @@ public class TYPEStmt implements StatementVisitor{ if(cl.getClassName().equals(ofType.getName())){ for(Method m : cl.getConstructors()){ if(m.getParameterList().getFormalparalist().size() == argList.getArguments().size()){ - ret.add(new MethodAssumption(cl, ofType, convertParams(m.getParameterList(), + ret.add(new MethodAssumption(cl, cl.generateTypeOfThisClass(), convertParams(m.getParameterList(), info), createTypeScope(cl, m), m.isInherited)); } } diff --git a/src/test/java/AllgemeinTest.java b/src/test/java/AllgemeinTest.java index 92b2314a4..79d932add 100644 --- a/src/test/java/AllgemeinTest.java +++ b/src/test/java/AllgemeinTest.java @@ -44,7 +44,10 @@ public class AllgemeinTest { //String className = "TestSubTypless"; //String className = "addList"; //String className = "M"; - String className = "Wildcard_Andi"; + //String className = "Wildcard_Andi"; + //String className = "Box"; + //String className = "Box_Main"; + String className ="wildcardPair"; //PL 2019-10-24: genutzt fuer unterschiedliche Tests path = System.getProperty("user.dir")+"/src/test/resources/AllgemeinTest/" + className + ".jav"; //path = System.getProperty("user.dir")+"/src/test/resources/AllgemeinTest/Overloading_Generics.jav"; diff --git a/src/test/resources/AllgemeinTest/Box.jav b/src/test/resources/AllgemeinTest/Box.jav new file mode 100644 index 000000000..411f05511 --- /dev/null +++ b/src/test/resources/AllgemeinTest/Box.jav @@ -0,0 +1,13 @@ +class Box{ +void m(A a){} +} + +class B { } + +class Box_Main extends B { + + m(b) { + b.m(new Box_Main()); + b.m(new B()); + } +} diff --git a/src/test/resources/AllgemeinTest/Box_Main.jav b/src/test/resources/AllgemeinTest/Box_Main.jav new file mode 100644 index 000000000..dabf7bf2c --- /dev/null +++ b/src/test/resources/AllgemeinTest/Box_Main.jav @@ -0,0 +1,13 @@ +import java.lang.Object; +import java.lang.Integer; +import java.lang.String; + +class B { } + +class Box_Main extends B {//Fehler Bugzilla Bug 230 + + m(b) { + b.f = new Box_Main(); + b.f = new B(); + } +} diff --git a/src/test/resources/AllgemeinTest/Pair.java b/src/test/resources/AllgemeinTest/Pair.java index b506efa98..b47b1d841 100644 --- a/src/test/resources/AllgemeinTest/Pair.java +++ b/src/test/resources/AllgemeinTest/Pair.java @@ -2,6 +2,12 @@ class Pair { T x; U y; + public Pair() { } + public Pair(T x, U y) { + this.x = x; + this.y = y; + } + public T fst () { return x; } diff --git a/src/test/resources/AllgemeinTest/Wildcard_Andi.jav b/src/test/resources/AllgemeinTest/Wildcard_Andi.jav index 30ef7806e..e6160437c 100644 --- a/src/test/resources/AllgemeinTest/Wildcard_Andi.jav +++ b/src/test/resources/AllgemeinTest/Wildcard_Andi.jav @@ -3,6 +3,6 @@ class Wildcard_Andi { Test ex = new Test<>(); Test sup = new Test<>(); - } +} diff --git a/src/test/resources/AllgemeinTest/wildcardPair.jav b/src/test/resources/AllgemeinTest/wildcardPair.jav new file mode 100644 index 000000000..73f310f42 --- /dev/null +++ b/src/test/resources/AllgemeinTest/wildcardPair.jav @@ -0,0 +1,22 @@ +import java.util.List; +import java.lang.Integer; +import java.lang.Object; +import java.lang.Boolean; + +class wildcardPair { + + make(l) { + var p = new Pair(l.get(0), l.get(1)); + return p; + } + //Boolean compare(Pair x) { return true; } + void m(l) { + Object o = l.get(0); + + //Pair p; + //List b; + //this.compare(p); //1, type incorrect + make(l); + //this.compare(this.make(b)); //2, OK + } +} \ No newline at end of file From 8f7becd62d86902c4cc6ada43ce21c0ef0d48679 Mon Sep 17 00:00:00 2001 From: Andreas Stadelmeier Date: Mon, 3 Oct 2022 10:08:50 +0200 Subject: [PATCH 04/10] Fix for Bug 230 --- pom.xml | 6 +++--- .../typeinference/assumptions/FieldAssumption.java | 2 +- .../assumptions/TypeInferenceInformation.java | 2 +- src/test/java/typeinference/JavaTXCompilerTest.java | 4 ++++ src/test/resources/javFiles/FieldAccess.jav | 13 +++++++++++++ 5 files changed, 22 insertions(+), 5 deletions(-) create mode 100644 src/test/resources/javFiles/FieldAccess.jav diff --git a/pom.xml b/pom.xml index 95b20386f..2f5df9a2d 100644 --- a/pom.xml +++ b/pom.xml @@ -118,7 +118,7 @@ http://maven.apache.org/maven-v4_0_0.xsd"> - + @@ -129,8 +129,8 @@ http://maven.apache.org/maven-v4_0_0.xsd"> UTF-8 UTF-8 - 1.8 - 1.8 + 18 + 18 0.23.0 de.dhbwstuttgart.core.ConsoleInterface diff --git a/src/main/java/de/dhbwstuttgart/typeinference/assumptions/FieldAssumption.java b/src/main/java/de/dhbwstuttgart/typeinference/assumptions/FieldAssumption.java index 305fa55fc..ee18ea7c7 100644 --- a/src/main/java/de/dhbwstuttgart/typeinference/assumptions/FieldAssumption.java +++ b/src/main/java/de/dhbwstuttgart/typeinference/assumptions/FieldAssumption.java @@ -39,7 +39,7 @@ public class FieldAssumption extends Assumption{ for(GenericTypeVar gtv : receiverClass.getGenerics()){ //Hier wird ein GenericRefType gebildet, welcher einen für dieses Feld eindeutigen Namen hat GenericRefType genericRefType = - new GenericRefType(receiverClass.getClassName().toString() + " " + name + " " + gtv.getName() + new GenericRefType(gtv.getName() , new NullToken()); //Dieser wird dann korrekt aufgelöst vom Resolver: params.add(resolver.resolve(genericRefType)); diff --git a/src/main/java/de/dhbwstuttgart/typeinference/assumptions/TypeInferenceInformation.java b/src/main/java/de/dhbwstuttgart/typeinference/assumptions/TypeInferenceInformation.java index cbb941f3f..3a215bc30 100644 --- a/src/main/java/de/dhbwstuttgart/typeinference/assumptions/TypeInferenceInformation.java +++ b/src/main/java/de/dhbwstuttgart/typeinference/assumptions/TypeInferenceInformation.java @@ -47,7 +47,7 @@ public class TypeInferenceInformation { for(Field m : cl.getFieldDecl()){ if(m.getName().equals(name)){ - ret.add(new FieldAssumption(name, cl, checkGTV(m.getType()), new TypeScopeContainer(cl, m))); + ret.add(new FieldAssumption(name, cl, m.getType(), new TypeScopeContainer(cl, m))); } } } diff --git a/src/test/java/typeinference/JavaTXCompilerTest.java b/src/test/java/typeinference/JavaTXCompilerTest.java index 3fa1562b9..7a062779b 100644 --- a/src/test/java/typeinference/JavaTXCompilerTest.java +++ b/src/test/java/typeinference/JavaTXCompilerTest.java @@ -33,6 +33,10 @@ public class JavaTXCompilerTest { execute(new File(rootDirectory+"Import.jav")); } @Test + public void fieldTest() throws IOException, ClassNotFoundException { + execute(new File(rootDirectory+"FieldAccess.jav")); + } + @Test public void lambda() throws IOException, ClassNotFoundException { execute(new File(rootDirectory+"Lambda.jav")); } diff --git a/src/test/resources/javFiles/FieldAccess.jav b/src/test/resources/javFiles/FieldAccess.jav new file mode 100644 index 000000000..894bb6e14 --- /dev/null +++ b/src/test/resources/javFiles/FieldAccess.jav @@ -0,0 +1,13 @@ +class Box { +A f; +} +class B { + } + +class Box_Main extends B { + + m(b) { + b.f = new Box_Main(); + b.f = new B(); + } +} \ No newline at end of file From 26bb3c9579a87af65bb3cfea42ef9b14d5ecdcc2 Mon Sep 17 00:00:00 2001 From: "pl@gohorb.ba-horb.de" Date: Mon, 10 Oct 2022 18:11:57 +0200 Subject: [PATCH 05/10] modified: ../../java/AllgemeinTest.java modified: Box_Main.jav --- src/test/java/AllgemeinTest.java | 4 ++-- src/test/resources/AllgemeinTest/Box_Main.jav | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/test/java/AllgemeinTest.java b/src/test/java/AllgemeinTest.java index 79d932add..a16970bf0 100644 --- a/src/test/java/AllgemeinTest.java +++ b/src/test/java/AllgemeinTest.java @@ -46,8 +46,8 @@ public class AllgemeinTest { //String className = "M"; //String className = "Wildcard_Andi"; //String className = "Box"; - //String className = "Box_Main"; - String className ="wildcardPair"; + String className = "Box_Main"; + //String className ="wildcardPair"; //PL 2019-10-24: genutzt fuer unterschiedliche Tests path = System.getProperty("user.dir")+"/src/test/resources/AllgemeinTest/" + className + ".jav"; //path = System.getProperty("user.dir")+"/src/test/resources/AllgemeinTest/Overloading_Generics.jav"; diff --git a/src/test/resources/AllgemeinTest/Box_Main.jav b/src/test/resources/AllgemeinTest/Box_Main.jav index dabf7bf2c..0ba86f19d 100644 --- a/src/test/resources/AllgemeinTest/Box_Main.jav +++ b/src/test/resources/AllgemeinTest/Box_Main.jav @@ -1,6 +1,6 @@ -import java.lang.Object; -import java.lang.Integer; -import java.lang.String; +class Box{ + A f; +} class B { } From 00c8f41671f767649c384c80dff7c6d16f199812 Mon Sep 17 00:00:00 2001 From: Andreas Stadelmeier Date: Tue, 15 Nov 2022 16:21:09 +0100 Subject: [PATCH 06/10] Change pom.xml: Clean up, Set java version to 17, Antlr4 plugin uses standard source directory. Project changes: move /test/resources to /resources --- pom.xml | 65 +- .../AllgemeinTest/Box.jav | 0 .../AllgemeinTest/Box_Main.jav | 0 .../AllgemeinTest/FCTest1.jav | 0 .../AllgemeinTest/FCTest2.jav | 0 .../AllgemeinTest/FCTest3.jav | 0 .../AllgemeinTest/GenTest.jav | 0 .../AllgemeinTest/Generics.jav | 0 .../AllgemeinTest/M.jav | 0 .../AllgemeinTest/OverloadingMain.jav | 0 .../AllgemeinTest/Overloading_Generics.jav | 0 .../AllgemeinTest/OverrideMain.jav | 0 .../AllgemeinTest/OverrideMainRet.jav | 0 .../AllgemeinTest/Pair.java | 0 .../AllgemeinTest/Put.jav | 0 .../AllgemeinTest/Test.jav | 0 .../AllgemeinTest/TestSubTypless.jav | 0 .../AllgemeinTest/Twice.jav | 0 .../AllgemeinTest/Var.jav | 0 .../AllgemeinTest/Wildcard_Andi.jav | 0 .../AllgemeinTest/addList.jav | 0 .../AllgemeinTest/wildcardPair.jav | 0 .../bytecode/javFiles/AA.jav | 0 .../bytecode/javFiles/AssignToLit.jav | 0 .../bytecode/javFiles/BB.jav | 0 .../bytecode/javFiles/BinaryInMeth.jav | 0 .../bytecode/javFiles/CC.jav | 0 .../bytecode/javFiles/ClassGenLam.jav | 0 .../bytecode/javFiles/DD.jav | 0 .../bytecode/javFiles/DuMethod.jav | 0 .../bytecode/javFiles/EmptyMethod.jav | 0 .../bytecode/javFiles/Example.jav | 0 .../bytecode/javFiles/Exceptions.jav | 0 .../bytecode/javFiles/Fac.jav | 0 .../bytecode/javFiles/Faculty.jav | 0 .../bytecode/javFiles/Faculty2.jav | 0 .../bytecode/javFiles/Field.jav | 0 .../bytecode/javFiles/FieldTph.jav | 0 .../bytecode/javFiles/FieldTph2.jav | 0 .../bytecode/javFiles/FieldTphConsMeth.jav | 0 .../bytecode/javFiles/FieldTphMMeth.jav | 0 .../bytecode/javFiles/For.jav | 0 .../bytecode/javFiles/FunOL.jav | 0 .../bytecode/javFiles/Gen.jav | 0 .../bytecode/javFiles/Generics.jav | 0 .../bytecode/javFiles/Generics2.jav | 0 .../bytecode/javFiles/GreaterEqual.jav | 0 .../bytecode/javFiles/GreaterThan.jav | 0 .../bytecode/javFiles/Id.jav | 0 .../bytecode/javFiles/IfTest.jav | 0 .../bytecode/javFiles/Import.jav | 0 .../bytecode/javFiles/Inf.jav | 0 .../bytecode/javFiles/Inherit.jav | 0 .../bytecode/javFiles/Inherit2.jav | 0 .../bytecode/javFiles/Interface1.jav | 0 .../bytecode/javFiles/KompTph.jav | 0 .../bytecode/javFiles/LamRunnable.jav | 0 .../bytecode/javFiles/Lambda.jav | 0 .../bytecode/javFiles/Lambda2.jav | 0 .../bytecode/javFiles/Lambda3.jav | 0 .../bytecode/javFiles/Lambda4.jav | 0 .../bytecode/javFiles/LambdaCapture.jav | 0 .../bytecode/javFiles/LambdaVoid.jav | 0 .../bytecode/javFiles/LessEqual.jav | 0 .../bytecode/javFiles/LessThan.jav | 0 .../bytecode/javFiles/Matrix.jav | 0 .../bytecode/javFiles/MatrixOP.jav | 0 .../bytecode/javFiles/Merge.jav | 0 .../bytecode/javFiles/Methods.jav | 0 .../bytecode/javFiles/OL.jav | 0 .../bytecode/javFiles/OLFun.jav | 0 .../bytecode/javFiles/Op.jav | 0 .../bytecode/javFiles/Op2.jav | 0 .../bytecode/javFiles/OverlaodGen.jav | 0 .../bytecode/javFiles/Overloading.jav | 0 .../bytecode/javFiles/Plus.jav | 0 .../bytecode/javFiles/PostIncDec.jav | 0 .../bytecode/javFiles/PreInc.jav | 0 .../bytecode/javFiles/Put.jav | 0 .../bytecode/javFiles/RecursiveMeth.jav | 0 .../bytecode/javFiles/RelOps.jav | 0 .../bytecode/javFiles/ReturnMethod.jav | 0 .../bytecode/javFiles/SimpleCycle.jav | 0 .../bytecode/javFiles/Sorting.jav | 0 .../bytecode/javFiles/StaticM.jav | 0 .../bytecode/javFiles/SubMatrix.jav | 0 .../bytecode/javFiles/Tph.jav | 0 .../bytecode/javFiles/Tph2.jav | 0 .../bytecode/javFiles/Tph3.jav | 0 .../bytecode/javFiles/Tph4.jav | 0 .../bytecode/javFiles/Tph5.jav | 0 .../bytecode/javFiles/Tph6.jav | 0 .../bytecode/javFiles/TypedID.jav | 0 .../bytecode/javFiles/VectorAdd.jav | 0 .../bytecode/javFiles/VectorSuper.jav | 0 .../bytecode/javFiles/VoidMeth.jav | 0 .../bytecode/javFiles/WC.jav | 0 .../bytecode/javFiles/While.jav | 0 .../bytecode/javFiles/Y.jav | 0 .../bytecode/javFiles/applyLambda.jav | 0 .../bytecode/javFiles/mathStruc.jav | 0 .../bytecode/javFiles/mathStrucInteger.jav | 0 .../bytecode/javFiles/mathStrucMatrixOP.jav | 0 .../insertGenericsJav/TestAny.jav | 0 .../insertGenericsJav/TestClassField.jav | 0 .../insertGenericsJav/TestContraVariant.jav | 0 .../insertGenericsJav/TestGGFinder.jav | 0 .../insertGenericsJav/TestLocalVarLambda.jav | 0 .../insertGenericsJav/TestMutualRecursion.jav | 0 .../TestMutualRecursionWithField.jav | 0 .../TestMutualRecursionWithField2.jav | 0 .../TestMutualRecursionWithField3.jav | 0 .../insertGenericsJav/TestReturnVar.jav | 0 .../TestSecondLineOfClassConstraints.jav | 0 .../insertGenericsJav/TestTPHsAndGenerics.jav | 0 .../TestTPHsAndGenerics2.jav | 0 .../insertGenericsJav/TestThreeArgs.jav | 0 .../insertGenericsJav/TestTwoArgs.jav | 0 .../insertGenericsJav/TestTwoArgs2.jav | 0 .../insertGenericsJav/TestTwoCalls.jav | 0 .../insertGenericsJav/TestVector.jav | 0 .../insertGenericsJav/TestVectorArg.jav | 0 .../insertGenericsJav/TestVoidMeth.jav | 0 .../javFiles/AddLong.jav | 0 .../javFiles/EmptyClass.jav | 0 .../javFiles/EmptyMethod.jav | 0 .../javFiles/Expressions.jav | 0 .../javFiles/FC_Matrix.jav | 0 .../javFiles/Faculty.jav | 0 .../javFiles/FacultyIf.jav | 0 .../javFiles/FacultyTyped.jav | 0 .../javFiles/FieldAccess.jav | 0 .../javFiles/Fields.jav | 0 .../javFiles/Generics.jav | 0 .../javFiles/IfTest.jav | 0 .../javFiles/Import.jav | 0 .../javFiles/Lambda.jav | 0 .../javFiles/Lambda2.jav | 0 .../javFiles/Lambda3.jav | 0 .../javFiles/LambdaField.jav | 0 .../javFiles/LambdaRunnable.jav | 0 .../javFiles/ListenerOverload.jav | 0 .../javFiles/Matrix.jav | 0 .../javFiles/Meth_Gen.jav | 0 .../javFiles/MethodCallGenerics.jav | 0 resources/javFiles/MethodWildcardGen.jav | 21 + .../javFiles/Methods.jav | 0 .../javFiles/MethodsEasy.jav | 0 .../resources => resources}/javFiles/Op1.jav | 0 .../javFiles/Package.jav | 0 .../javFiles/Sorting.jav | 0 .../javFiles/Subclass.jav | 0 .../javFiles/Superclass.jav | 0 .../javFiles/Vector.jav | 0 .../resources => resources}/javFiles/fc.jav | 0 .../javFiles/mathStruc.jav | 0 .../javFiles/packageTest/Gen.jav | 0 .../javFiles/packageTest/OLMain.jav | 0 .../javFiles/packageTest/OLOneFile.jav | 0 .../javFiles/packageTest/OLTest.txt | 0 .../javFiles/packageTest/OLextends.jav | 0 .../javFiles/packageTest/Pair2.jav | 0 .../javFiles/packageTest/Test.jav | 0 .../javFiles/packageTest/UseOLMain.java | 0 .../packageTest/de/test/ImportTest.jav | 0 .../packageTest/de/test/ImportTest2.jav | 0 .../packageTest/de/test/ImportTestDefault.jav | 0 .../javFiles/packageTest/de/test/OL.jav | 0 .../javFiles/packageTest/de/test/Pair.jav | 0 .../packageTest/de/test/TestClass.jav | 0 .../javFiles/packageTest/de/test/ToImport.jav | 0 .../packageTest/de/test/mathStruc.jav | 0 .../packageTest/de/test/mathStrucVector.jav | 0 .../output/de/test/mathStrucVectoruse.java | 0 .../de/test/output/mathStrucVectoruse.java | 0 .../de/test/packageNameTestWrongPackage.jav | 0 .../packageTest/de/test/subpackage1/Test1.jav | 0 .../de/test/subpackage1/ToImport2.jav | 0 .../packageTest/de/test/subpackage2/Test2.jav | 0 .../de/test/subpackage2/ToImport3.jav | 0 .../packageTest/de/test/vectorAdd.jav | 0 .../resources => resources}/javFiles/test.jav | 0 .../javFiles/test1.jav | 0 {src/test/java => resources}/log4jTesting.xml | 0 .../testBytecode/generatedBC/.gitignore | 0 .../testBytecode/public | 0 .../dhbwstuttgart/parser/antlr}/Java8.g4 | 0 src/main/antlr4/java8/Java8.tokens | 207 - src/main/antlr4/java8/Java8Lexer.tokens | 207 - src/main/antlr4/sat/UnifyResult.g4 | 37 - src/main/antlr4/sat/UnifyResult.tokens | 23 - src/main/antlr4/sat/UnifyResultLexer.tokens | 23 - .../de/dhbwstuttgart/core/JavaTXCompiler.java | 2 +- .../dhbwstuttgart/parser/antlr/Java8.tokens | 207 - .../parser/antlr/Java8BaseListener.java | 2895 --- .../parser/antlr/Java8Lexer.java | 593 - .../parser/antlr/Java8Lexer.tokens | 207 - .../parser/antlr/Java8Listener.java | 2390 -- .../parser/antlr/Java8Parser.java | 18764 ---------------- .../typeinference/unify/TypeUnifyTask.java | 2 +- src/test/java/AllgemeinTest.java | 71 - .../{ => java}/astfactory/ASTFactoryTest.java | 0 .../java/{ => java}/bytecode/BinaryTest.java | 4 +- .../{ => java}/bytecode/ClassGenLamTest.java | 4 +- .../java/{ => java}/bytecode/FacTest.java | 4 +- .../java/{ => java}/bytecode/FacultyTest.java | 6 +- .../java/{ => java}/bytecode/FieldTest.java | 6 +- .../{ => java}/bytecode/FieldTph2Test.java | 6 +- .../bytecode/FieldTphConsMethTest.java | 6 +- .../bytecode/FieldTphMMethTest.java | 6 +- .../java/{ => java}/bytecode/GenTest.java | 4 +- .../{ => java}/bytecode/GreaterEqualTest.java | 4 +- .../{ => java}/bytecode/GreaterThanTest.java | 4 +- src/test/java/{ => java}/bytecode/IdTest.java | 6 +- .../java/{ => java}/bytecode/InfTest.java | 4 +- .../java/{ => java}/bytecode/InheritTest.java | 14 +- .../{ => java}/bytecode/InheritTest2.java | 14 +- .../java/{ => java}/bytecode/KompTphTest.java | 4 +- .../bytecode/LambdaCapturetest.java | 6 +- .../java/{ => java}/bytecode/LambdaTest.java | 6 +- .../{ => java}/bytecode/LambdaVoidTest.java | 6 +- .../{ => java}/bytecode/LessEqualTest.java | 4 +- .../{ => java}/bytecode/LessThanTest.java | 4 +- .../{ => java}/bytecode/MatrixOpTest.java | 4 +- .../java/{ => java}/bytecode/MatrixTest.java | 4 +- .../java/{ => java}/bytecode/MergeTest.java | 4 +- .../java/{ => java}/bytecode/OLFunTest.java | 6 +- src/test/java/{ => java}/bytecode/OLTest.java | 4 +- src/test/java/{ => java}/bytecode/OpTest.java | 4 +- .../bytecode/OverloadingSortingTest.java | 4 +- .../{ => java}/bytecode/OverloadingTest.java | 4 +- .../java/{ => java}/bytecode/PlusTest.java | 4 +- .../java/{ => java}/bytecode/PostIncTest.java | 4 +- .../java/{ => java}/bytecode/PreIncTest.java | 4 +- .../java/{ => java}/bytecode/PutTest.java | 4 +- .../java/{ => java}/bytecode/RelOpsTest.java | 4 +- .../{ => java}/bytecode/SimpleCycleTest.java | 4 +- .../java/{ => java}/bytecode/SortingTest.java | 6 +- .../java/{ => java}/bytecode/SubMatTest.java | 4 +- .../java/{ => java}/bytecode/Tph2Test.java | 4 +- .../java/{ => java}/bytecode/Tph3Test.java | 4 +- .../java/{ => java}/bytecode/Tph5Test.java | 4 +- .../java/{ => java}/bytecode/Tph6Test.java | 4 +- .../java/{ => java}/bytecode/TphTest.java | 4 +- .../java/{ => java}/bytecode/TypedIDTest.java | 6 +- .../{ => java}/bytecode/VectorAddTest.java | 4 +- .../{ => java}/bytecode/VectorSuperTest.java | 4 +- .../java/{ => java}/bytecode/WhileTest.java | 4 +- src/test/java/{ => java}/bytecode/YTest.java | 6 +- .../{ => java}/bytecode/applyLambdaTest.java | 6 +- .../bytecode/mathStrucIntegerTest.java | 6 +- .../bytecode/mathStrucMatrixOPTest.java.txt | 8 +- .../{ => java}/bytecode/mathStrucTest.java | 6 +- .../bytecode/mathStrucVectorAddTest.java.txt | 6 +- .../constraintSimplify/FamilyOfGenerics.java | 0 .../finiteClosure/SuperInterfacesTest.java | 0 .../FamilyOfGeneratedGenericsTest.java | 0 .../{ => java}/insertGenerics/TestAny.java | 2 +- .../insertGenerics/TestClassField.java | 2 +- .../insertGenerics/TestContraVariant.java | 2 +- .../insertGenerics/TestExample42.java | 0 .../TestExample42_allInOneMethod.java | 0 .../insertGenerics/TestGGFinder.java | 4 +- .../insertGenerics/TestLocalVarLambda.java | 4 +- .../insertGenerics/TestMutualRecursion.java | 4 +- .../insertGenerics/TestReturnVar.java | 2 +- .../TestSecondLineOfClassConstraints.java | 2 +- .../insertGenerics/TestTPHsAndGenerics.java | 4 +- .../insertGenerics/TestTPHsAndGenerics2.java | 2 +- .../insertGenerics/TestThreeArgs.java | 4 +- .../insertGenerics/TestTransitiveClosure.java | 0 .../insertGenerics/TestTwoArgs.java | 4 +- .../insertGenerics/TestTwoArgs2.java | 4 +- .../insertGenerics/TestTwoCalls.java | 4 +- .../{ => java}/insertGenerics/TestVector.java | 4 +- .../insertGenerics/TestVectorArg.java | 4 +- .../insertGenerics/TestVoidMeth.java | 2 +- .../{resources => java/java}/log4jTesting.xml | 0 .../java/{ => java}/packages/Bytecode.java | 2 +- .../packages/CheckPackageFolder.java | 2 +- .../packages/ConsoleInterfaceTest.java | 2 +- .../java/{ => java}/packages/ImportTest.java | 2 +- .../LoadDefaultPackageClassesTest.java | 2 +- .../{ => java}/packages/OLOneFileTest.java | 4 +- src/test/java/{ => java}/packages/OLTest.java | 10 +- .../{ => java}/packages/ParsePackageName.java | 2 +- .../packages/mathStrucMatrixOPTest.java.txt | 2 +- .../packages/mathStrucVectorTest.java | 2 +- src/test/java/{ => java}/parser/AntlrTest.jav | 0 .../{ => java}/parser/BoundedParameter.jav | 0 src/test/java/{ => java}/parser/CastTest.jav | 0 .../java/{ => java}/parser/ExtendsTest.jav | 0 .../{ => java}/parser/FeatherWeightJava.jav | 0 .../parser/FieldInitializationTest.jav | 0 .../java/{ => java}/parser/FieldVarTest.jav | 0 .../{ => java}/parser/GeneralParserTest.java | 0 .../{ => java}/parser/GenericFieldVarTest.jav | 0 .../java/{ => java}/parser/ImportTest.jav | 0 .../java/{ => java}/parser/ImportTest2.jav | 0 .../{ => java}/parser/ImportTestGeneric.jav | 0 src/test/java/{ => java}/parser/NewTest.jav | 0 .../java/{ => java}/parser/OpratorTest.jav | 0 .../{ => java}/parser/PackageNameTest.jav | 0 .../java/{ => java}/parser/StatementsTest.jav | 0 .../{ => java}/parser/StructuralTypes.jav | 0 src/test/java/{ => java}/parser/WhileTest.jav | 0 .../typeinference/JavaTXCompilerTest.java | 2 +- .../typeinference/Meth_GenTest.java | 2 +- .../{ => java}/typeinference/UnifyTest.java | 2 +- .../{ => java}/visualisation/ToString.java | 0 .../resources/testBytecode/manually/Fac1.java | 6 - .../resources/testBytecode/manually/Fac2.java | 14 - .../testBytecode/manually/LamAssign.java | 10 - .../testBytecode/manually/LamAssignWithM.java | 12 - .../testBytecode/manually/LamWithAnField.java | 14 - .../testBytecode/manually/LamWithField.java | 14 - .../testBytecode/manually/ReturnM1.java | 6 - 317 files changed, 203 insertions(+), 25943 deletions(-) rename {src/test/resources => resources}/AllgemeinTest/Box.jav (100%) rename {src/test/resources => resources}/AllgemeinTest/Box_Main.jav (100%) rename {src/test/resources => resources}/AllgemeinTest/FCTest1.jav (100%) rename {src/test/resources => resources}/AllgemeinTest/FCTest2.jav (100%) rename {src/test/resources => resources}/AllgemeinTest/FCTest3.jav (100%) rename {src/test/resources => resources}/AllgemeinTest/GenTest.jav (100%) rename {src/test/resources => resources}/AllgemeinTest/Generics.jav (100%) rename {src/test/resources => resources}/AllgemeinTest/M.jav (100%) rename {src/test/resources => resources}/AllgemeinTest/OverloadingMain.jav (100%) rename {src/test/resources => resources}/AllgemeinTest/Overloading_Generics.jav (100%) rename {src/test/resources => resources}/AllgemeinTest/OverrideMain.jav (100%) rename {src/test/resources => resources}/AllgemeinTest/OverrideMainRet.jav (100%) rename {src/test/resources => resources}/AllgemeinTest/Pair.java (100%) rename {src/test/resources => resources}/AllgemeinTest/Put.jav (100%) rename {src/test/resources => resources}/AllgemeinTest/Test.jav (100%) rename {src/test/resources => resources}/AllgemeinTest/TestSubTypless.jav (100%) rename {src/test/resources => resources}/AllgemeinTest/Twice.jav (100%) rename {src/test/resources => resources}/AllgemeinTest/Var.jav (100%) rename {src/test/resources => resources}/AllgemeinTest/Wildcard_Andi.jav (100%) rename {src/test/resources => resources}/AllgemeinTest/addList.jav (100%) rename {src/test/resources => resources}/AllgemeinTest/wildcardPair.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/AA.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/AssignToLit.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/BB.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/BinaryInMeth.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/CC.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/ClassGenLam.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/DD.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/DuMethod.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/EmptyMethod.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/Example.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/Exceptions.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/Fac.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/Faculty.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/Faculty2.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/Field.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/FieldTph.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/FieldTph2.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/FieldTphConsMeth.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/FieldTphMMeth.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/For.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/FunOL.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/Gen.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/Generics.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/Generics2.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/GreaterEqual.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/GreaterThan.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/Id.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/IfTest.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/Import.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/Inf.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/Inherit.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/Inherit2.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/Interface1.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/KompTph.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/LamRunnable.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/Lambda.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/Lambda2.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/Lambda3.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/Lambda4.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/LambdaCapture.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/LambdaVoid.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/LessEqual.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/LessThan.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/Matrix.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/MatrixOP.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/Merge.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/Methods.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/OL.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/OLFun.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/Op.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/Op2.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/OverlaodGen.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/Overloading.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/Plus.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/PostIncDec.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/PreInc.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/Put.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/RecursiveMeth.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/RelOps.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/ReturnMethod.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/SimpleCycle.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/Sorting.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/StaticM.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/SubMatrix.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/Tph.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/Tph2.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/Tph3.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/Tph4.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/Tph5.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/Tph6.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/TypedID.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/VectorAdd.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/VectorSuper.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/VoidMeth.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/WC.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/While.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/Y.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/applyLambda.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/mathStruc.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/mathStrucInteger.jav (100%) rename {src/test/resources => resources}/bytecode/javFiles/mathStrucMatrixOP.jav (100%) rename {src/test/resources => resources}/insertGenericsJav/TestAny.jav (100%) rename {src/test/resources => resources}/insertGenericsJav/TestClassField.jav (100%) rename {src/test/resources => resources}/insertGenericsJav/TestContraVariant.jav (100%) rename {src/test/resources => resources}/insertGenericsJav/TestGGFinder.jav (100%) rename {src/test/resources => resources}/insertGenericsJav/TestLocalVarLambda.jav (100%) rename {src/test/resources => resources}/insertGenericsJav/TestMutualRecursion.jav (100%) rename {src/test/resources => resources}/insertGenericsJav/TestMutualRecursionWithField.jav (100%) rename {src/test/resources => resources}/insertGenericsJav/TestMutualRecursionWithField2.jav (100%) rename {src/test/resources => resources}/insertGenericsJav/TestMutualRecursionWithField3.jav (100%) rename {src/test/resources => resources}/insertGenericsJav/TestReturnVar.jav (100%) rename {src/test/resources => resources}/insertGenericsJav/TestSecondLineOfClassConstraints.jav (100%) rename {src/test/resources => resources}/insertGenericsJav/TestTPHsAndGenerics.jav (100%) rename {src/test/resources => resources}/insertGenericsJav/TestTPHsAndGenerics2.jav (100%) rename {src/test/resources => resources}/insertGenericsJav/TestThreeArgs.jav (100%) rename {src/test/resources => resources}/insertGenericsJav/TestTwoArgs.jav (100%) rename {src/test/resources => resources}/insertGenericsJav/TestTwoArgs2.jav (100%) rename {src/test/resources => resources}/insertGenericsJav/TestTwoCalls.jav (100%) rename {src/test/resources => resources}/insertGenericsJav/TestVector.jav (100%) rename {src/test/resources => resources}/insertGenericsJav/TestVectorArg.jav (100%) rename {src/test/resources => resources}/insertGenericsJav/TestVoidMeth.jav (100%) rename {src/test/resources => resources}/javFiles/AddLong.jav (100%) rename {src/test/resources => resources}/javFiles/EmptyClass.jav (100%) rename {src/test/resources => resources}/javFiles/EmptyMethod.jav (100%) rename {src/test/resources => resources}/javFiles/Expressions.jav (100%) rename {src/test/resources => resources}/javFiles/FC_Matrix.jav (100%) rename {src/test/resources => resources}/javFiles/Faculty.jav (100%) rename {src/test/resources => resources}/javFiles/FacultyIf.jav (100%) rename {src/test/resources => resources}/javFiles/FacultyTyped.jav (100%) rename {src/test/resources => resources}/javFiles/FieldAccess.jav (100%) rename {src/test/resources => resources}/javFiles/Fields.jav (100%) rename {src/test/resources => resources}/javFiles/Generics.jav (100%) rename {src/test/resources => resources}/javFiles/IfTest.jav (100%) rename {src/test/resources => resources}/javFiles/Import.jav (100%) rename {src/test/resources => resources}/javFiles/Lambda.jav (100%) rename {src/test/resources => resources}/javFiles/Lambda2.jav (100%) rename {src/test/resources => resources}/javFiles/Lambda3.jav (100%) rename {src/test/resources => resources}/javFiles/LambdaField.jav (100%) rename {src/test/resources => resources}/javFiles/LambdaRunnable.jav (100%) rename {src/test/resources => resources}/javFiles/ListenerOverload.jav (100%) rename {src/test/resources => resources}/javFiles/Matrix.jav (100%) rename {src/test/resources => resources}/javFiles/Meth_Gen.jav (100%) rename {src/test/resources => resources}/javFiles/MethodCallGenerics.jav (100%) create mode 100644 resources/javFiles/MethodWildcardGen.jav rename {src/test/resources => resources}/javFiles/Methods.jav (100%) rename {src/test/resources => resources}/javFiles/MethodsEasy.jav (100%) rename {src/test/resources => resources}/javFiles/Op1.jav (100%) rename {src/test/resources => resources}/javFiles/Package.jav (100%) rename {src/test/resources => resources}/javFiles/Sorting.jav (100%) rename {src/test/resources => resources}/javFiles/Subclass.jav (100%) rename {src/test/resources => resources}/javFiles/Superclass.jav (100%) rename {src/test/resources => resources}/javFiles/Vector.jav (100%) rename {src/test/resources => resources}/javFiles/fc.jav (100%) rename {src/test/resources => resources}/javFiles/mathStruc.jav (100%) rename {src/test/resources => resources}/javFiles/packageTest/Gen.jav (100%) rename {src/test/resources => resources}/javFiles/packageTest/OLMain.jav (100%) rename {src/test/resources => resources}/javFiles/packageTest/OLOneFile.jav (100%) rename {src/test/resources => resources}/javFiles/packageTest/OLTest.txt (100%) rename {src/test/resources => resources}/javFiles/packageTest/OLextends.jav (100%) rename {src/test/resources => resources}/javFiles/packageTest/Pair2.jav (100%) rename {src/test/resources => resources}/javFiles/packageTest/Test.jav (100%) rename {src/test/resources => resources}/javFiles/packageTest/UseOLMain.java (100%) rename {src/test/resources => resources}/javFiles/packageTest/de/test/ImportTest.jav (100%) rename {src/test/resources => resources}/javFiles/packageTest/de/test/ImportTest2.jav (100%) rename {src/test/resources => resources}/javFiles/packageTest/de/test/ImportTestDefault.jav (100%) rename {src/test/resources => resources}/javFiles/packageTest/de/test/OL.jav (100%) rename {src/test/resources => resources}/javFiles/packageTest/de/test/Pair.jav (100%) rename {src/test/resources => resources}/javFiles/packageTest/de/test/TestClass.jav (100%) rename {src/test/resources => resources}/javFiles/packageTest/de/test/ToImport.jav (100%) rename {src/test/resources => resources}/javFiles/packageTest/de/test/mathStruc.jav (100%) rename {src/test/resources => resources}/javFiles/packageTest/de/test/mathStrucVector.jav (100%) rename {src/test/resources => resources}/javFiles/packageTest/de/test/output/de/test/mathStrucVectoruse.java (100%) rename {src/test/resources => resources}/javFiles/packageTest/de/test/output/mathStrucVectoruse.java (100%) rename {src/test/resources => resources}/javFiles/packageTest/de/test/packageNameTestWrongPackage.jav (100%) rename {src/test/resources => resources}/javFiles/packageTest/de/test/subpackage1/Test1.jav (100%) rename {src/test/resources => resources}/javFiles/packageTest/de/test/subpackage1/ToImport2.jav (100%) rename {src/test/resources => resources}/javFiles/packageTest/de/test/subpackage2/Test2.jav (100%) rename {src/test/resources => resources}/javFiles/packageTest/de/test/subpackage2/ToImport3.jav (100%) rename {src/test/resources => resources}/javFiles/packageTest/de/test/vectorAdd.jav (100%) rename {src/test/resources => resources}/javFiles/test.jav (100%) rename {src/test/resources => resources}/javFiles/test1.jav (100%) rename {src/test/java => resources}/log4jTesting.xml (100%) rename {src/test/resources => resources}/testBytecode/generatedBC/.gitignore (100%) rename {src/test/resources => resources}/testBytecode/public (100%) rename src/main/antlr4/{java8 => de/dhbwstuttgart/parser/antlr}/Java8.g4 (100%) delete mode 100644 src/main/antlr4/java8/Java8.tokens delete mode 100644 src/main/antlr4/java8/Java8Lexer.tokens delete mode 100644 src/main/antlr4/sat/UnifyResult.g4 delete mode 100644 src/main/antlr4/sat/UnifyResult.tokens delete mode 100644 src/main/antlr4/sat/UnifyResultLexer.tokens delete mode 100644 src/main/java/de/dhbwstuttgart/parser/antlr/Java8.tokens delete mode 100644 src/main/java/de/dhbwstuttgart/parser/antlr/Java8BaseListener.java delete mode 100644 src/main/java/de/dhbwstuttgart/parser/antlr/Java8Lexer.java delete mode 100644 src/main/java/de/dhbwstuttgart/parser/antlr/Java8Lexer.tokens delete mode 100644 src/main/java/de/dhbwstuttgart/parser/antlr/Java8Listener.java delete mode 100644 src/main/java/de/dhbwstuttgart/parser/antlr/Java8Parser.java delete mode 100644 src/test/java/AllgemeinTest.java rename src/test/java/{ => java}/astfactory/ASTFactoryTest.java (100%) rename src/test/java/{ => java}/bytecode/BinaryTest.java (87%) rename src/test/java/{ => java}/bytecode/ClassGenLamTest.java (82%) rename src/test/java/{ => java}/bytecode/FacTest.java (87%) rename src/test/java/{ => java}/bytecode/FacultyTest.java (85%) rename src/test/java/{ => java}/bytecode/FieldTest.java (77%) rename src/test/java/{ => java}/bytecode/FieldTph2Test.java (81%) rename src/test/java/{ => java}/bytecode/FieldTphConsMethTest.java (80%) rename src/test/java/{ => java}/bytecode/FieldTphMMethTest.java (84%) rename src/test/java/{ => java}/bytecode/GenTest.java (75%) rename src/test/java/{ => java}/bytecode/GreaterEqualTest.java (96%) rename src/test/java/{ => java}/bytecode/GreaterThanTest.java (96%) rename src/test/java/{ => java}/bytecode/IdTest.java (74%) rename src/test/java/{ => java}/bytecode/InfTest.java (82%) rename src/test/java/{ => java}/bytecode/InheritTest.java (94%) rename src/test/java/{ => java}/bytecode/InheritTest2.java (94%) rename src/test/java/{ => java}/bytecode/KompTphTest.java (82%) rename src/test/java/{ => java}/bytecode/LambdaCapturetest.java (75%) rename src/test/java/{ => java}/bytecode/LambdaTest.java (81%) rename src/test/java/{ => java}/bytecode/LambdaVoidTest.java (80%) rename src/test/java/{ => java}/bytecode/LessEqualTest.java (96%) rename src/test/java/{ => java}/bytecode/LessThanTest.java (96%) rename src/test/java/{ => java}/bytecode/MatrixOpTest.java (94%) rename src/test/java/{ => java}/bytecode/MatrixTest.java (93%) rename src/test/java/{ => java}/bytecode/MergeTest.java (84%) rename src/test/java/{ => java}/bytecode/OLFunTest.java (81%) rename src/test/java/{ => java}/bytecode/OLTest.java (95%) rename src/test/java/{ => java}/bytecode/OpTest.java (90%) rename src/test/java/{ => java}/bytecode/OverloadingSortingTest.java (89%) rename src/test/java/{ => java}/bytecode/OverloadingTest.java (90%) rename src/test/java/{ => java}/bytecode/PlusTest.java (90%) rename src/test/java/{ => java}/bytecode/PostIncTest.java (91%) rename src/test/java/{ => java}/bytecode/PreIncTest.java (91%) rename src/test/java/{ => java}/bytecode/PutTest.java (94%) rename src/test/java/{ => java}/bytecode/RelOpsTest.java (87%) rename src/test/java/{ => java}/bytecode/SimpleCycleTest.java (82%) rename src/test/java/{ => java}/bytecode/SortingTest.java (81%) rename src/test/java/{ => java}/bytecode/SubMatTest.java (73%) rename src/test/java/{ => java}/bytecode/Tph2Test.java (90%) rename src/test/java/{ => java}/bytecode/Tph3Test.java (76%) rename src/test/java/{ => java}/bytecode/Tph5Test.java (86%) rename src/test/java/{ => java}/bytecode/Tph6Test.java (86%) rename src/test/java/{ => java}/bytecode/TphTest.java (90%) rename src/test/java/{ => java}/bytecode/TypedIDTest.java (74%) rename src/test/java/{ => java}/bytecode/VectorAddTest.java (82%) rename src/test/java/{ => java}/bytecode/VectorSuperTest.java (85%) rename src/test/java/{ => java}/bytecode/WhileTest.java (91%) rename src/test/java/{ => java}/bytecode/YTest.java (81%) rename src/test/java/{ => java}/bytecode/applyLambdaTest.java (77%) rename src/test/java/{ => java}/bytecode/mathStrucIntegerTest.java (74%) rename src/test/java/{ => java}/bytecode/mathStrucMatrixOPTest.java.txt (69%) rename src/test/java/{ => java}/bytecode/mathStrucTest.java (74%) rename src/test/java/{ => java}/bytecode/mathStrucVectorAddTest.java.txt (74%) rename src/test/java/{ => java}/constraintSimplify/FamilyOfGenerics.java (100%) rename src/test/java/{ => java}/finiteClosure/SuperInterfacesTest.java (100%) rename src/test/java/{ => java}/insertGenerics/FamilyOfGeneratedGenericsTest.java (100%) rename src/test/java/{ => java}/insertGenerics/TestAny.java (98%) rename src/test/java/{ => java}/insertGenerics/TestClassField.java (98%) rename src/test/java/{ => java}/insertGenerics/TestContraVariant.java (98%) rename src/test/java/{ => java}/insertGenerics/TestExample42.java (100%) rename src/test/java/{ => java}/insertGenerics/TestExample42_allInOneMethod.java (100%) rename src/test/java/{ => java}/insertGenerics/TestGGFinder.java (97%) rename src/test/java/{ => java}/insertGenerics/TestLocalVarLambda.java (97%) rename src/test/java/{ => java}/insertGenerics/TestMutualRecursion.java (98%) rename src/test/java/{ => java}/insertGenerics/TestReturnVar.java (98%) rename src/test/java/{ => java}/insertGenerics/TestSecondLineOfClassConstraints.java (98%) rename src/test/java/{ => java}/insertGenerics/TestTPHsAndGenerics.java (98%) rename src/test/java/{ => java}/insertGenerics/TestTPHsAndGenerics2.java (98%) rename src/test/java/{ => java}/insertGenerics/TestThreeArgs.java (97%) rename src/test/java/{ => java}/insertGenerics/TestTransitiveClosure.java (100%) rename src/test/java/{ => java}/insertGenerics/TestTwoArgs.java (98%) rename src/test/java/{ => java}/insertGenerics/TestTwoArgs2.java (97%) rename src/test/java/{ => java}/insertGenerics/TestTwoCalls.java (97%) rename src/test/java/{ => java}/insertGenerics/TestVector.java (97%) rename src/test/java/{ => java}/insertGenerics/TestVectorArg.java (97%) rename src/test/java/{ => java}/insertGenerics/TestVoidMeth.java (98%) rename src/test/{resources => java/java}/log4jTesting.xml (100%) rename src/test/java/{ => java}/packages/Bytecode.java (97%) rename src/test/java/{ => java}/packages/CheckPackageFolder.java (97%) rename src/test/java/{ => java}/packages/ConsoleInterfaceTest.java (98%) rename src/test/java/{ => java}/packages/ImportTest.java (98%) rename src/test/java/{ => java}/packages/LoadDefaultPackageClassesTest.java (97%) rename src/test/java/{ => java}/packages/OLOneFileTest.java (97%) rename src/test/java/{ => java}/packages/OLTest.java (93%) rename src/test/java/{ => java}/packages/ParsePackageName.java (90%) rename src/test/java/{ => java}/packages/mathStrucMatrixOPTest.java.txt (96%) rename src/test/java/{ => java}/packages/mathStrucVectorTest.java (96%) rename src/test/java/{ => java}/parser/AntlrTest.jav (100%) rename src/test/java/{ => java}/parser/BoundedParameter.jav (100%) rename src/test/java/{ => java}/parser/CastTest.jav (100%) rename src/test/java/{ => java}/parser/ExtendsTest.jav (100%) rename src/test/java/{ => java}/parser/FeatherWeightJava.jav (100%) rename src/test/java/{ => java}/parser/FieldInitializationTest.jav (100%) rename src/test/java/{ => java}/parser/FieldVarTest.jav (100%) rename src/test/java/{ => java}/parser/GeneralParserTest.java (100%) rename src/test/java/{ => java}/parser/GenericFieldVarTest.jav (100%) rename src/test/java/{ => java}/parser/ImportTest.jav (100%) rename src/test/java/{ => java}/parser/ImportTest2.jav (100%) rename src/test/java/{ => java}/parser/ImportTestGeneric.jav (100%) rename src/test/java/{ => java}/parser/NewTest.jav (100%) rename src/test/java/{ => java}/parser/OpratorTest.jav (100%) rename src/test/java/{ => java}/parser/PackageNameTest.jav (100%) rename src/test/java/{ => java}/parser/StatementsTest.jav (100%) rename src/test/java/{ => java}/parser/StructuralTypes.jav (100%) rename src/test/java/{ => java}/parser/WhileTest.jav (100%) rename src/test/java/{ => java}/typeinference/JavaTXCompilerTest.java (99%) rename src/test/java/{ => java}/typeinference/Meth_GenTest.java (99%) rename src/test/java/{ => java}/typeinference/UnifyTest.java (99%) rename src/test/java/{ => java}/visualisation/ToString.java (100%) delete mode 100644 src/test/resources/testBytecode/manually/Fac1.java delete mode 100644 src/test/resources/testBytecode/manually/Fac2.java delete mode 100644 src/test/resources/testBytecode/manually/LamAssign.java delete mode 100644 src/test/resources/testBytecode/manually/LamAssignWithM.java delete mode 100644 src/test/resources/testBytecode/manually/LamWithAnField.java delete mode 100644 src/test/resources/testBytecode/manually/LamWithField.java delete mode 100644 src/test/resources/testBytecode/manually/ReturnM1.java diff --git a/pom.xml b/pom.xml index 2f5df9a2d..8fe73131b 100644 --- a/pom.xml +++ b/pom.xml @@ -43,39 +43,10 @@ http://maven.apache.org/maven-v4_0_0.xsd"> asm 7.0 - - - target - target/classes - ${project.artifactId}-${project.version} - target/test-classes - - org.apache.maven.plugins - maven-surefire-plugin - 3.0.0-M3 - - true - - - org.antlr antlr4-maven-plugin @@ -86,38 +57,9 @@ http://maven.apache.org/maven-v4_0_0.xsd"> antlr4 - - src/main/antlr4/java8 - ${project.basedir}/src/main/java/de/dhbwstuttgart/parser/antlr - - -package - de.dhbwstuttgart.parser.antlr - - - - maven-assembly-plugin - - - package - - single - - - - - - - de.dhbwstuttgart.core.ConsoleInterface - - - - jar-with-dependencies - - - @@ -127,11 +69,8 @@ http://maven.apache.org/maven-v4_0_0.xsd"> - UTF-8 - UTF-8 - 18 - 18 - 0.23.0 + 17 + 17 de.dhbwstuttgart.core.ConsoleInterface diff --git a/src/test/resources/AllgemeinTest/Box.jav b/resources/AllgemeinTest/Box.jav similarity index 100% rename from src/test/resources/AllgemeinTest/Box.jav rename to resources/AllgemeinTest/Box.jav diff --git a/src/test/resources/AllgemeinTest/Box_Main.jav b/resources/AllgemeinTest/Box_Main.jav similarity index 100% rename from src/test/resources/AllgemeinTest/Box_Main.jav rename to resources/AllgemeinTest/Box_Main.jav diff --git a/src/test/resources/AllgemeinTest/FCTest1.jav b/resources/AllgemeinTest/FCTest1.jav similarity index 100% rename from src/test/resources/AllgemeinTest/FCTest1.jav rename to resources/AllgemeinTest/FCTest1.jav diff --git a/src/test/resources/AllgemeinTest/FCTest2.jav b/resources/AllgemeinTest/FCTest2.jav similarity index 100% rename from src/test/resources/AllgemeinTest/FCTest2.jav rename to resources/AllgemeinTest/FCTest2.jav diff --git a/src/test/resources/AllgemeinTest/FCTest3.jav b/resources/AllgemeinTest/FCTest3.jav similarity index 100% rename from src/test/resources/AllgemeinTest/FCTest3.jav rename to resources/AllgemeinTest/FCTest3.jav diff --git a/src/test/resources/AllgemeinTest/GenTest.jav b/resources/AllgemeinTest/GenTest.jav similarity index 100% rename from src/test/resources/AllgemeinTest/GenTest.jav rename to resources/AllgemeinTest/GenTest.jav diff --git a/src/test/resources/AllgemeinTest/Generics.jav b/resources/AllgemeinTest/Generics.jav similarity index 100% rename from src/test/resources/AllgemeinTest/Generics.jav rename to resources/AllgemeinTest/Generics.jav diff --git a/src/test/resources/AllgemeinTest/M.jav b/resources/AllgemeinTest/M.jav similarity index 100% rename from src/test/resources/AllgemeinTest/M.jav rename to resources/AllgemeinTest/M.jav diff --git a/src/test/resources/AllgemeinTest/OverloadingMain.jav b/resources/AllgemeinTest/OverloadingMain.jav similarity index 100% rename from src/test/resources/AllgemeinTest/OverloadingMain.jav rename to resources/AllgemeinTest/OverloadingMain.jav diff --git a/src/test/resources/AllgemeinTest/Overloading_Generics.jav b/resources/AllgemeinTest/Overloading_Generics.jav similarity index 100% rename from src/test/resources/AllgemeinTest/Overloading_Generics.jav rename to resources/AllgemeinTest/Overloading_Generics.jav diff --git a/src/test/resources/AllgemeinTest/OverrideMain.jav b/resources/AllgemeinTest/OverrideMain.jav similarity index 100% rename from src/test/resources/AllgemeinTest/OverrideMain.jav rename to resources/AllgemeinTest/OverrideMain.jav diff --git a/src/test/resources/AllgemeinTest/OverrideMainRet.jav b/resources/AllgemeinTest/OverrideMainRet.jav similarity index 100% rename from src/test/resources/AllgemeinTest/OverrideMainRet.jav rename to resources/AllgemeinTest/OverrideMainRet.jav diff --git a/src/test/resources/AllgemeinTest/Pair.java b/resources/AllgemeinTest/Pair.java similarity index 100% rename from src/test/resources/AllgemeinTest/Pair.java rename to resources/AllgemeinTest/Pair.java diff --git a/src/test/resources/AllgemeinTest/Put.jav b/resources/AllgemeinTest/Put.jav similarity index 100% rename from src/test/resources/AllgemeinTest/Put.jav rename to resources/AllgemeinTest/Put.jav diff --git a/src/test/resources/AllgemeinTest/Test.jav b/resources/AllgemeinTest/Test.jav similarity index 100% rename from src/test/resources/AllgemeinTest/Test.jav rename to resources/AllgemeinTest/Test.jav diff --git a/src/test/resources/AllgemeinTest/TestSubTypless.jav b/resources/AllgemeinTest/TestSubTypless.jav similarity index 100% rename from src/test/resources/AllgemeinTest/TestSubTypless.jav rename to resources/AllgemeinTest/TestSubTypless.jav diff --git a/src/test/resources/AllgemeinTest/Twice.jav b/resources/AllgemeinTest/Twice.jav similarity index 100% rename from src/test/resources/AllgemeinTest/Twice.jav rename to resources/AllgemeinTest/Twice.jav diff --git a/src/test/resources/AllgemeinTest/Var.jav b/resources/AllgemeinTest/Var.jav similarity index 100% rename from src/test/resources/AllgemeinTest/Var.jav rename to resources/AllgemeinTest/Var.jav diff --git a/src/test/resources/AllgemeinTest/Wildcard_Andi.jav b/resources/AllgemeinTest/Wildcard_Andi.jav similarity index 100% rename from src/test/resources/AllgemeinTest/Wildcard_Andi.jav rename to resources/AllgemeinTest/Wildcard_Andi.jav diff --git a/src/test/resources/AllgemeinTest/addList.jav b/resources/AllgemeinTest/addList.jav similarity index 100% rename from src/test/resources/AllgemeinTest/addList.jav rename to resources/AllgemeinTest/addList.jav diff --git a/src/test/resources/AllgemeinTest/wildcardPair.jav b/resources/AllgemeinTest/wildcardPair.jav similarity index 100% rename from src/test/resources/AllgemeinTest/wildcardPair.jav rename to resources/AllgemeinTest/wildcardPair.jav diff --git a/src/test/resources/bytecode/javFiles/AA.jav b/resources/bytecode/javFiles/AA.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/AA.jav rename to resources/bytecode/javFiles/AA.jav diff --git a/src/test/resources/bytecode/javFiles/AssignToLit.jav b/resources/bytecode/javFiles/AssignToLit.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/AssignToLit.jav rename to resources/bytecode/javFiles/AssignToLit.jav diff --git a/src/test/resources/bytecode/javFiles/BB.jav b/resources/bytecode/javFiles/BB.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/BB.jav rename to resources/bytecode/javFiles/BB.jav diff --git a/src/test/resources/bytecode/javFiles/BinaryInMeth.jav b/resources/bytecode/javFiles/BinaryInMeth.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/BinaryInMeth.jav rename to resources/bytecode/javFiles/BinaryInMeth.jav diff --git a/src/test/resources/bytecode/javFiles/CC.jav b/resources/bytecode/javFiles/CC.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/CC.jav rename to resources/bytecode/javFiles/CC.jav diff --git a/src/test/resources/bytecode/javFiles/ClassGenLam.jav b/resources/bytecode/javFiles/ClassGenLam.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/ClassGenLam.jav rename to resources/bytecode/javFiles/ClassGenLam.jav diff --git a/src/test/resources/bytecode/javFiles/DD.jav b/resources/bytecode/javFiles/DD.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/DD.jav rename to resources/bytecode/javFiles/DD.jav diff --git a/src/test/resources/bytecode/javFiles/DuMethod.jav b/resources/bytecode/javFiles/DuMethod.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/DuMethod.jav rename to resources/bytecode/javFiles/DuMethod.jav diff --git a/src/test/resources/bytecode/javFiles/EmptyMethod.jav b/resources/bytecode/javFiles/EmptyMethod.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/EmptyMethod.jav rename to resources/bytecode/javFiles/EmptyMethod.jav diff --git a/src/test/resources/bytecode/javFiles/Example.jav b/resources/bytecode/javFiles/Example.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/Example.jav rename to resources/bytecode/javFiles/Example.jav diff --git a/src/test/resources/bytecode/javFiles/Exceptions.jav b/resources/bytecode/javFiles/Exceptions.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/Exceptions.jav rename to resources/bytecode/javFiles/Exceptions.jav diff --git a/src/test/resources/bytecode/javFiles/Fac.jav b/resources/bytecode/javFiles/Fac.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/Fac.jav rename to resources/bytecode/javFiles/Fac.jav diff --git a/src/test/resources/bytecode/javFiles/Faculty.jav b/resources/bytecode/javFiles/Faculty.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/Faculty.jav rename to resources/bytecode/javFiles/Faculty.jav diff --git a/src/test/resources/bytecode/javFiles/Faculty2.jav b/resources/bytecode/javFiles/Faculty2.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/Faculty2.jav rename to resources/bytecode/javFiles/Faculty2.jav diff --git a/src/test/resources/bytecode/javFiles/Field.jav b/resources/bytecode/javFiles/Field.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/Field.jav rename to resources/bytecode/javFiles/Field.jav diff --git a/src/test/resources/bytecode/javFiles/FieldTph.jav b/resources/bytecode/javFiles/FieldTph.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/FieldTph.jav rename to resources/bytecode/javFiles/FieldTph.jav diff --git a/src/test/resources/bytecode/javFiles/FieldTph2.jav b/resources/bytecode/javFiles/FieldTph2.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/FieldTph2.jav rename to resources/bytecode/javFiles/FieldTph2.jav diff --git a/src/test/resources/bytecode/javFiles/FieldTphConsMeth.jav b/resources/bytecode/javFiles/FieldTphConsMeth.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/FieldTphConsMeth.jav rename to resources/bytecode/javFiles/FieldTphConsMeth.jav diff --git a/src/test/resources/bytecode/javFiles/FieldTphMMeth.jav b/resources/bytecode/javFiles/FieldTphMMeth.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/FieldTphMMeth.jav rename to resources/bytecode/javFiles/FieldTphMMeth.jav diff --git a/src/test/resources/bytecode/javFiles/For.jav b/resources/bytecode/javFiles/For.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/For.jav rename to resources/bytecode/javFiles/For.jav diff --git a/src/test/resources/bytecode/javFiles/FunOL.jav b/resources/bytecode/javFiles/FunOL.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/FunOL.jav rename to resources/bytecode/javFiles/FunOL.jav diff --git a/src/test/resources/bytecode/javFiles/Gen.jav b/resources/bytecode/javFiles/Gen.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/Gen.jav rename to resources/bytecode/javFiles/Gen.jav diff --git a/src/test/resources/bytecode/javFiles/Generics.jav b/resources/bytecode/javFiles/Generics.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/Generics.jav rename to resources/bytecode/javFiles/Generics.jav diff --git a/src/test/resources/bytecode/javFiles/Generics2.jav b/resources/bytecode/javFiles/Generics2.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/Generics2.jav rename to resources/bytecode/javFiles/Generics2.jav diff --git a/src/test/resources/bytecode/javFiles/GreaterEqual.jav b/resources/bytecode/javFiles/GreaterEqual.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/GreaterEqual.jav rename to resources/bytecode/javFiles/GreaterEqual.jav diff --git a/src/test/resources/bytecode/javFiles/GreaterThan.jav b/resources/bytecode/javFiles/GreaterThan.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/GreaterThan.jav rename to resources/bytecode/javFiles/GreaterThan.jav diff --git a/src/test/resources/bytecode/javFiles/Id.jav b/resources/bytecode/javFiles/Id.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/Id.jav rename to resources/bytecode/javFiles/Id.jav diff --git a/src/test/resources/bytecode/javFiles/IfTest.jav b/resources/bytecode/javFiles/IfTest.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/IfTest.jav rename to resources/bytecode/javFiles/IfTest.jav diff --git a/src/test/resources/bytecode/javFiles/Import.jav b/resources/bytecode/javFiles/Import.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/Import.jav rename to resources/bytecode/javFiles/Import.jav diff --git a/src/test/resources/bytecode/javFiles/Inf.jav b/resources/bytecode/javFiles/Inf.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/Inf.jav rename to resources/bytecode/javFiles/Inf.jav diff --git a/src/test/resources/bytecode/javFiles/Inherit.jav b/resources/bytecode/javFiles/Inherit.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/Inherit.jav rename to resources/bytecode/javFiles/Inherit.jav diff --git a/src/test/resources/bytecode/javFiles/Inherit2.jav b/resources/bytecode/javFiles/Inherit2.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/Inherit2.jav rename to resources/bytecode/javFiles/Inherit2.jav diff --git a/src/test/resources/bytecode/javFiles/Interface1.jav b/resources/bytecode/javFiles/Interface1.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/Interface1.jav rename to resources/bytecode/javFiles/Interface1.jav diff --git a/src/test/resources/bytecode/javFiles/KompTph.jav b/resources/bytecode/javFiles/KompTph.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/KompTph.jav rename to resources/bytecode/javFiles/KompTph.jav diff --git a/src/test/resources/bytecode/javFiles/LamRunnable.jav b/resources/bytecode/javFiles/LamRunnable.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/LamRunnable.jav rename to resources/bytecode/javFiles/LamRunnable.jav diff --git a/src/test/resources/bytecode/javFiles/Lambda.jav b/resources/bytecode/javFiles/Lambda.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/Lambda.jav rename to resources/bytecode/javFiles/Lambda.jav diff --git a/src/test/resources/bytecode/javFiles/Lambda2.jav b/resources/bytecode/javFiles/Lambda2.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/Lambda2.jav rename to resources/bytecode/javFiles/Lambda2.jav diff --git a/src/test/resources/bytecode/javFiles/Lambda3.jav b/resources/bytecode/javFiles/Lambda3.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/Lambda3.jav rename to resources/bytecode/javFiles/Lambda3.jav diff --git a/src/test/resources/bytecode/javFiles/Lambda4.jav b/resources/bytecode/javFiles/Lambda4.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/Lambda4.jav rename to resources/bytecode/javFiles/Lambda4.jav diff --git a/src/test/resources/bytecode/javFiles/LambdaCapture.jav b/resources/bytecode/javFiles/LambdaCapture.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/LambdaCapture.jav rename to resources/bytecode/javFiles/LambdaCapture.jav diff --git a/src/test/resources/bytecode/javFiles/LambdaVoid.jav b/resources/bytecode/javFiles/LambdaVoid.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/LambdaVoid.jav rename to resources/bytecode/javFiles/LambdaVoid.jav diff --git a/src/test/resources/bytecode/javFiles/LessEqual.jav b/resources/bytecode/javFiles/LessEqual.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/LessEqual.jav rename to resources/bytecode/javFiles/LessEqual.jav diff --git a/src/test/resources/bytecode/javFiles/LessThan.jav b/resources/bytecode/javFiles/LessThan.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/LessThan.jav rename to resources/bytecode/javFiles/LessThan.jav diff --git a/src/test/resources/bytecode/javFiles/Matrix.jav b/resources/bytecode/javFiles/Matrix.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/Matrix.jav rename to resources/bytecode/javFiles/Matrix.jav diff --git a/src/test/resources/bytecode/javFiles/MatrixOP.jav b/resources/bytecode/javFiles/MatrixOP.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/MatrixOP.jav rename to resources/bytecode/javFiles/MatrixOP.jav diff --git a/src/test/resources/bytecode/javFiles/Merge.jav b/resources/bytecode/javFiles/Merge.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/Merge.jav rename to resources/bytecode/javFiles/Merge.jav diff --git a/src/test/resources/bytecode/javFiles/Methods.jav b/resources/bytecode/javFiles/Methods.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/Methods.jav rename to resources/bytecode/javFiles/Methods.jav diff --git a/src/test/resources/bytecode/javFiles/OL.jav b/resources/bytecode/javFiles/OL.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/OL.jav rename to resources/bytecode/javFiles/OL.jav diff --git a/src/test/resources/bytecode/javFiles/OLFun.jav b/resources/bytecode/javFiles/OLFun.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/OLFun.jav rename to resources/bytecode/javFiles/OLFun.jav diff --git a/src/test/resources/bytecode/javFiles/Op.jav b/resources/bytecode/javFiles/Op.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/Op.jav rename to resources/bytecode/javFiles/Op.jav diff --git a/src/test/resources/bytecode/javFiles/Op2.jav b/resources/bytecode/javFiles/Op2.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/Op2.jav rename to resources/bytecode/javFiles/Op2.jav diff --git a/src/test/resources/bytecode/javFiles/OverlaodGen.jav b/resources/bytecode/javFiles/OverlaodGen.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/OverlaodGen.jav rename to resources/bytecode/javFiles/OverlaodGen.jav diff --git a/src/test/resources/bytecode/javFiles/Overloading.jav b/resources/bytecode/javFiles/Overloading.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/Overloading.jav rename to resources/bytecode/javFiles/Overloading.jav diff --git a/src/test/resources/bytecode/javFiles/Plus.jav b/resources/bytecode/javFiles/Plus.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/Plus.jav rename to resources/bytecode/javFiles/Plus.jav diff --git a/src/test/resources/bytecode/javFiles/PostIncDec.jav b/resources/bytecode/javFiles/PostIncDec.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/PostIncDec.jav rename to resources/bytecode/javFiles/PostIncDec.jav diff --git a/src/test/resources/bytecode/javFiles/PreInc.jav b/resources/bytecode/javFiles/PreInc.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/PreInc.jav rename to resources/bytecode/javFiles/PreInc.jav diff --git a/src/test/resources/bytecode/javFiles/Put.jav b/resources/bytecode/javFiles/Put.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/Put.jav rename to resources/bytecode/javFiles/Put.jav diff --git a/src/test/resources/bytecode/javFiles/RecursiveMeth.jav b/resources/bytecode/javFiles/RecursiveMeth.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/RecursiveMeth.jav rename to resources/bytecode/javFiles/RecursiveMeth.jav diff --git a/src/test/resources/bytecode/javFiles/RelOps.jav b/resources/bytecode/javFiles/RelOps.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/RelOps.jav rename to resources/bytecode/javFiles/RelOps.jav diff --git a/src/test/resources/bytecode/javFiles/ReturnMethod.jav b/resources/bytecode/javFiles/ReturnMethod.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/ReturnMethod.jav rename to resources/bytecode/javFiles/ReturnMethod.jav diff --git a/src/test/resources/bytecode/javFiles/SimpleCycle.jav b/resources/bytecode/javFiles/SimpleCycle.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/SimpleCycle.jav rename to resources/bytecode/javFiles/SimpleCycle.jav diff --git a/src/test/resources/bytecode/javFiles/Sorting.jav b/resources/bytecode/javFiles/Sorting.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/Sorting.jav rename to resources/bytecode/javFiles/Sorting.jav diff --git a/src/test/resources/bytecode/javFiles/StaticM.jav b/resources/bytecode/javFiles/StaticM.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/StaticM.jav rename to resources/bytecode/javFiles/StaticM.jav diff --git a/src/test/resources/bytecode/javFiles/SubMatrix.jav b/resources/bytecode/javFiles/SubMatrix.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/SubMatrix.jav rename to resources/bytecode/javFiles/SubMatrix.jav diff --git a/src/test/resources/bytecode/javFiles/Tph.jav b/resources/bytecode/javFiles/Tph.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/Tph.jav rename to resources/bytecode/javFiles/Tph.jav diff --git a/src/test/resources/bytecode/javFiles/Tph2.jav b/resources/bytecode/javFiles/Tph2.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/Tph2.jav rename to resources/bytecode/javFiles/Tph2.jav diff --git a/src/test/resources/bytecode/javFiles/Tph3.jav b/resources/bytecode/javFiles/Tph3.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/Tph3.jav rename to resources/bytecode/javFiles/Tph3.jav diff --git a/src/test/resources/bytecode/javFiles/Tph4.jav b/resources/bytecode/javFiles/Tph4.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/Tph4.jav rename to resources/bytecode/javFiles/Tph4.jav diff --git a/src/test/resources/bytecode/javFiles/Tph5.jav b/resources/bytecode/javFiles/Tph5.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/Tph5.jav rename to resources/bytecode/javFiles/Tph5.jav diff --git a/src/test/resources/bytecode/javFiles/Tph6.jav b/resources/bytecode/javFiles/Tph6.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/Tph6.jav rename to resources/bytecode/javFiles/Tph6.jav diff --git a/src/test/resources/bytecode/javFiles/TypedID.jav b/resources/bytecode/javFiles/TypedID.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/TypedID.jav rename to resources/bytecode/javFiles/TypedID.jav diff --git a/src/test/resources/bytecode/javFiles/VectorAdd.jav b/resources/bytecode/javFiles/VectorAdd.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/VectorAdd.jav rename to resources/bytecode/javFiles/VectorAdd.jav diff --git a/src/test/resources/bytecode/javFiles/VectorSuper.jav b/resources/bytecode/javFiles/VectorSuper.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/VectorSuper.jav rename to resources/bytecode/javFiles/VectorSuper.jav diff --git a/src/test/resources/bytecode/javFiles/VoidMeth.jav b/resources/bytecode/javFiles/VoidMeth.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/VoidMeth.jav rename to resources/bytecode/javFiles/VoidMeth.jav diff --git a/src/test/resources/bytecode/javFiles/WC.jav b/resources/bytecode/javFiles/WC.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/WC.jav rename to resources/bytecode/javFiles/WC.jav diff --git a/src/test/resources/bytecode/javFiles/While.jav b/resources/bytecode/javFiles/While.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/While.jav rename to resources/bytecode/javFiles/While.jav diff --git a/src/test/resources/bytecode/javFiles/Y.jav b/resources/bytecode/javFiles/Y.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/Y.jav rename to resources/bytecode/javFiles/Y.jav diff --git a/src/test/resources/bytecode/javFiles/applyLambda.jav b/resources/bytecode/javFiles/applyLambda.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/applyLambda.jav rename to resources/bytecode/javFiles/applyLambda.jav diff --git a/src/test/resources/bytecode/javFiles/mathStruc.jav b/resources/bytecode/javFiles/mathStruc.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/mathStruc.jav rename to resources/bytecode/javFiles/mathStruc.jav diff --git a/src/test/resources/bytecode/javFiles/mathStrucInteger.jav b/resources/bytecode/javFiles/mathStrucInteger.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/mathStrucInteger.jav rename to resources/bytecode/javFiles/mathStrucInteger.jav diff --git a/src/test/resources/bytecode/javFiles/mathStrucMatrixOP.jav b/resources/bytecode/javFiles/mathStrucMatrixOP.jav similarity index 100% rename from src/test/resources/bytecode/javFiles/mathStrucMatrixOP.jav rename to resources/bytecode/javFiles/mathStrucMatrixOP.jav diff --git a/src/test/resources/insertGenericsJav/TestAny.jav b/resources/insertGenericsJav/TestAny.jav similarity index 100% rename from src/test/resources/insertGenericsJav/TestAny.jav rename to resources/insertGenericsJav/TestAny.jav diff --git a/src/test/resources/insertGenericsJav/TestClassField.jav b/resources/insertGenericsJav/TestClassField.jav similarity index 100% rename from src/test/resources/insertGenericsJav/TestClassField.jav rename to resources/insertGenericsJav/TestClassField.jav diff --git a/src/test/resources/insertGenericsJav/TestContraVariant.jav b/resources/insertGenericsJav/TestContraVariant.jav similarity index 100% rename from src/test/resources/insertGenericsJav/TestContraVariant.jav rename to resources/insertGenericsJav/TestContraVariant.jav diff --git a/src/test/resources/insertGenericsJav/TestGGFinder.jav b/resources/insertGenericsJav/TestGGFinder.jav similarity index 100% rename from src/test/resources/insertGenericsJav/TestGGFinder.jav rename to resources/insertGenericsJav/TestGGFinder.jav diff --git a/src/test/resources/insertGenericsJav/TestLocalVarLambda.jav b/resources/insertGenericsJav/TestLocalVarLambda.jav similarity index 100% rename from src/test/resources/insertGenericsJav/TestLocalVarLambda.jav rename to resources/insertGenericsJav/TestLocalVarLambda.jav diff --git a/src/test/resources/insertGenericsJav/TestMutualRecursion.jav b/resources/insertGenericsJav/TestMutualRecursion.jav similarity index 100% rename from src/test/resources/insertGenericsJav/TestMutualRecursion.jav rename to resources/insertGenericsJav/TestMutualRecursion.jav diff --git a/src/test/resources/insertGenericsJav/TestMutualRecursionWithField.jav b/resources/insertGenericsJav/TestMutualRecursionWithField.jav similarity index 100% rename from src/test/resources/insertGenericsJav/TestMutualRecursionWithField.jav rename to resources/insertGenericsJav/TestMutualRecursionWithField.jav diff --git a/src/test/resources/insertGenericsJav/TestMutualRecursionWithField2.jav b/resources/insertGenericsJav/TestMutualRecursionWithField2.jav similarity index 100% rename from src/test/resources/insertGenericsJav/TestMutualRecursionWithField2.jav rename to resources/insertGenericsJav/TestMutualRecursionWithField2.jav diff --git a/src/test/resources/insertGenericsJav/TestMutualRecursionWithField3.jav b/resources/insertGenericsJav/TestMutualRecursionWithField3.jav similarity index 100% rename from src/test/resources/insertGenericsJav/TestMutualRecursionWithField3.jav rename to resources/insertGenericsJav/TestMutualRecursionWithField3.jav diff --git a/src/test/resources/insertGenericsJav/TestReturnVar.jav b/resources/insertGenericsJav/TestReturnVar.jav similarity index 100% rename from src/test/resources/insertGenericsJav/TestReturnVar.jav rename to resources/insertGenericsJav/TestReturnVar.jav diff --git a/src/test/resources/insertGenericsJav/TestSecondLineOfClassConstraints.jav b/resources/insertGenericsJav/TestSecondLineOfClassConstraints.jav similarity index 100% rename from src/test/resources/insertGenericsJav/TestSecondLineOfClassConstraints.jav rename to resources/insertGenericsJav/TestSecondLineOfClassConstraints.jav diff --git a/src/test/resources/insertGenericsJav/TestTPHsAndGenerics.jav b/resources/insertGenericsJav/TestTPHsAndGenerics.jav similarity index 100% rename from src/test/resources/insertGenericsJav/TestTPHsAndGenerics.jav rename to resources/insertGenericsJav/TestTPHsAndGenerics.jav diff --git a/src/test/resources/insertGenericsJav/TestTPHsAndGenerics2.jav b/resources/insertGenericsJav/TestTPHsAndGenerics2.jav similarity index 100% rename from src/test/resources/insertGenericsJav/TestTPHsAndGenerics2.jav rename to resources/insertGenericsJav/TestTPHsAndGenerics2.jav diff --git a/src/test/resources/insertGenericsJav/TestThreeArgs.jav b/resources/insertGenericsJav/TestThreeArgs.jav similarity index 100% rename from src/test/resources/insertGenericsJav/TestThreeArgs.jav rename to resources/insertGenericsJav/TestThreeArgs.jav diff --git a/src/test/resources/insertGenericsJav/TestTwoArgs.jav b/resources/insertGenericsJav/TestTwoArgs.jav similarity index 100% rename from src/test/resources/insertGenericsJav/TestTwoArgs.jav rename to resources/insertGenericsJav/TestTwoArgs.jav diff --git a/src/test/resources/insertGenericsJav/TestTwoArgs2.jav b/resources/insertGenericsJav/TestTwoArgs2.jav similarity index 100% rename from src/test/resources/insertGenericsJav/TestTwoArgs2.jav rename to resources/insertGenericsJav/TestTwoArgs2.jav diff --git a/src/test/resources/insertGenericsJav/TestTwoCalls.jav b/resources/insertGenericsJav/TestTwoCalls.jav similarity index 100% rename from src/test/resources/insertGenericsJav/TestTwoCalls.jav rename to resources/insertGenericsJav/TestTwoCalls.jav diff --git a/src/test/resources/insertGenericsJav/TestVector.jav b/resources/insertGenericsJav/TestVector.jav similarity index 100% rename from src/test/resources/insertGenericsJav/TestVector.jav rename to resources/insertGenericsJav/TestVector.jav diff --git a/src/test/resources/insertGenericsJav/TestVectorArg.jav b/resources/insertGenericsJav/TestVectorArg.jav similarity index 100% rename from src/test/resources/insertGenericsJav/TestVectorArg.jav rename to resources/insertGenericsJav/TestVectorArg.jav diff --git a/src/test/resources/insertGenericsJav/TestVoidMeth.jav b/resources/insertGenericsJav/TestVoidMeth.jav similarity index 100% rename from src/test/resources/insertGenericsJav/TestVoidMeth.jav rename to resources/insertGenericsJav/TestVoidMeth.jav diff --git a/src/test/resources/javFiles/AddLong.jav b/resources/javFiles/AddLong.jav similarity index 100% rename from src/test/resources/javFiles/AddLong.jav rename to resources/javFiles/AddLong.jav diff --git a/src/test/resources/javFiles/EmptyClass.jav b/resources/javFiles/EmptyClass.jav similarity index 100% rename from src/test/resources/javFiles/EmptyClass.jav rename to resources/javFiles/EmptyClass.jav diff --git a/src/test/resources/javFiles/EmptyMethod.jav b/resources/javFiles/EmptyMethod.jav similarity index 100% rename from src/test/resources/javFiles/EmptyMethod.jav rename to resources/javFiles/EmptyMethod.jav diff --git a/src/test/resources/javFiles/Expressions.jav b/resources/javFiles/Expressions.jav similarity index 100% rename from src/test/resources/javFiles/Expressions.jav rename to resources/javFiles/Expressions.jav diff --git a/src/test/resources/javFiles/FC_Matrix.jav b/resources/javFiles/FC_Matrix.jav similarity index 100% rename from src/test/resources/javFiles/FC_Matrix.jav rename to resources/javFiles/FC_Matrix.jav diff --git a/src/test/resources/javFiles/Faculty.jav b/resources/javFiles/Faculty.jav similarity index 100% rename from src/test/resources/javFiles/Faculty.jav rename to resources/javFiles/Faculty.jav diff --git a/src/test/resources/javFiles/FacultyIf.jav b/resources/javFiles/FacultyIf.jav similarity index 100% rename from src/test/resources/javFiles/FacultyIf.jav rename to resources/javFiles/FacultyIf.jav diff --git a/src/test/resources/javFiles/FacultyTyped.jav b/resources/javFiles/FacultyTyped.jav similarity index 100% rename from src/test/resources/javFiles/FacultyTyped.jav rename to resources/javFiles/FacultyTyped.jav diff --git a/src/test/resources/javFiles/FieldAccess.jav b/resources/javFiles/FieldAccess.jav similarity index 100% rename from src/test/resources/javFiles/FieldAccess.jav rename to resources/javFiles/FieldAccess.jav diff --git a/src/test/resources/javFiles/Fields.jav b/resources/javFiles/Fields.jav similarity index 100% rename from src/test/resources/javFiles/Fields.jav rename to resources/javFiles/Fields.jav diff --git a/src/test/resources/javFiles/Generics.jav b/resources/javFiles/Generics.jav similarity index 100% rename from src/test/resources/javFiles/Generics.jav rename to resources/javFiles/Generics.jav diff --git a/src/test/resources/javFiles/IfTest.jav b/resources/javFiles/IfTest.jav similarity index 100% rename from src/test/resources/javFiles/IfTest.jav rename to resources/javFiles/IfTest.jav diff --git a/src/test/resources/javFiles/Import.jav b/resources/javFiles/Import.jav similarity index 100% rename from src/test/resources/javFiles/Import.jav rename to resources/javFiles/Import.jav diff --git a/src/test/resources/javFiles/Lambda.jav b/resources/javFiles/Lambda.jav similarity index 100% rename from src/test/resources/javFiles/Lambda.jav rename to resources/javFiles/Lambda.jav diff --git a/src/test/resources/javFiles/Lambda2.jav b/resources/javFiles/Lambda2.jav similarity index 100% rename from src/test/resources/javFiles/Lambda2.jav rename to resources/javFiles/Lambda2.jav diff --git a/src/test/resources/javFiles/Lambda3.jav b/resources/javFiles/Lambda3.jav similarity index 100% rename from src/test/resources/javFiles/Lambda3.jav rename to resources/javFiles/Lambda3.jav diff --git a/src/test/resources/javFiles/LambdaField.jav b/resources/javFiles/LambdaField.jav similarity index 100% rename from src/test/resources/javFiles/LambdaField.jav rename to resources/javFiles/LambdaField.jav diff --git a/src/test/resources/javFiles/LambdaRunnable.jav b/resources/javFiles/LambdaRunnable.jav similarity index 100% rename from src/test/resources/javFiles/LambdaRunnable.jav rename to resources/javFiles/LambdaRunnable.jav diff --git a/src/test/resources/javFiles/ListenerOverload.jav b/resources/javFiles/ListenerOverload.jav similarity index 100% rename from src/test/resources/javFiles/ListenerOverload.jav rename to resources/javFiles/ListenerOverload.jav diff --git a/src/test/resources/javFiles/Matrix.jav b/resources/javFiles/Matrix.jav similarity index 100% rename from src/test/resources/javFiles/Matrix.jav rename to resources/javFiles/Matrix.jav diff --git a/src/test/resources/javFiles/Meth_Gen.jav b/resources/javFiles/Meth_Gen.jav similarity index 100% rename from src/test/resources/javFiles/Meth_Gen.jav rename to resources/javFiles/Meth_Gen.jav diff --git a/src/test/resources/javFiles/MethodCallGenerics.jav b/resources/javFiles/MethodCallGenerics.jav similarity index 100% rename from src/test/resources/javFiles/MethodCallGenerics.jav rename to resources/javFiles/MethodCallGenerics.jav diff --git a/resources/javFiles/MethodWildcardGen.jav b/resources/javFiles/MethodWildcardGen.jav new file mode 100644 index 000000000..c982c442d --- /dev/null +++ b/resources/javFiles/MethodWildcardGen.jav @@ -0,0 +1,21 @@ +/* +class C{ + A f; + m(b, c){ + c.f = b; + c.m(b, c); + } +} +*/ +class C{ + X f; + m(b, c, d){ + this.f = b; + this.f = c.f; + c.m2(d); + } + + m2(a){ + a.f = this.f; + } +} diff --git a/src/test/resources/javFiles/Methods.jav b/resources/javFiles/Methods.jav similarity index 100% rename from src/test/resources/javFiles/Methods.jav rename to resources/javFiles/Methods.jav diff --git a/src/test/resources/javFiles/MethodsEasy.jav b/resources/javFiles/MethodsEasy.jav similarity index 100% rename from src/test/resources/javFiles/MethodsEasy.jav rename to resources/javFiles/MethodsEasy.jav diff --git a/src/test/resources/javFiles/Op1.jav b/resources/javFiles/Op1.jav similarity index 100% rename from src/test/resources/javFiles/Op1.jav rename to resources/javFiles/Op1.jav diff --git a/src/test/resources/javFiles/Package.jav b/resources/javFiles/Package.jav similarity index 100% rename from src/test/resources/javFiles/Package.jav rename to resources/javFiles/Package.jav diff --git a/src/test/resources/javFiles/Sorting.jav b/resources/javFiles/Sorting.jav similarity index 100% rename from src/test/resources/javFiles/Sorting.jav rename to resources/javFiles/Sorting.jav diff --git a/src/test/resources/javFiles/Subclass.jav b/resources/javFiles/Subclass.jav similarity index 100% rename from src/test/resources/javFiles/Subclass.jav rename to resources/javFiles/Subclass.jav diff --git a/src/test/resources/javFiles/Superclass.jav b/resources/javFiles/Superclass.jav similarity index 100% rename from src/test/resources/javFiles/Superclass.jav rename to resources/javFiles/Superclass.jav diff --git a/src/test/resources/javFiles/Vector.jav b/resources/javFiles/Vector.jav similarity index 100% rename from src/test/resources/javFiles/Vector.jav rename to resources/javFiles/Vector.jav diff --git a/src/test/resources/javFiles/fc.jav b/resources/javFiles/fc.jav similarity index 100% rename from src/test/resources/javFiles/fc.jav rename to resources/javFiles/fc.jav diff --git a/src/test/resources/javFiles/mathStruc.jav b/resources/javFiles/mathStruc.jav similarity index 100% rename from src/test/resources/javFiles/mathStruc.jav rename to resources/javFiles/mathStruc.jav diff --git a/src/test/resources/javFiles/packageTest/Gen.jav b/resources/javFiles/packageTest/Gen.jav similarity index 100% rename from src/test/resources/javFiles/packageTest/Gen.jav rename to resources/javFiles/packageTest/Gen.jav diff --git a/src/test/resources/javFiles/packageTest/OLMain.jav b/resources/javFiles/packageTest/OLMain.jav similarity index 100% rename from src/test/resources/javFiles/packageTest/OLMain.jav rename to resources/javFiles/packageTest/OLMain.jav diff --git a/src/test/resources/javFiles/packageTest/OLOneFile.jav b/resources/javFiles/packageTest/OLOneFile.jav similarity index 100% rename from src/test/resources/javFiles/packageTest/OLOneFile.jav rename to resources/javFiles/packageTest/OLOneFile.jav diff --git a/src/test/resources/javFiles/packageTest/OLTest.txt b/resources/javFiles/packageTest/OLTest.txt similarity index 100% rename from src/test/resources/javFiles/packageTest/OLTest.txt rename to resources/javFiles/packageTest/OLTest.txt diff --git a/src/test/resources/javFiles/packageTest/OLextends.jav b/resources/javFiles/packageTest/OLextends.jav similarity index 100% rename from src/test/resources/javFiles/packageTest/OLextends.jav rename to resources/javFiles/packageTest/OLextends.jav diff --git a/src/test/resources/javFiles/packageTest/Pair2.jav b/resources/javFiles/packageTest/Pair2.jav similarity index 100% rename from src/test/resources/javFiles/packageTest/Pair2.jav rename to resources/javFiles/packageTest/Pair2.jav diff --git a/src/test/resources/javFiles/packageTest/Test.jav b/resources/javFiles/packageTest/Test.jav similarity index 100% rename from src/test/resources/javFiles/packageTest/Test.jav rename to resources/javFiles/packageTest/Test.jav diff --git a/src/test/resources/javFiles/packageTest/UseOLMain.java b/resources/javFiles/packageTest/UseOLMain.java similarity index 100% rename from src/test/resources/javFiles/packageTest/UseOLMain.java rename to resources/javFiles/packageTest/UseOLMain.java diff --git a/src/test/resources/javFiles/packageTest/de/test/ImportTest.jav b/resources/javFiles/packageTest/de/test/ImportTest.jav similarity index 100% rename from src/test/resources/javFiles/packageTest/de/test/ImportTest.jav rename to resources/javFiles/packageTest/de/test/ImportTest.jav diff --git a/src/test/resources/javFiles/packageTest/de/test/ImportTest2.jav b/resources/javFiles/packageTest/de/test/ImportTest2.jav similarity index 100% rename from src/test/resources/javFiles/packageTest/de/test/ImportTest2.jav rename to resources/javFiles/packageTest/de/test/ImportTest2.jav diff --git a/src/test/resources/javFiles/packageTest/de/test/ImportTestDefault.jav b/resources/javFiles/packageTest/de/test/ImportTestDefault.jav similarity index 100% rename from src/test/resources/javFiles/packageTest/de/test/ImportTestDefault.jav rename to resources/javFiles/packageTest/de/test/ImportTestDefault.jav diff --git a/src/test/resources/javFiles/packageTest/de/test/OL.jav b/resources/javFiles/packageTest/de/test/OL.jav similarity index 100% rename from src/test/resources/javFiles/packageTest/de/test/OL.jav rename to resources/javFiles/packageTest/de/test/OL.jav diff --git a/src/test/resources/javFiles/packageTest/de/test/Pair.jav b/resources/javFiles/packageTest/de/test/Pair.jav similarity index 100% rename from src/test/resources/javFiles/packageTest/de/test/Pair.jav rename to resources/javFiles/packageTest/de/test/Pair.jav diff --git a/src/test/resources/javFiles/packageTest/de/test/TestClass.jav b/resources/javFiles/packageTest/de/test/TestClass.jav similarity index 100% rename from src/test/resources/javFiles/packageTest/de/test/TestClass.jav rename to resources/javFiles/packageTest/de/test/TestClass.jav diff --git a/src/test/resources/javFiles/packageTest/de/test/ToImport.jav b/resources/javFiles/packageTest/de/test/ToImport.jav similarity index 100% rename from src/test/resources/javFiles/packageTest/de/test/ToImport.jav rename to resources/javFiles/packageTest/de/test/ToImport.jav diff --git a/src/test/resources/javFiles/packageTest/de/test/mathStruc.jav b/resources/javFiles/packageTest/de/test/mathStruc.jav similarity index 100% rename from src/test/resources/javFiles/packageTest/de/test/mathStruc.jav rename to resources/javFiles/packageTest/de/test/mathStruc.jav diff --git a/src/test/resources/javFiles/packageTest/de/test/mathStrucVector.jav b/resources/javFiles/packageTest/de/test/mathStrucVector.jav similarity index 100% rename from src/test/resources/javFiles/packageTest/de/test/mathStrucVector.jav rename to resources/javFiles/packageTest/de/test/mathStrucVector.jav diff --git a/src/test/resources/javFiles/packageTest/de/test/output/de/test/mathStrucVectoruse.java b/resources/javFiles/packageTest/de/test/output/de/test/mathStrucVectoruse.java similarity index 100% rename from src/test/resources/javFiles/packageTest/de/test/output/de/test/mathStrucVectoruse.java rename to resources/javFiles/packageTest/de/test/output/de/test/mathStrucVectoruse.java diff --git a/src/test/resources/javFiles/packageTest/de/test/output/mathStrucVectoruse.java b/resources/javFiles/packageTest/de/test/output/mathStrucVectoruse.java similarity index 100% rename from src/test/resources/javFiles/packageTest/de/test/output/mathStrucVectoruse.java rename to resources/javFiles/packageTest/de/test/output/mathStrucVectoruse.java diff --git a/src/test/resources/javFiles/packageTest/de/test/packageNameTestWrongPackage.jav b/resources/javFiles/packageTest/de/test/packageNameTestWrongPackage.jav similarity index 100% rename from src/test/resources/javFiles/packageTest/de/test/packageNameTestWrongPackage.jav rename to resources/javFiles/packageTest/de/test/packageNameTestWrongPackage.jav diff --git a/src/test/resources/javFiles/packageTest/de/test/subpackage1/Test1.jav b/resources/javFiles/packageTest/de/test/subpackage1/Test1.jav similarity index 100% rename from src/test/resources/javFiles/packageTest/de/test/subpackage1/Test1.jav rename to resources/javFiles/packageTest/de/test/subpackage1/Test1.jav diff --git a/src/test/resources/javFiles/packageTest/de/test/subpackage1/ToImport2.jav b/resources/javFiles/packageTest/de/test/subpackage1/ToImport2.jav similarity index 100% rename from src/test/resources/javFiles/packageTest/de/test/subpackage1/ToImport2.jav rename to resources/javFiles/packageTest/de/test/subpackage1/ToImport2.jav diff --git a/src/test/resources/javFiles/packageTest/de/test/subpackage2/Test2.jav b/resources/javFiles/packageTest/de/test/subpackage2/Test2.jav similarity index 100% rename from src/test/resources/javFiles/packageTest/de/test/subpackage2/Test2.jav rename to resources/javFiles/packageTest/de/test/subpackage2/Test2.jav diff --git a/src/test/resources/javFiles/packageTest/de/test/subpackage2/ToImport3.jav b/resources/javFiles/packageTest/de/test/subpackage2/ToImport3.jav similarity index 100% rename from src/test/resources/javFiles/packageTest/de/test/subpackage2/ToImport3.jav rename to resources/javFiles/packageTest/de/test/subpackage2/ToImport3.jav diff --git a/src/test/resources/javFiles/packageTest/de/test/vectorAdd.jav b/resources/javFiles/packageTest/de/test/vectorAdd.jav similarity index 100% rename from src/test/resources/javFiles/packageTest/de/test/vectorAdd.jav rename to resources/javFiles/packageTest/de/test/vectorAdd.jav diff --git a/src/test/resources/javFiles/test.jav b/resources/javFiles/test.jav similarity index 100% rename from src/test/resources/javFiles/test.jav rename to resources/javFiles/test.jav diff --git a/src/test/resources/javFiles/test1.jav b/resources/javFiles/test1.jav similarity index 100% rename from src/test/resources/javFiles/test1.jav rename to resources/javFiles/test1.jav diff --git a/src/test/java/log4jTesting.xml b/resources/log4jTesting.xml similarity index 100% rename from src/test/java/log4jTesting.xml rename to resources/log4jTesting.xml diff --git a/src/test/resources/testBytecode/generatedBC/.gitignore b/resources/testBytecode/generatedBC/.gitignore similarity index 100% rename from src/test/resources/testBytecode/generatedBC/.gitignore rename to resources/testBytecode/generatedBC/.gitignore diff --git a/src/test/resources/testBytecode/public b/resources/testBytecode/public similarity index 100% rename from src/test/resources/testBytecode/public rename to resources/testBytecode/public diff --git a/src/main/antlr4/java8/Java8.g4 b/src/main/antlr4/de/dhbwstuttgart/parser/antlr/Java8.g4 similarity index 100% rename from src/main/antlr4/java8/Java8.g4 rename to src/main/antlr4/de/dhbwstuttgart/parser/antlr/Java8.g4 diff --git a/src/main/antlr4/java8/Java8.tokens b/src/main/antlr4/java8/Java8.tokens deleted file mode 100644 index da68d0140..000000000 --- a/src/main/antlr4/java8/Java8.tokens +++ /dev/null @@ -1,207 +0,0 @@ -T__0=1 -ABSTRACT=2 -ASSERT=3 -BOOLEAN=4 -BREAK=5 -BYTE=6 -CASE=7 -CATCH=8 -CHAR=9 -CLASS=10 -CONST=11 -CONTINUE=12 -DEFAULT=13 -DO=14 -DOUBLE=15 -ELSE=16 -ENUM=17 -EXTENDS=18 -FINAL=19 -FINALLY=20 -FLOAT=21 -FOR=22 -IF=23 -GOTO=24 -IMPLEMENTS=25 -IMPORT=26 -INSTANCEOF=27 -INT=28 -INTERFACE=29 -LONG=30 -NATIVE=31 -NEW=32 -PACKAGE=33 -PRIVATE=34 -PROTECTED=35 -PUBLIC=36 -RETURN=37 -SHORT=38 -STATIC=39 -STRICTFP=40 -SUPER=41 -SWITCH=42 -SYNCHRONIZED=43 -THIS=44 -THROW=45 -THROWS=46 -TRANSIENT=47 -TRY=48 -VOID=49 -VOLATILE=50 -WHILE=51 -IntegerLiteral=52 -FloatingPointLiteral=53 -BooleanLiteral=54 -CharacterLiteral=55 -StringLiteral=56 -NullLiteral=57 -LPAREN=58 -RPAREN=59 -LBRACE=60 -RBRACE=61 -LBRACK=62 -RBRACK=63 -SEMI=64 -COMMA=65 -DOT=66 -ASSIGN=67 -GT=68 -LT=69 -BANG=70 -TILDE=71 -QUESTION=72 -COLON=73 -EQUAL=74 -LE=75 -GE=76 -NOTEQUAL=77 -AND=78 -OR=79 -INC=80 -DEC=81 -ADD=82 -SUB=83 -MUL=84 -DIV=85 -BITAND=86 -BITOR=87 -CARET=88 -MOD=89 -ARROW=90 -COLONCOLON=91 -ADD_ASSIGN=92 -SUB_ASSIGN=93 -MUL_ASSIGN=94 -DIV_ASSIGN=95 -AND_ASSIGN=96 -OR_ASSIGN=97 -XOR_ASSIGN=98 -MOD_ASSIGN=99 -LSHIFT_ASSIGN=100 -RSHIFT_ASSIGN=101 -URSHIFT_ASSIGN=102 -Identifier=103 -AT=104 -ELLIPSIS=105 -WS=106 -COMMENT=107 -LINE_COMMENT=108 -'var'=1 -'abstract'=2 -'assert'=3 -'boolean'=4 -'break'=5 -'byte'=6 -'case'=7 -'catch'=8 -'char'=9 -'class'=10 -'const'=11 -'continue'=12 -'default'=13 -'do'=14 -'double'=15 -'else'=16 -'enum'=17 -'extends'=18 -'final'=19 -'finally'=20 -'float'=21 -'for'=22 -'if'=23 -'goto'=24 -'implements'=25 -'import'=26 -'instanceof'=27 -'int'=28 -'interface'=29 -'long'=30 -'native'=31 -'new'=32 -'package'=33 -'private'=34 -'protected'=35 -'public'=36 -'return'=37 -'short'=38 -'static'=39 -'strictfp'=40 -'super'=41 -'switch'=42 -'synchronized'=43 -'this'=44 -'throw'=45 -'throws'=46 -'transient'=47 -'try'=48 -'void'=49 -'volatile'=50 -'while'=51 -'null'=57 -'('=58 -')'=59 -'{'=60 -'}'=61 -'['=62 -']'=63 -';'=64 -','=65 -'.'=66 -'='=67 -'>'=68 -'<'=69 -'!'=70 -'~'=71 -'?'=72 -':'=73 -'=='=74 -'<='=75 -'>='=76 -'!='=77 -'&&'=78 -'||'=79 -'++'=80 -'--'=81 -'+'=82 -'-'=83 -'*'=84 -'/'=85 -'&'=86 -'|'=87 -'^'=88 -'%'=89 -'->'=90 -'::'=91 -'+='=92 -'-='=93 -'*='=94 -'/='=95 -'&='=96 -'|='=97 -'^='=98 -'%='=99 -'<<='=100 -'>>='=101 -'>>>='=102 -'@'=104 -'...'=105 diff --git a/src/main/antlr4/java8/Java8Lexer.tokens b/src/main/antlr4/java8/Java8Lexer.tokens deleted file mode 100644 index da68d0140..000000000 --- a/src/main/antlr4/java8/Java8Lexer.tokens +++ /dev/null @@ -1,207 +0,0 @@ -T__0=1 -ABSTRACT=2 -ASSERT=3 -BOOLEAN=4 -BREAK=5 -BYTE=6 -CASE=7 -CATCH=8 -CHAR=9 -CLASS=10 -CONST=11 -CONTINUE=12 -DEFAULT=13 -DO=14 -DOUBLE=15 -ELSE=16 -ENUM=17 -EXTENDS=18 -FINAL=19 -FINALLY=20 -FLOAT=21 -FOR=22 -IF=23 -GOTO=24 -IMPLEMENTS=25 -IMPORT=26 -INSTANCEOF=27 -INT=28 -INTERFACE=29 -LONG=30 -NATIVE=31 -NEW=32 -PACKAGE=33 -PRIVATE=34 -PROTECTED=35 -PUBLIC=36 -RETURN=37 -SHORT=38 -STATIC=39 -STRICTFP=40 -SUPER=41 -SWITCH=42 -SYNCHRONIZED=43 -THIS=44 -THROW=45 -THROWS=46 -TRANSIENT=47 -TRY=48 -VOID=49 -VOLATILE=50 -WHILE=51 -IntegerLiteral=52 -FloatingPointLiteral=53 -BooleanLiteral=54 -CharacterLiteral=55 -StringLiteral=56 -NullLiteral=57 -LPAREN=58 -RPAREN=59 -LBRACE=60 -RBRACE=61 -LBRACK=62 -RBRACK=63 -SEMI=64 -COMMA=65 -DOT=66 -ASSIGN=67 -GT=68 -LT=69 -BANG=70 -TILDE=71 -QUESTION=72 -COLON=73 -EQUAL=74 -LE=75 -GE=76 -NOTEQUAL=77 -AND=78 -OR=79 -INC=80 -DEC=81 -ADD=82 -SUB=83 -MUL=84 -DIV=85 -BITAND=86 -BITOR=87 -CARET=88 -MOD=89 -ARROW=90 -COLONCOLON=91 -ADD_ASSIGN=92 -SUB_ASSIGN=93 -MUL_ASSIGN=94 -DIV_ASSIGN=95 -AND_ASSIGN=96 -OR_ASSIGN=97 -XOR_ASSIGN=98 -MOD_ASSIGN=99 -LSHIFT_ASSIGN=100 -RSHIFT_ASSIGN=101 -URSHIFT_ASSIGN=102 -Identifier=103 -AT=104 -ELLIPSIS=105 -WS=106 -COMMENT=107 -LINE_COMMENT=108 -'var'=1 -'abstract'=2 -'assert'=3 -'boolean'=4 -'break'=5 -'byte'=6 -'case'=7 -'catch'=8 -'char'=9 -'class'=10 -'const'=11 -'continue'=12 -'default'=13 -'do'=14 -'double'=15 -'else'=16 -'enum'=17 -'extends'=18 -'final'=19 -'finally'=20 -'float'=21 -'for'=22 -'if'=23 -'goto'=24 -'implements'=25 -'import'=26 -'instanceof'=27 -'int'=28 -'interface'=29 -'long'=30 -'native'=31 -'new'=32 -'package'=33 -'private'=34 -'protected'=35 -'public'=36 -'return'=37 -'short'=38 -'static'=39 -'strictfp'=40 -'super'=41 -'switch'=42 -'synchronized'=43 -'this'=44 -'throw'=45 -'throws'=46 -'transient'=47 -'try'=48 -'void'=49 -'volatile'=50 -'while'=51 -'null'=57 -'('=58 -')'=59 -'{'=60 -'}'=61 -'['=62 -']'=63 -';'=64 -','=65 -'.'=66 -'='=67 -'>'=68 -'<'=69 -'!'=70 -'~'=71 -'?'=72 -':'=73 -'=='=74 -'<='=75 -'>='=76 -'!='=77 -'&&'=78 -'||'=79 -'++'=80 -'--'=81 -'+'=82 -'-'=83 -'*'=84 -'/'=85 -'&'=86 -'|'=87 -'^'=88 -'%'=89 -'->'=90 -'::'=91 -'+='=92 -'-='=93 -'*='=94 -'/='=95 -'&='=96 -'|='=97 -'^='=98 -'%='=99 -'<<='=100 -'>>='=101 -'>>>='=102 -'@'=104 -'...'=105 diff --git a/src/main/antlr4/sat/UnifyResult.g4 b/src/main/antlr4/sat/UnifyResult.g4 deleted file mode 100644 index 98b6a5fb6..000000000 --- a/src/main/antlr4/sat/UnifyResult.g4 +++ /dev/null @@ -1,37 +0,0 @@ -grammar UnifyResult; - -answer : 'ANSWER' (resultSetRule '.')*; - -resultSetRule : - parameter - | equals - | smaller - | typeVar - | type - | otherRule - ; - -parameterList : '(' value (',' value)* ')'; -value : NAME - | resultSetRule ; - -parameter : PARAMLIST_NAME parameterList; -equals : EQUALS_NAME parameterList; -smaller : SMALLER_NAME parameterList; -typeVar : TYPEVAR_NAME parameterList; -type : TYPE_NAME parameterList; -otherRule : NAME parameterList; - -//TODO: Es sollte Regeln für das Result set geben, welche sich nicht mit den anderen überdecken, dann auch nur diese im Result ausgeben -PARAMLIST_NAME : 'param'; -EQUALS_NAME : 'equals'; -SMALLER_NAME : 'smaller'; -TYPEVAR_NAME : 'typeVar'; -TYPE_NAME : 'type'; -NAME : [a-zA-Z0-9_]+; - -WS : [ \t\r\n\u000C]+ -> skip - ; -LINE_COMMENT - : '%' ~[\r\n]* -> skip - ; diff --git a/src/main/antlr4/sat/UnifyResult.tokens b/src/main/antlr4/sat/UnifyResult.tokens deleted file mode 100644 index 8f9c0e0ae..000000000 --- a/src/main/antlr4/sat/UnifyResult.tokens +++ /dev/null @@ -1,23 +0,0 @@ -T__0=1 -T__1=2 -T__2=3 -T__3=4 -T__4=5 -PARAMLIST_NAME=6 -EQUALS_NAME=7 -SMALLER_NAME=8 -TYPEVAR_NAME=9 -TYPE_NAME=10 -NAME=11 -WS=12 -LINE_COMMENT=13 -'ANSWER'=1 -'.'=2 -'('=3 -','=4 -')'=5 -'param'=6 -'equals'=7 -'smaller'=8 -'typeVar'=9 -'type'=10 diff --git a/src/main/antlr4/sat/UnifyResultLexer.tokens b/src/main/antlr4/sat/UnifyResultLexer.tokens deleted file mode 100644 index 8f9c0e0ae..000000000 --- a/src/main/antlr4/sat/UnifyResultLexer.tokens +++ /dev/null @@ -1,23 +0,0 @@ -T__0=1 -T__1=2 -T__2=3 -T__3=4 -T__4=5 -PARAMLIST_NAME=6 -EQUALS_NAME=7 -SMALLER_NAME=8 -TYPEVAR_NAME=9 -TYPE_NAME=10 -NAME=11 -WS=12 -LINE_COMMENT=13 -'ANSWER'=1 -'.'=2 -'('=3 -','=4 -')'=5 -'param'=6 -'equals'=7 -'smaller'=8 -'typeVar'=9 -'type'=10 diff --git a/src/main/java/de/dhbwstuttgart/core/JavaTXCompiler.java b/src/main/java/de/dhbwstuttgart/core/JavaTXCompiler.java index eb220f4ff..a62eb263b 100644 --- a/src/main/java/de/dhbwstuttgart/core/JavaTXCompiler.java +++ b/src/main/java/de/dhbwstuttgart/core/JavaTXCompiler.java @@ -566,7 +566,7 @@ public class JavaTXCompiler { try { Writer logFile = //new OutputStreamWriter(new NullOutputStream()); // new FileWriter(new - // File(System.getProperty("user.dir")+"/src/test/resources/logFiles/"+"log_"+sourceFiles.keySet().iterator().next().getName())); + // File(System.getProperty("user.dir")+"/resources/logFiles/"+"log_"+sourceFiles.keySet().iterator().next().getName())); new FileWriter(new File(System.getProperty("user.dir") + "/logFiles/" + "log_" + sourceFiles.keySet().iterator().next().getName())); IFiniteClosure finiteClosure = UnifyTypeFactory.generateFC(allClasses, logFile, classLoader); diff --git a/src/main/java/de/dhbwstuttgart/parser/antlr/Java8.tokens b/src/main/java/de/dhbwstuttgart/parser/antlr/Java8.tokens deleted file mode 100644 index da68d0140..000000000 --- a/src/main/java/de/dhbwstuttgart/parser/antlr/Java8.tokens +++ /dev/null @@ -1,207 +0,0 @@ -T__0=1 -ABSTRACT=2 -ASSERT=3 -BOOLEAN=4 -BREAK=5 -BYTE=6 -CASE=7 -CATCH=8 -CHAR=9 -CLASS=10 -CONST=11 -CONTINUE=12 -DEFAULT=13 -DO=14 -DOUBLE=15 -ELSE=16 -ENUM=17 -EXTENDS=18 -FINAL=19 -FINALLY=20 -FLOAT=21 -FOR=22 -IF=23 -GOTO=24 -IMPLEMENTS=25 -IMPORT=26 -INSTANCEOF=27 -INT=28 -INTERFACE=29 -LONG=30 -NATIVE=31 -NEW=32 -PACKAGE=33 -PRIVATE=34 -PROTECTED=35 -PUBLIC=36 -RETURN=37 -SHORT=38 -STATIC=39 -STRICTFP=40 -SUPER=41 -SWITCH=42 -SYNCHRONIZED=43 -THIS=44 -THROW=45 -THROWS=46 -TRANSIENT=47 -TRY=48 -VOID=49 -VOLATILE=50 -WHILE=51 -IntegerLiteral=52 -FloatingPointLiteral=53 -BooleanLiteral=54 -CharacterLiteral=55 -StringLiteral=56 -NullLiteral=57 -LPAREN=58 -RPAREN=59 -LBRACE=60 -RBRACE=61 -LBRACK=62 -RBRACK=63 -SEMI=64 -COMMA=65 -DOT=66 -ASSIGN=67 -GT=68 -LT=69 -BANG=70 -TILDE=71 -QUESTION=72 -COLON=73 -EQUAL=74 -LE=75 -GE=76 -NOTEQUAL=77 -AND=78 -OR=79 -INC=80 -DEC=81 -ADD=82 -SUB=83 -MUL=84 -DIV=85 -BITAND=86 -BITOR=87 -CARET=88 -MOD=89 -ARROW=90 -COLONCOLON=91 -ADD_ASSIGN=92 -SUB_ASSIGN=93 -MUL_ASSIGN=94 -DIV_ASSIGN=95 -AND_ASSIGN=96 -OR_ASSIGN=97 -XOR_ASSIGN=98 -MOD_ASSIGN=99 -LSHIFT_ASSIGN=100 -RSHIFT_ASSIGN=101 -URSHIFT_ASSIGN=102 -Identifier=103 -AT=104 -ELLIPSIS=105 -WS=106 -COMMENT=107 -LINE_COMMENT=108 -'var'=1 -'abstract'=2 -'assert'=3 -'boolean'=4 -'break'=5 -'byte'=6 -'case'=7 -'catch'=8 -'char'=9 -'class'=10 -'const'=11 -'continue'=12 -'default'=13 -'do'=14 -'double'=15 -'else'=16 -'enum'=17 -'extends'=18 -'final'=19 -'finally'=20 -'float'=21 -'for'=22 -'if'=23 -'goto'=24 -'implements'=25 -'import'=26 -'instanceof'=27 -'int'=28 -'interface'=29 -'long'=30 -'native'=31 -'new'=32 -'package'=33 -'private'=34 -'protected'=35 -'public'=36 -'return'=37 -'short'=38 -'static'=39 -'strictfp'=40 -'super'=41 -'switch'=42 -'synchronized'=43 -'this'=44 -'throw'=45 -'throws'=46 -'transient'=47 -'try'=48 -'void'=49 -'volatile'=50 -'while'=51 -'null'=57 -'('=58 -')'=59 -'{'=60 -'}'=61 -'['=62 -']'=63 -';'=64 -','=65 -'.'=66 -'='=67 -'>'=68 -'<'=69 -'!'=70 -'~'=71 -'?'=72 -':'=73 -'=='=74 -'<='=75 -'>='=76 -'!='=77 -'&&'=78 -'||'=79 -'++'=80 -'--'=81 -'+'=82 -'-'=83 -'*'=84 -'/'=85 -'&'=86 -'|'=87 -'^'=88 -'%'=89 -'->'=90 -'::'=91 -'+='=92 -'-='=93 -'*='=94 -'/='=95 -'&='=96 -'|='=97 -'^='=98 -'%='=99 -'<<='=100 -'>>='=101 -'>>>='=102 -'@'=104 -'...'=105 diff --git a/src/main/java/de/dhbwstuttgart/parser/antlr/Java8BaseListener.java b/src/main/java/de/dhbwstuttgart/parser/antlr/Java8BaseListener.java deleted file mode 100644 index 1c94febcb..000000000 --- a/src/main/java/de/dhbwstuttgart/parser/antlr/Java8BaseListener.java +++ /dev/null @@ -1,2895 +0,0 @@ -// Generated from Java8.g4 by ANTLR 4.7 -package de.dhbwstuttgart.parser.antlr; - -import org.antlr.v4.runtime.ParserRuleContext; -import org.antlr.v4.runtime.tree.ErrorNode; -import org.antlr.v4.runtime.tree.TerminalNode; - -/** - * This class provides an empty implementation of {@link Java8Listener}, - * which can be extended to create a listener which only needs to handle a subset - * of the available methods. - */ -public class Java8BaseListener implements Java8Listener { - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterLiteral(Java8Parser.LiteralContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitLiteral(Java8Parser.LiteralContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterType(Java8Parser.TypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitType(Java8Parser.TypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterPrimitiveType(Java8Parser.PrimitiveTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitPrimitiveType(Java8Parser.PrimitiveTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterNumericType(Java8Parser.NumericTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitNumericType(Java8Parser.NumericTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterIntegralType(Java8Parser.IntegralTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitIntegralType(Java8Parser.IntegralTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterFloatingPointType(Java8Parser.FloatingPointTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitFloatingPointType(Java8Parser.FloatingPointTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterReferenceType(Java8Parser.ReferenceTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitReferenceType(Java8Parser.ReferenceTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterClassOrInterfaceType(Java8Parser.ClassOrInterfaceTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitClassOrInterfaceType(Java8Parser.ClassOrInterfaceTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterClassType(Java8Parser.ClassTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitClassType(Java8Parser.ClassTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterClassType_lf_classOrInterfaceType(Java8Parser.ClassType_lf_classOrInterfaceTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitClassType_lf_classOrInterfaceType(Java8Parser.ClassType_lf_classOrInterfaceTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterClassType_lfno_classOrInterfaceType(Java8Parser.ClassType_lfno_classOrInterfaceTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitClassType_lfno_classOrInterfaceType(Java8Parser.ClassType_lfno_classOrInterfaceTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterInterfaceType(Java8Parser.InterfaceTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitInterfaceType(Java8Parser.InterfaceTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterInterfaceType_lf_classOrInterfaceType(Java8Parser.InterfaceType_lf_classOrInterfaceTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitInterfaceType_lf_classOrInterfaceType(Java8Parser.InterfaceType_lf_classOrInterfaceTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterInterfaceType_lfno_classOrInterfaceType(Java8Parser.InterfaceType_lfno_classOrInterfaceTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitInterfaceType_lfno_classOrInterfaceType(Java8Parser.InterfaceType_lfno_classOrInterfaceTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterTypeVariable(Java8Parser.TypeVariableContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitTypeVariable(Java8Parser.TypeVariableContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterArrayType(Java8Parser.ArrayTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitArrayType(Java8Parser.ArrayTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterDims(Java8Parser.DimsContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitDims(Java8Parser.DimsContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterTypeParameter(Java8Parser.TypeParameterContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitTypeParameter(Java8Parser.TypeParameterContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterTypeParameterModifier(Java8Parser.TypeParameterModifierContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitTypeParameterModifier(Java8Parser.TypeParameterModifierContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterTypeBound(Java8Parser.TypeBoundContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitTypeBound(Java8Parser.TypeBoundContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterAdditionalBound(Java8Parser.AdditionalBoundContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitAdditionalBound(Java8Parser.AdditionalBoundContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterTypeArguments(Java8Parser.TypeArgumentsContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitTypeArguments(Java8Parser.TypeArgumentsContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterTypeArgumentList(Java8Parser.TypeArgumentListContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitTypeArgumentList(Java8Parser.TypeArgumentListContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterTypeArgument(Java8Parser.TypeArgumentContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitTypeArgument(Java8Parser.TypeArgumentContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterWildcard(Java8Parser.WildcardContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitWildcard(Java8Parser.WildcardContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterWildcardBounds(Java8Parser.WildcardBoundsContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitWildcardBounds(Java8Parser.WildcardBoundsContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterPackageName(Java8Parser.PackageNameContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitPackageName(Java8Parser.PackageNameContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterTypeName(Java8Parser.TypeNameContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitTypeName(Java8Parser.TypeNameContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterPackageOrTypeName(Java8Parser.PackageOrTypeNameContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitPackageOrTypeName(Java8Parser.PackageOrTypeNameContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterExpressionName(Java8Parser.ExpressionNameContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitExpressionName(Java8Parser.ExpressionNameContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterMethodName(Java8Parser.MethodNameContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitMethodName(Java8Parser.MethodNameContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterAmbiguousName(Java8Parser.AmbiguousNameContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitAmbiguousName(Java8Parser.AmbiguousNameContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterCompilationUnit(Java8Parser.CompilationUnitContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitCompilationUnit(Java8Parser.CompilationUnitContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterPackageDeclaration(Java8Parser.PackageDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitPackageDeclaration(Java8Parser.PackageDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterPackageModifier(Java8Parser.PackageModifierContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitPackageModifier(Java8Parser.PackageModifierContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterImportDeclaration(Java8Parser.ImportDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitImportDeclaration(Java8Parser.ImportDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterSingleTypeImportDeclaration(Java8Parser.SingleTypeImportDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitSingleTypeImportDeclaration(Java8Parser.SingleTypeImportDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterTypeImportOnDemandDeclaration(Java8Parser.TypeImportOnDemandDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitTypeImportOnDemandDeclaration(Java8Parser.TypeImportOnDemandDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterSingleStaticImportDeclaration(Java8Parser.SingleStaticImportDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitSingleStaticImportDeclaration(Java8Parser.SingleStaticImportDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterStaticImportOnDemandDeclaration(Java8Parser.StaticImportOnDemandDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitStaticImportOnDemandDeclaration(Java8Parser.StaticImportOnDemandDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterTypeDeclaration(Java8Parser.TypeDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitTypeDeclaration(Java8Parser.TypeDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterClassDeclaration(Java8Parser.ClassDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitClassDeclaration(Java8Parser.ClassDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterNormalClassDeclaration(Java8Parser.NormalClassDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitNormalClassDeclaration(Java8Parser.NormalClassDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterClassModifier(Java8Parser.ClassModifierContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitClassModifier(Java8Parser.ClassModifierContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterTypeParameters(Java8Parser.TypeParametersContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitTypeParameters(Java8Parser.TypeParametersContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterTypeParameterList(Java8Parser.TypeParameterListContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitTypeParameterList(Java8Parser.TypeParameterListContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterSuperclass(Java8Parser.SuperclassContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitSuperclass(Java8Parser.SuperclassContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterSuperinterfaces(Java8Parser.SuperinterfacesContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitSuperinterfaces(Java8Parser.SuperinterfacesContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterInterfaceTypeList(Java8Parser.InterfaceTypeListContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitInterfaceTypeList(Java8Parser.InterfaceTypeListContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterClassBody(Java8Parser.ClassBodyContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitClassBody(Java8Parser.ClassBodyContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterClassBodyDeclaration(Java8Parser.ClassBodyDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitClassBodyDeclaration(Java8Parser.ClassBodyDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterClassMemberDeclaration(Java8Parser.ClassMemberDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitClassMemberDeclaration(Java8Parser.ClassMemberDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterFieldDeclaration(Java8Parser.FieldDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitFieldDeclaration(Java8Parser.FieldDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterFieldModifier(Java8Parser.FieldModifierContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitFieldModifier(Java8Parser.FieldModifierContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterVariableDeclaratorList(Java8Parser.VariableDeclaratorListContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitVariableDeclaratorList(Java8Parser.VariableDeclaratorListContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterVariableDeclarator(Java8Parser.VariableDeclaratorContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitVariableDeclarator(Java8Parser.VariableDeclaratorContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterVariableDeclaratorId(Java8Parser.VariableDeclaratorIdContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitVariableDeclaratorId(Java8Parser.VariableDeclaratorIdContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterVariableInitializer(Java8Parser.VariableInitializerContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitVariableInitializer(Java8Parser.VariableInitializerContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterUnannType(Java8Parser.UnannTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitUnannType(Java8Parser.UnannTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterUnannPrimitiveType(Java8Parser.UnannPrimitiveTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitUnannPrimitiveType(Java8Parser.UnannPrimitiveTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterUnannReferenceType(Java8Parser.UnannReferenceTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitUnannReferenceType(Java8Parser.UnannReferenceTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterUnannClassOrInterfaceType(Java8Parser.UnannClassOrInterfaceTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitUnannClassOrInterfaceType(Java8Parser.UnannClassOrInterfaceTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterUnannClassType(Java8Parser.UnannClassTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitUnannClassType(Java8Parser.UnannClassTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterUnannClassType_lf_unannClassOrInterfaceType(Java8Parser.UnannClassType_lf_unannClassOrInterfaceTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitUnannClassType_lf_unannClassOrInterfaceType(Java8Parser.UnannClassType_lf_unannClassOrInterfaceTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterUnannClassType_lfno_unannClassOrInterfaceType(Java8Parser.UnannClassType_lfno_unannClassOrInterfaceTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitUnannClassType_lfno_unannClassOrInterfaceType(Java8Parser.UnannClassType_lfno_unannClassOrInterfaceTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterUnannInterfaceType(Java8Parser.UnannInterfaceTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitUnannInterfaceType(Java8Parser.UnannInterfaceTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterUnannInterfaceType_lf_unannClassOrInterfaceType(Java8Parser.UnannInterfaceType_lf_unannClassOrInterfaceTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitUnannInterfaceType_lf_unannClassOrInterfaceType(Java8Parser.UnannInterfaceType_lf_unannClassOrInterfaceTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterUnannInterfaceType_lfno_unannClassOrInterfaceType(Java8Parser.UnannInterfaceType_lfno_unannClassOrInterfaceTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitUnannInterfaceType_lfno_unannClassOrInterfaceType(Java8Parser.UnannInterfaceType_lfno_unannClassOrInterfaceTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterUnannTypeVariable(Java8Parser.UnannTypeVariableContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitUnannTypeVariable(Java8Parser.UnannTypeVariableContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterUnannArrayType(Java8Parser.UnannArrayTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitUnannArrayType(Java8Parser.UnannArrayTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterMethodDeclaration(Java8Parser.MethodDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitMethodDeclaration(Java8Parser.MethodDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterMethodModifier(Java8Parser.MethodModifierContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitMethodModifier(Java8Parser.MethodModifierContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterMethodHeader(Java8Parser.MethodHeaderContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitMethodHeader(Java8Parser.MethodHeaderContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterResult(Java8Parser.ResultContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitResult(Java8Parser.ResultContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterMethodDeclarator(Java8Parser.MethodDeclaratorContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitMethodDeclarator(Java8Parser.MethodDeclaratorContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterFormalParameterList(Java8Parser.FormalParameterListContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitFormalParameterList(Java8Parser.FormalParameterListContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterFormalParameters(Java8Parser.FormalParametersContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitFormalParameters(Java8Parser.FormalParametersContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterFormalParameter(Java8Parser.FormalParameterContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitFormalParameter(Java8Parser.FormalParameterContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterVariableModifier(Java8Parser.VariableModifierContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitVariableModifier(Java8Parser.VariableModifierContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterLastFormalParameter(Java8Parser.LastFormalParameterContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitLastFormalParameter(Java8Parser.LastFormalParameterContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterReceiverParameter(Java8Parser.ReceiverParameterContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitReceiverParameter(Java8Parser.ReceiverParameterContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterThrows_(Java8Parser.Throws_Context ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitThrows_(Java8Parser.Throws_Context ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterExceptionTypeList(Java8Parser.ExceptionTypeListContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitExceptionTypeList(Java8Parser.ExceptionTypeListContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterExceptionType(Java8Parser.ExceptionTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitExceptionType(Java8Parser.ExceptionTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterMethodBody(Java8Parser.MethodBodyContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitMethodBody(Java8Parser.MethodBodyContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterInstanceInitializer(Java8Parser.InstanceInitializerContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitInstanceInitializer(Java8Parser.InstanceInitializerContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterStaticInitializer(Java8Parser.StaticInitializerContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitStaticInitializer(Java8Parser.StaticInitializerContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterConstructorDeclaration(Java8Parser.ConstructorDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitConstructorDeclaration(Java8Parser.ConstructorDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterConstructorModifier(Java8Parser.ConstructorModifierContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitConstructorModifier(Java8Parser.ConstructorModifierContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterConstructorDeclarator(Java8Parser.ConstructorDeclaratorContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitConstructorDeclarator(Java8Parser.ConstructorDeclaratorContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterSimpleTypeName(Java8Parser.SimpleTypeNameContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitSimpleTypeName(Java8Parser.SimpleTypeNameContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterConstructorBody(Java8Parser.ConstructorBodyContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitConstructorBody(Java8Parser.ConstructorBodyContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterExplicitConstructorInvocation(Java8Parser.ExplicitConstructorInvocationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitExplicitConstructorInvocation(Java8Parser.ExplicitConstructorInvocationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterEnumDeclaration(Java8Parser.EnumDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitEnumDeclaration(Java8Parser.EnumDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterEnumBody(Java8Parser.EnumBodyContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitEnumBody(Java8Parser.EnumBodyContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterEnumConstantList(Java8Parser.EnumConstantListContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitEnumConstantList(Java8Parser.EnumConstantListContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterEnumConstant(Java8Parser.EnumConstantContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitEnumConstant(Java8Parser.EnumConstantContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterEnumConstantModifier(Java8Parser.EnumConstantModifierContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitEnumConstantModifier(Java8Parser.EnumConstantModifierContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterEnumBodyDeclarations(Java8Parser.EnumBodyDeclarationsContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitEnumBodyDeclarations(Java8Parser.EnumBodyDeclarationsContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterInterfaceDeclaration(Java8Parser.InterfaceDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitInterfaceDeclaration(Java8Parser.InterfaceDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterNormalInterfaceDeclaration(Java8Parser.NormalInterfaceDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitNormalInterfaceDeclaration(Java8Parser.NormalInterfaceDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterInterfaceModifier(Java8Parser.InterfaceModifierContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitInterfaceModifier(Java8Parser.InterfaceModifierContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterExtendsInterfaces(Java8Parser.ExtendsInterfacesContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitExtendsInterfaces(Java8Parser.ExtendsInterfacesContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterInterfaceBody(Java8Parser.InterfaceBodyContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitInterfaceBody(Java8Parser.InterfaceBodyContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterInterfaceMemberDeclaration(Java8Parser.InterfaceMemberDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitInterfaceMemberDeclaration(Java8Parser.InterfaceMemberDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterConstantDeclaration(Java8Parser.ConstantDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitConstantDeclaration(Java8Parser.ConstantDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterConstantModifier(Java8Parser.ConstantModifierContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitConstantModifier(Java8Parser.ConstantModifierContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterInterfaceMethodDeclaration(Java8Parser.InterfaceMethodDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitInterfaceMethodDeclaration(Java8Parser.InterfaceMethodDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterInterfaceMethodModifier(Java8Parser.InterfaceMethodModifierContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitInterfaceMethodModifier(Java8Parser.InterfaceMethodModifierContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterAnnotationTypeDeclaration(Java8Parser.AnnotationTypeDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitAnnotationTypeDeclaration(Java8Parser.AnnotationTypeDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterAnnotationTypeBody(Java8Parser.AnnotationTypeBodyContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitAnnotationTypeBody(Java8Parser.AnnotationTypeBodyContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterAnnotationTypeMemberDeclaration(Java8Parser.AnnotationTypeMemberDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitAnnotationTypeMemberDeclaration(Java8Parser.AnnotationTypeMemberDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterAnnotationTypeElementDeclaration(Java8Parser.AnnotationTypeElementDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitAnnotationTypeElementDeclaration(Java8Parser.AnnotationTypeElementDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterAnnotationTypeElementModifier(Java8Parser.AnnotationTypeElementModifierContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitAnnotationTypeElementModifier(Java8Parser.AnnotationTypeElementModifierContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterDefaultValue(Java8Parser.DefaultValueContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitDefaultValue(Java8Parser.DefaultValueContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterAnnotation(Java8Parser.AnnotationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitAnnotation(Java8Parser.AnnotationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterNormalAnnotation(Java8Parser.NormalAnnotationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitNormalAnnotation(Java8Parser.NormalAnnotationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterElementValuePairList(Java8Parser.ElementValuePairListContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitElementValuePairList(Java8Parser.ElementValuePairListContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterElementValuePair(Java8Parser.ElementValuePairContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitElementValuePair(Java8Parser.ElementValuePairContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterElementValue(Java8Parser.ElementValueContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitElementValue(Java8Parser.ElementValueContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterElementValueArrayInitializer(Java8Parser.ElementValueArrayInitializerContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitElementValueArrayInitializer(Java8Parser.ElementValueArrayInitializerContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterElementValueList(Java8Parser.ElementValueListContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitElementValueList(Java8Parser.ElementValueListContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterMarkerAnnotation(Java8Parser.MarkerAnnotationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitMarkerAnnotation(Java8Parser.MarkerAnnotationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterSingleElementAnnotation(Java8Parser.SingleElementAnnotationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitSingleElementAnnotation(Java8Parser.SingleElementAnnotationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterArrayInitializer(Java8Parser.ArrayInitializerContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitArrayInitializer(Java8Parser.ArrayInitializerContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterVariableInitializerList(Java8Parser.VariableInitializerListContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitVariableInitializerList(Java8Parser.VariableInitializerListContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterBlock(Java8Parser.BlockContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitBlock(Java8Parser.BlockContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterBlockStatements(Java8Parser.BlockStatementsContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitBlockStatements(Java8Parser.BlockStatementsContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterBlockStatement(Java8Parser.BlockStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitBlockStatement(Java8Parser.BlockStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterLocalVariableDeclarationStatement(Java8Parser.LocalVariableDeclarationStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitLocalVariableDeclarationStatement(Java8Parser.LocalVariableDeclarationStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterUnannTypeOrAuto(Java8Parser.UnannTypeOrAutoContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitUnannTypeOrAuto(Java8Parser.UnannTypeOrAutoContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterLocalVariableDeclaration(Java8Parser.LocalVariableDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitLocalVariableDeclaration(Java8Parser.LocalVariableDeclarationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterStatement(Java8Parser.StatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitStatement(Java8Parser.StatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterStatementNoShortIf(Java8Parser.StatementNoShortIfContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitStatementNoShortIf(Java8Parser.StatementNoShortIfContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterStatementWithoutTrailingSubstatement(Java8Parser.StatementWithoutTrailingSubstatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitStatementWithoutTrailingSubstatement(Java8Parser.StatementWithoutTrailingSubstatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterEmptyStatement(Java8Parser.EmptyStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitEmptyStatement(Java8Parser.EmptyStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterLabeledStatement(Java8Parser.LabeledStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitLabeledStatement(Java8Parser.LabeledStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterLabeledStatementNoShortIf(Java8Parser.LabeledStatementNoShortIfContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitLabeledStatementNoShortIf(Java8Parser.LabeledStatementNoShortIfContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterExpressionStatement(Java8Parser.ExpressionStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitExpressionStatement(Java8Parser.ExpressionStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterStatementExpression(Java8Parser.StatementExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitStatementExpression(Java8Parser.StatementExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterIfThenStatement(Java8Parser.IfThenStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitIfThenStatement(Java8Parser.IfThenStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterIfThenElseStatement(Java8Parser.IfThenElseStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitIfThenElseStatement(Java8Parser.IfThenElseStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterIfThenElseStatementNoShortIf(Java8Parser.IfThenElseStatementNoShortIfContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitIfThenElseStatementNoShortIf(Java8Parser.IfThenElseStatementNoShortIfContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterAssertStatement(Java8Parser.AssertStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitAssertStatement(Java8Parser.AssertStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterSwitchStatement(Java8Parser.SwitchStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitSwitchStatement(Java8Parser.SwitchStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterSwitchBlock(Java8Parser.SwitchBlockContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitSwitchBlock(Java8Parser.SwitchBlockContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterSwitchBlockStatementGroup(Java8Parser.SwitchBlockStatementGroupContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitSwitchBlockStatementGroup(Java8Parser.SwitchBlockStatementGroupContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterSwitchLabels(Java8Parser.SwitchLabelsContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitSwitchLabels(Java8Parser.SwitchLabelsContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterSwitchLabel(Java8Parser.SwitchLabelContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitSwitchLabel(Java8Parser.SwitchLabelContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterEnumConstantName(Java8Parser.EnumConstantNameContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitEnumConstantName(Java8Parser.EnumConstantNameContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterWhileStatement(Java8Parser.WhileStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitWhileStatement(Java8Parser.WhileStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterWhileStatementNoShortIf(Java8Parser.WhileStatementNoShortIfContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitWhileStatementNoShortIf(Java8Parser.WhileStatementNoShortIfContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterDoStatement(Java8Parser.DoStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitDoStatement(Java8Parser.DoStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterForStatement(Java8Parser.ForStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitForStatement(Java8Parser.ForStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterForStatementNoShortIf(Java8Parser.ForStatementNoShortIfContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitForStatementNoShortIf(Java8Parser.ForStatementNoShortIfContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterBasicForStatement(Java8Parser.BasicForStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitBasicForStatement(Java8Parser.BasicForStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterBasicForStatementNoShortIf(Java8Parser.BasicForStatementNoShortIfContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitBasicForStatementNoShortIf(Java8Parser.BasicForStatementNoShortIfContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterForInit(Java8Parser.ForInitContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitForInit(Java8Parser.ForInitContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterForUpdate(Java8Parser.ForUpdateContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitForUpdate(Java8Parser.ForUpdateContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterStatementExpressionList(Java8Parser.StatementExpressionListContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitStatementExpressionList(Java8Parser.StatementExpressionListContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterEnhancedForStatement(Java8Parser.EnhancedForStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitEnhancedForStatement(Java8Parser.EnhancedForStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterEnhancedForStatementNoShortIf(Java8Parser.EnhancedForStatementNoShortIfContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitEnhancedForStatementNoShortIf(Java8Parser.EnhancedForStatementNoShortIfContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterBreakStatement(Java8Parser.BreakStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitBreakStatement(Java8Parser.BreakStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterContinueStatement(Java8Parser.ContinueStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitContinueStatement(Java8Parser.ContinueStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterReturnStatement(Java8Parser.ReturnStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitReturnStatement(Java8Parser.ReturnStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterThrowStatement(Java8Parser.ThrowStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitThrowStatement(Java8Parser.ThrowStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterSynchronizedStatement(Java8Parser.SynchronizedStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitSynchronizedStatement(Java8Parser.SynchronizedStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterTryStatement(Java8Parser.TryStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitTryStatement(Java8Parser.TryStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterCatches(Java8Parser.CatchesContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitCatches(Java8Parser.CatchesContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterCatchClause(Java8Parser.CatchClauseContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitCatchClause(Java8Parser.CatchClauseContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterCatchFormalParameter(Java8Parser.CatchFormalParameterContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitCatchFormalParameter(Java8Parser.CatchFormalParameterContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterCatchType(Java8Parser.CatchTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitCatchType(Java8Parser.CatchTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterFinally_(Java8Parser.Finally_Context ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitFinally_(Java8Parser.Finally_Context ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterTryWithResourcesStatement(Java8Parser.TryWithResourcesStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitTryWithResourcesStatement(Java8Parser.TryWithResourcesStatementContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterResourceSpecification(Java8Parser.ResourceSpecificationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitResourceSpecification(Java8Parser.ResourceSpecificationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterResourceList(Java8Parser.ResourceListContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitResourceList(Java8Parser.ResourceListContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterResource(Java8Parser.ResourceContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitResource(Java8Parser.ResourceContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterPrimary(Java8Parser.PrimaryContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitPrimary(Java8Parser.PrimaryContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterPrimaryNoNewArray(Java8Parser.PrimaryNoNewArrayContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitPrimaryNoNewArray(Java8Parser.PrimaryNoNewArrayContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterPrimaryNoNewArray_lf_arrayAccess(Java8Parser.PrimaryNoNewArray_lf_arrayAccessContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitPrimaryNoNewArray_lf_arrayAccess(Java8Parser.PrimaryNoNewArray_lf_arrayAccessContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterPrimaryNoNewArray_lfno_arrayAccess(Java8Parser.PrimaryNoNewArray_lfno_arrayAccessContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitPrimaryNoNewArray_lfno_arrayAccess(Java8Parser.PrimaryNoNewArray_lfno_arrayAccessContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterPrimaryNoNewArray_lf_primary(Java8Parser.PrimaryNoNewArray_lf_primaryContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitPrimaryNoNewArray_lf_primary(Java8Parser.PrimaryNoNewArray_lf_primaryContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterPrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary(Java8Parser.PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitPrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary(Java8Parser.PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterPrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary(Java8Parser.PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitPrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary(Java8Parser.PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterPrimaryNoNewArray_lfno_primary(Java8Parser.PrimaryNoNewArray_lfno_primaryContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitPrimaryNoNewArray_lfno_primary(Java8Parser.PrimaryNoNewArray_lfno_primaryContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterPrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary(Java8Parser.PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitPrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary(Java8Parser.PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterPrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary(Java8Parser.PrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primaryContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitPrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary(Java8Parser.PrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primaryContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterClassInstanceCreationExpression(Java8Parser.ClassInstanceCreationExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitClassInstanceCreationExpression(Java8Parser.ClassInstanceCreationExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterClassInstanceCreationExpression_lf_primary(Java8Parser.ClassInstanceCreationExpression_lf_primaryContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitClassInstanceCreationExpression_lf_primary(Java8Parser.ClassInstanceCreationExpression_lf_primaryContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterClassInstanceCreationExpression_lfno_primary(Java8Parser.ClassInstanceCreationExpression_lfno_primaryContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitClassInstanceCreationExpression_lfno_primary(Java8Parser.ClassInstanceCreationExpression_lfno_primaryContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterTypeArgumentsOrDiamond(Java8Parser.TypeArgumentsOrDiamondContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitTypeArgumentsOrDiamond(Java8Parser.TypeArgumentsOrDiamondContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterFieldAccess(Java8Parser.FieldAccessContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitFieldAccess(Java8Parser.FieldAccessContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterFieldAccess_lf_primary(Java8Parser.FieldAccess_lf_primaryContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitFieldAccess_lf_primary(Java8Parser.FieldAccess_lf_primaryContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterFieldAccess_lfno_primary(Java8Parser.FieldAccess_lfno_primaryContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitFieldAccess_lfno_primary(Java8Parser.FieldAccess_lfno_primaryContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterArrayAccess(Java8Parser.ArrayAccessContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitArrayAccess(Java8Parser.ArrayAccessContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterArrayAccess_lf_primary(Java8Parser.ArrayAccess_lf_primaryContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitArrayAccess_lf_primary(Java8Parser.ArrayAccess_lf_primaryContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterArrayAccess_lfno_primary(Java8Parser.ArrayAccess_lfno_primaryContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitArrayAccess_lfno_primary(Java8Parser.ArrayAccess_lfno_primaryContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterMethodInvocation(Java8Parser.MethodInvocationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitMethodInvocation(Java8Parser.MethodInvocationContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterMethodInvocation_lf_primary(Java8Parser.MethodInvocation_lf_primaryContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitMethodInvocation_lf_primary(Java8Parser.MethodInvocation_lf_primaryContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterMethodInvocation_lfno_primary(Java8Parser.MethodInvocation_lfno_primaryContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitMethodInvocation_lfno_primary(Java8Parser.MethodInvocation_lfno_primaryContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterArgumentList(Java8Parser.ArgumentListContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitArgumentList(Java8Parser.ArgumentListContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterMethodReference(Java8Parser.MethodReferenceContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitMethodReference(Java8Parser.MethodReferenceContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterMethodReference_lf_primary(Java8Parser.MethodReference_lf_primaryContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitMethodReference_lf_primary(Java8Parser.MethodReference_lf_primaryContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterMethodReference_lfno_primary(Java8Parser.MethodReference_lfno_primaryContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitMethodReference_lfno_primary(Java8Parser.MethodReference_lfno_primaryContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterArrayCreationExpression(Java8Parser.ArrayCreationExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitArrayCreationExpression(Java8Parser.ArrayCreationExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterDimExprs(Java8Parser.DimExprsContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitDimExprs(Java8Parser.DimExprsContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterDimExpr(Java8Parser.DimExprContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitDimExpr(Java8Parser.DimExprContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterConstantExpression(Java8Parser.ConstantExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitConstantExpression(Java8Parser.ConstantExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterExpression(Java8Parser.ExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitExpression(Java8Parser.ExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterLambdaExpression(Java8Parser.LambdaExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitLambdaExpression(Java8Parser.LambdaExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterLambdaParameters(Java8Parser.LambdaParametersContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitLambdaParameters(Java8Parser.LambdaParametersContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterInferredFormalParameterList(Java8Parser.InferredFormalParameterListContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitInferredFormalParameterList(Java8Parser.InferredFormalParameterListContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterLambdaBody(Java8Parser.LambdaBodyContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitLambdaBody(Java8Parser.LambdaBodyContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterAssignmentExpression(Java8Parser.AssignmentExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitAssignmentExpression(Java8Parser.AssignmentExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterAssignment(Java8Parser.AssignmentContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitAssignment(Java8Parser.AssignmentContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterLeftHandSide(Java8Parser.LeftHandSideContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitLeftHandSide(Java8Parser.LeftHandSideContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterAssignmentOperator(Java8Parser.AssignmentOperatorContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitAssignmentOperator(Java8Parser.AssignmentOperatorContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterConditionalExpression(Java8Parser.ConditionalExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitConditionalExpression(Java8Parser.ConditionalExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterConditionalOrExpression(Java8Parser.ConditionalOrExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitConditionalOrExpression(Java8Parser.ConditionalOrExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterConditionalAndExpression(Java8Parser.ConditionalAndExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitConditionalAndExpression(Java8Parser.ConditionalAndExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterInclusiveOrExpression(Java8Parser.InclusiveOrExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitInclusiveOrExpression(Java8Parser.InclusiveOrExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterExclusiveOrExpression(Java8Parser.ExclusiveOrExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitExclusiveOrExpression(Java8Parser.ExclusiveOrExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterAndExpression(Java8Parser.AndExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitAndExpression(Java8Parser.AndExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterEqualityExpression(Java8Parser.EqualityExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitEqualityExpression(Java8Parser.EqualityExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterRelationalExpression(Java8Parser.RelationalExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitRelationalExpression(Java8Parser.RelationalExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterShiftExpression(Java8Parser.ShiftExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitShiftExpression(Java8Parser.ShiftExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterAdditiveExpression(Java8Parser.AdditiveExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitAdditiveExpression(Java8Parser.AdditiveExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterMultiplicativeExpression(Java8Parser.MultiplicativeExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitMultiplicativeExpression(Java8Parser.MultiplicativeExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterUnaryExpression(Java8Parser.UnaryExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitUnaryExpression(Java8Parser.UnaryExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterPreIncrementExpression(Java8Parser.PreIncrementExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitPreIncrementExpression(Java8Parser.PreIncrementExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterPreDecrementExpression(Java8Parser.PreDecrementExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitPreDecrementExpression(Java8Parser.PreDecrementExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterUnaryExpressionNotPlusMinus(Java8Parser.UnaryExpressionNotPlusMinusContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitUnaryExpressionNotPlusMinus(Java8Parser.UnaryExpressionNotPlusMinusContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterPostfixExpression(Java8Parser.PostfixExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitPostfixExpression(Java8Parser.PostfixExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterPostIncrementExpression(Java8Parser.PostIncrementExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitPostIncrementExpression(Java8Parser.PostIncrementExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterPostIncrementExpression_lf_postfixExpression(Java8Parser.PostIncrementExpression_lf_postfixExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitPostIncrementExpression_lf_postfixExpression(Java8Parser.PostIncrementExpression_lf_postfixExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterPostDecrementExpression(Java8Parser.PostDecrementExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitPostDecrementExpression(Java8Parser.PostDecrementExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterPostDecrementExpression_lf_postfixExpression(Java8Parser.PostDecrementExpression_lf_postfixExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitPostDecrementExpression_lf_postfixExpression(Java8Parser.PostDecrementExpression_lf_postfixExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterCastExpression(Java8Parser.CastExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitCastExpression(Java8Parser.CastExpressionContext ctx) { } - - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void enterEveryRule(ParserRuleContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void exitEveryRule(ParserRuleContext ctx) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void visitTerminal(TerminalNode node) { } - /** - * {@inheritDoc} - * - *

    The default implementation does nothing.

    - */ - @Override public void visitErrorNode(ErrorNode node) { } -} \ No newline at end of file diff --git a/src/main/java/de/dhbwstuttgart/parser/antlr/Java8Lexer.java b/src/main/java/de/dhbwstuttgart/parser/antlr/Java8Lexer.java deleted file mode 100644 index 9c2e22c40..000000000 --- a/src/main/java/de/dhbwstuttgart/parser/antlr/Java8Lexer.java +++ /dev/null @@ -1,593 +0,0 @@ -// Generated from Java8.g4 by ANTLR 4.7 -package de.dhbwstuttgart.parser.antlr; -import org.antlr.v4.runtime.Lexer; -import org.antlr.v4.runtime.CharStream; -import org.antlr.v4.runtime.Token; -import org.antlr.v4.runtime.TokenStream; -import org.antlr.v4.runtime.*; -import org.antlr.v4.runtime.atn.*; -import org.antlr.v4.runtime.dfa.DFA; -import org.antlr.v4.runtime.misc.*; - -@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) -public class Java8Lexer extends Lexer { - static { RuntimeMetaData.checkVersion("4.7", RuntimeMetaData.VERSION); } - - protected static final DFA[] _decisionToDFA; - protected static final PredictionContextCache _sharedContextCache = - new PredictionContextCache(); - public static final int - T__0=1, ABSTRACT=2, ASSERT=3, BOOLEAN=4, BREAK=5, BYTE=6, CASE=7, CATCH=8, - CHAR=9, CLASS=10, CONST=11, CONTINUE=12, DEFAULT=13, DO=14, DOUBLE=15, - ELSE=16, ENUM=17, EXTENDS=18, FINAL=19, FINALLY=20, FLOAT=21, FOR=22, - IF=23, GOTO=24, IMPLEMENTS=25, IMPORT=26, INSTANCEOF=27, INT=28, INTERFACE=29, - LONG=30, NATIVE=31, NEW=32, PACKAGE=33, PRIVATE=34, PROTECTED=35, PUBLIC=36, - RETURN=37, SHORT=38, STATIC=39, STRICTFP=40, SUPER=41, SWITCH=42, SYNCHRONIZED=43, - THIS=44, THROW=45, THROWS=46, TRANSIENT=47, TRY=48, VOID=49, VOLATILE=50, - WHILE=51, IntegerLiteral=52, FloatingPointLiteral=53, BooleanLiteral=54, - CharacterLiteral=55, StringLiteral=56, NullLiteral=57, LPAREN=58, RPAREN=59, - LBRACE=60, RBRACE=61, LBRACK=62, RBRACK=63, SEMI=64, COMMA=65, DOT=66, - ASSIGN=67, GT=68, LT=69, BANG=70, TILDE=71, QUESTION=72, COLON=73, EQUAL=74, - LE=75, GE=76, NOTEQUAL=77, AND=78, OR=79, INC=80, DEC=81, ADD=82, SUB=83, - MUL=84, DIV=85, BITAND=86, BITOR=87, CARET=88, MOD=89, ARROW=90, COLONCOLON=91, - ADD_ASSIGN=92, SUB_ASSIGN=93, MUL_ASSIGN=94, DIV_ASSIGN=95, AND_ASSIGN=96, - OR_ASSIGN=97, XOR_ASSIGN=98, MOD_ASSIGN=99, LSHIFT_ASSIGN=100, RSHIFT_ASSIGN=101, - URSHIFT_ASSIGN=102, Identifier=103, AT=104, ELLIPSIS=105, WS=106, COMMENT=107, - LINE_COMMENT=108; - public static String[] channelNames = { - "DEFAULT_TOKEN_CHANNEL", "HIDDEN" - }; - - public static String[] modeNames = { - "DEFAULT_MODE" - }; - - public static final String[] ruleNames = { - "T__0", "ABSTRACT", "ASSERT", "BOOLEAN", "BREAK", "BYTE", "CASE", "CATCH", - "CHAR", "CLASS", "CONST", "CONTINUE", "DEFAULT", "DO", "DOUBLE", "ELSE", - "ENUM", "EXTENDS", "FINAL", "FINALLY", "FLOAT", "FOR", "IF", "GOTO", "IMPLEMENTS", - "IMPORT", "INSTANCEOF", "INT", "INTERFACE", "LONG", "NATIVE", "NEW", "PACKAGE", - "PRIVATE", "PROTECTED", "PUBLIC", "RETURN", "SHORT", "STATIC", "STRICTFP", - "SUPER", "SWITCH", "SYNCHRONIZED", "THIS", "THROW", "THROWS", "TRANSIENT", - "TRY", "VOID", "VOLATILE", "WHILE", "IntegerLiteral", "DecimalIntegerLiteral", - "HexIntegerLiteral", "OctalIntegerLiteral", "BinaryIntegerLiteral", "IntegerTypeSuffix", - "DecimalNumeral", "Digits", "Digit", "NonZeroDigit", "DigitsAndUnderscores", - "DigitOrUnderscore", "Underscores", "HexNumeral", "HexDigits", "HexDigit", - "HexDigitsAndUnderscores", "HexDigitOrUnderscore", "OctalNumeral", "OctalDigits", - "OctalDigit", "OctalDigitsAndUnderscores", "OctalDigitOrUnderscore", "BinaryNumeral", - "BinaryDigits", "BinaryDigit", "BinaryDigitsAndUnderscores", "BinaryDigitOrUnderscore", - "FloatingPointLiteral", "DecimalFloatingPointLiteral", "ExponentPart", - "ExponentIndicator", "SignedInteger", "Sign", "FloatTypeSuffix", "HexadecimalFloatingPointLiteral", - "HexSignificand", "BinaryExponent", "BinaryExponentIndicator", "BooleanLiteral", - "CharacterLiteral", "SingleCharacter", "StringLiteral", "StringCharacters", - "StringCharacter", "EscapeSequence", "OctalEscape", "ZeroToThree", "UnicodeEscape", - "NullLiteral", "LPAREN", "RPAREN", "LBRACE", "RBRACE", "LBRACK", "RBRACK", - "SEMI", "COMMA", "DOT", "ASSIGN", "GT", "LT", "BANG", "TILDE", "QUESTION", - "COLON", "EQUAL", "LE", "GE", "NOTEQUAL", "AND", "OR", "INC", "DEC", "ADD", - "SUB", "MUL", "DIV", "BITAND", "BITOR", "CARET", "MOD", "ARROW", "COLONCOLON", - "ADD_ASSIGN", "SUB_ASSIGN", "MUL_ASSIGN", "DIV_ASSIGN", "AND_ASSIGN", - "OR_ASSIGN", "XOR_ASSIGN", "MOD_ASSIGN", "LSHIFT_ASSIGN", "RSHIFT_ASSIGN", - "URSHIFT_ASSIGN", "Identifier", "JavaLetter", "JavaLetterOrDigit", "AT", - "ELLIPSIS", "WS", "COMMENT", "LINE_COMMENT" - }; - - private static final String[] _LITERAL_NAMES = { - null, "'var'", "'abstract'", "'assert'", "'boolean'", "'break'", "'byte'", - "'case'", "'catch'", "'char'", "'class'", "'const'", "'continue'", "'default'", - "'do'", "'double'", "'else'", "'enum'", "'extends'", "'final'", "'finally'", - "'float'", "'for'", "'if'", "'goto'", "'implements'", "'import'", "'instanceof'", - "'int'", "'interface'", "'long'", "'native'", "'new'", "'package'", "'private'", - "'protected'", "'public'", "'return'", "'short'", "'static'", "'strictfp'", - "'super'", "'switch'", "'synchronized'", "'this'", "'throw'", "'throws'", - "'transient'", "'try'", "'void'", "'volatile'", "'while'", null, null, - null, null, null, "'null'", "'('", "')'", "'{'", "'}'", "'['", "']'", - "';'", "','", "'.'", "'='", "'>'", "'<'", "'!'", "'~'", "'?'", "':'", - "'=='", "'<='", "'>='", "'!='", "'&&'", "'||'", "'++'", "'--'", "'+'", - "'-'", "'*'", "'/'", "'&'", "'|'", "'^'", "'%'", "'->'", "'::'", "'+='", - "'-='", "'*='", "'/='", "'&='", "'|='", "'^='", "'%='", "'<<='", "'>>='", - "'>>>='", null, "'@'", "'...'" - }; - private static final String[] _SYMBOLIC_NAMES = { - null, null, "ABSTRACT", "ASSERT", "BOOLEAN", "BREAK", "BYTE", "CASE", - "CATCH", "CHAR", "CLASS", "CONST", "CONTINUE", "DEFAULT", "DO", "DOUBLE", - "ELSE", "ENUM", "EXTENDS", "FINAL", "FINALLY", "FLOAT", "FOR", "IF", "GOTO", - "IMPLEMENTS", "IMPORT", "INSTANCEOF", "INT", "INTERFACE", "LONG", "NATIVE", - "NEW", "PACKAGE", "PRIVATE", "PROTECTED", "PUBLIC", "RETURN", "SHORT", - "STATIC", "STRICTFP", "SUPER", "SWITCH", "SYNCHRONIZED", "THIS", "THROW", - "THROWS", "TRANSIENT", "TRY", "VOID", "VOLATILE", "WHILE", "IntegerLiteral", - "FloatingPointLiteral", "BooleanLiteral", "CharacterLiteral", "StringLiteral", - "NullLiteral", "LPAREN", "RPAREN", "LBRACE", "RBRACE", "LBRACK", "RBRACK", - "SEMI", "COMMA", "DOT", "ASSIGN", "GT", "LT", "BANG", "TILDE", "QUESTION", - "COLON", "EQUAL", "LE", "GE", "NOTEQUAL", "AND", "OR", "INC", "DEC", "ADD", - "SUB", "MUL", "DIV", "BITAND", "BITOR", "CARET", "MOD", "ARROW", "COLONCOLON", - "ADD_ASSIGN", "SUB_ASSIGN", "MUL_ASSIGN", "DIV_ASSIGN", "AND_ASSIGN", - "OR_ASSIGN", "XOR_ASSIGN", "MOD_ASSIGN", "LSHIFT_ASSIGN", "RSHIFT_ASSIGN", - "URSHIFT_ASSIGN", "Identifier", "AT", "ELLIPSIS", "WS", "COMMENT", "LINE_COMMENT" - }; - public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); - - /** - * @deprecated Use {@link #VOCABULARY} instead. - */ - @Deprecated - public static final String[] tokenNames; - static { - tokenNames = new String[_SYMBOLIC_NAMES.length]; - for (int i = 0; i < tokenNames.length; i++) { - tokenNames[i] = VOCABULARY.getLiteralName(i); - if (tokenNames[i] == null) { - tokenNames[i] = VOCABULARY.getSymbolicName(i); - } - - if (tokenNames[i] == null) { - tokenNames[i] = ""; - } - } - } - - @Override - @Deprecated - public String[] getTokenNames() { - return tokenNames; - } - - @Override - - public Vocabulary getVocabulary() { - return VOCABULARY; - } - - - public Java8Lexer(CharStream input) { - super(input); - _interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); - } - - @Override - public String getGrammarFileName() { return "Java8.g4"; } - - @Override - public String[] getRuleNames() { return ruleNames; } - - @Override - public String getSerializedATN() { return _serializedATN; } - - @Override - public String[] getChannelNames() { return channelNames; } - - @Override - public String[] getModeNames() { return modeNames; } - - @Override - public ATN getATN() { return _ATN; } - - @Override - public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) { - switch (ruleIndex) { - case 147: - return JavaLetter_sempred((RuleContext)_localctx, predIndex); - case 148: - return JavaLetterOrDigit_sempred((RuleContext)_localctx, predIndex); - } - return true; - } - private boolean JavaLetter_sempred(RuleContext _localctx, int predIndex) { - switch (predIndex) { - case 0: - return Character.isJavaIdentifierStart(_input.LA(-1)); - case 1: - return Character.isJavaIdentifierStart(Character.toCodePoint((char)_input.LA(-2), (char)_input.LA(-1))); - } - return true; - } - private boolean JavaLetterOrDigit_sempred(RuleContext _localctx, int predIndex) { - switch (predIndex) { - case 2: - return Character.isJavaIdentifierPart(_input.LA(-1)); - case 3: - return Character.isJavaIdentifierPart(Character.toCodePoint((char)_input.LA(-2), (char)_input.LA(-1))); - } - return true; - } - - public static final String _serializedATN = - "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2n\u044e\b\1\4\2\t"+ - "\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13"+ - "\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+ - "\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+ - "\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t \4!"+ - "\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\4"+ - ",\t,\4-\t-\4.\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64\t"+ - "\64\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:\4;\t;\4<\t<\4=\t="+ - "\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\tC\4D\tD\4E\tE\4F\tF\4G\tG\4H\tH\4I"+ - "\tI\4J\tJ\4K\tK\4L\tL\4M\tM\4N\tN\4O\tO\4P\tP\4Q\tQ\4R\tR\4S\tS\4T\tT"+ - "\4U\tU\4V\tV\4W\tW\4X\tX\4Y\tY\4Z\tZ\4[\t[\4\\\t\\\4]\t]\4^\t^\4_\t_\4"+ - "`\t`\4a\ta\4b\tb\4c\tc\4d\td\4e\te\4f\tf\4g\tg\4h\th\4i\ti\4j\tj\4k\t"+ - "k\4l\tl\4m\tm\4n\tn\4o\to\4p\tp\4q\tq\4r\tr\4s\ts\4t\tt\4u\tu\4v\tv\4"+ - "w\tw\4x\tx\4y\ty\4z\tz\4{\t{\4|\t|\4}\t}\4~\t~\4\177\t\177\4\u0080\t\u0080"+ - "\4\u0081\t\u0081\4\u0082\t\u0082\4\u0083\t\u0083\4\u0084\t\u0084\4\u0085"+ - "\t\u0085\4\u0086\t\u0086\4\u0087\t\u0087\4\u0088\t\u0088\4\u0089\t\u0089"+ - "\4\u008a\t\u008a\4\u008b\t\u008b\4\u008c\t\u008c\4\u008d\t\u008d\4\u008e"+ - "\t\u008e\4\u008f\t\u008f\4\u0090\t\u0090\4\u0091\t\u0091\4\u0092\t\u0092"+ - "\4\u0093\t\u0093\4\u0094\t\u0094\4\u0095\t\u0095\4\u0096\t\u0096\4\u0097"+ - "\t\u0097\4\u0098\t\u0098\4\u0099\t\u0099\4\u009a\t\u009a\4\u009b\t\u009b"+ - "\3\2\3\2\3\2\3\2\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\4\3\4\3\4\3\4\3"+ - "\4\3\4\3\4\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\6\3\6\3\6\3\6\3\6\3\6\3\7"+ - "\3\7\3\7\3\7\3\7\3\b\3\b\3\b\3\b\3\b\3\t\3\t\3\t\3\t\3\t\3\t\3\n\3\n\3"+ - "\n\3\n\3\n\3\13\3\13\3\13\3\13\3\13\3\13\3\f\3\f\3\f\3\f\3\f\3\f\3\r\3"+ - "\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\16\3\16\3\16\3\16\3\16\3\16\3\16\3\16"+ - "\3\17\3\17\3\17\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\21\3\21\3\21\3\21"+ - "\3\21\3\22\3\22\3\22\3\22\3\22\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23"+ - "\3\24\3\24\3\24\3\24\3\24\3\24\3\25\3\25\3\25\3\25\3\25\3\25\3\25\3\25"+ - "\3\26\3\26\3\26\3\26\3\26\3\26\3\27\3\27\3\27\3\27\3\30\3\30\3\30\3\31"+ - "\3\31\3\31\3\31\3\31\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\32"+ - "\3\32\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\34\3\34\3\34\3\34\3\34\3\34"+ - "\3\34\3\34\3\34\3\34\3\34\3\35\3\35\3\35\3\35\3\36\3\36\3\36\3\36\3\36"+ - "\3\36\3\36\3\36\3\36\3\36\3\37\3\37\3\37\3\37\3\37\3 \3 \3 \3 \3 \3 \3"+ - " \3!\3!\3!\3!\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3#\3#\3#\3#\3#\3#\3#\3#"+ - "\3$\3$\3$\3$\3$\3$\3$\3$\3$\3$\3%\3%\3%\3%\3%\3%\3%\3&\3&\3&\3&\3&\3&"+ - "\3&\3\'\3\'\3\'\3\'\3\'\3\'\3(\3(\3(\3(\3(\3(\3(\3)\3)\3)\3)\3)\3)\3)"+ - "\3)\3)\3*\3*\3*\3*\3*\3*\3+\3+\3+\3+\3+\3+\3+\3,\3,\3,\3,\3,\3,\3,\3,"+ - "\3,\3,\3,\3,\3,\3-\3-\3-\3-\3-\3.\3.\3.\3.\3.\3.\3/\3/\3/\3/\3/\3/\3/"+ - "\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\61\3\61\3\61\3\61"+ - "\3\62\3\62\3\62\3\62\3\62\3\63\3\63\3\63\3\63\3\63\3\63\3\63\3\63\3\63"+ - "\3\64\3\64\3\64\3\64\3\64\3\64\3\65\3\65\3\65\3\65\5\65\u0293\n\65\3\66"+ - "\3\66\5\66\u0297\n\66\3\67\3\67\5\67\u029b\n\67\38\38\58\u029f\n8\39\3"+ - "9\59\u02a3\n9\3:\3:\3;\3;\3;\5;\u02aa\n;\3;\3;\3;\5;\u02af\n;\5;\u02b1"+ - "\n;\3<\3<\5<\u02b5\n<\3<\5<\u02b8\n<\3=\3=\5=\u02bc\n=\3>\3>\3?\6?\u02c1"+ - "\n?\r?\16?\u02c2\3@\3@\5@\u02c7\n@\3A\6A\u02ca\nA\rA\16A\u02cb\3B\3B\3"+ - "B\3B\3C\3C\5C\u02d4\nC\3C\5C\u02d7\nC\3D\3D\3E\6E\u02dc\nE\rE\16E\u02dd"+ - "\3F\3F\5F\u02e2\nF\3G\3G\5G\u02e6\nG\3G\3G\3H\3H\5H\u02ec\nH\3H\5H\u02ef"+ - "\nH\3I\3I\3J\6J\u02f4\nJ\rJ\16J\u02f5\3K\3K\5K\u02fa\nK\3L\3L\3L\3L\3"+ - "M\3M\5M\u0302\nM\3M\5M\u0305\nM\3N\3N\3O\6O\u030a\nO\rO\16O\u030b\3P\3"+ - "P\5P\u0310\nP\3Q\3Q\5Q\u0314\nQ\3R\3R\3R\5R\u0319\nR\3R\5R\u031c\nR\3"+ - "R\5R\u031f\nR\3R\3R\3R\5R\u0324\nR\3R\5R\u0327\nR\3R\3R\3R\5R\u032c\n"+ - "R\3R\3R\3R\5R\u0331\nR\3S\3S\3S\3T\3T\3U\5U\u0339\nU\3U\3U\3V\3V\3W\3"+ - "W\3X\3X\3X\5X\u0344\nX\3Y\3Y\5Y\u0348\nY\3Y\3Y\3Y\5Y\u034d\nY\3Y\3Y\5"+ - "Y\u0351\nY\3Z\3Z\3Z\3[\3[\3\\\3\\\3\\\3\\\3\\\3\\\3\\\3\\\3\\\5\\\u0361"+ - "\n\\\3]\3]\3]\3]\3]\3]\3]\3]\5]\u036b\n]\3^\3^\3_\3_\5_\u0371\n_\3_\3"+ - "_\3`\6`\u0376\n`\r`\16`\u0377\3a\3a\5a\u037c\na\3b\3b\3b\3b\5b\u0382\n"+ - "b\3c\3c\3c\3c\3c\3c\3c\3c\3c\3c\3c\5c\u038f\nc\3d\3d\3e\3e\3e\3e\3e\3"+ - "e\3e\3f\3f\3f\3f\3f\3g\3g\3h\3h\3i\3i\3j\3j\3k\3k\3l\3l\3m\3m\3n\3n\3"+ - "o\3o\3p\3p\3q\3q\3r\3r\3s\3s\3t\3t\3u\3u\3v\3v\3w\3w\3w\3x\3x\3x\3y\3"+ - "y\3y\3z\3z\3z\3{\3{\3{\3|\3|\3|\3}\3}\3}\3~\3~\3~\3\177\3\177\3\u0080"+ - "\3\u0080\3\u0081\3\u0081\3\u0082\3\u0082\3\u0083\3\u0083\3\u0084\3\u0084"+ - "\3\u0085\3\u0085\3\u0086\3\u0086\3\u0087\3\u0087\3\u0087\3\u0088\3\u0088"+ - "\3\u0088\3\u0089\3\u0089\3\u0089\3\u008a\3\u008a\3\u008a\3\u008b\3\u008b"+ - "\3\u008b\3\u008c\3\u008c\3\u008c\3\u008d\3\u008d\3\u008d\3\u008e\3\u008e"+ - "\3\u008e\3\u008f\3\u008f\3\u008f\3\u0090\3\u0090\3\u0090\3\u0091\3\u0091"+ - "\3\u0091\3\u0091\3\u0092\3\u0092\3\u0092\3\u0092\3\u0093\3\u0093\3\u0093"+ - "\3\u0093\3\u0093\3\u0094\3\u0094\7\u0094\u0414\n\u0094\f\u0094\16\u0094"+ - "\u0417\13\u0094\3\u0095\3\u0095\3\u0095\3\u0095\3\u0095\3\u0095\5\u0095"+ - "\u041f\n\u0095\3\u0096\3\u0096\3\u0096\3\u0096\3\u0096\3\u0096\5\u0096"+ - "\u0427\n\u0096\3\u0097\3\u0097\3\u0098\3\u0098\3\u0098\3\u0098\3\u0099"+ - "\6\u0099\u0430\n\u0099\r\u0099\16\u0099\u0431\3\u0099\3\u0099\3\u009a"+ - "\3\u009a\3\u009a\3\u009a\7\u009a\u043a\n\u009a\f\u009a\16\u009a\u043d"+ - "\13\u009a\3\u009a\3\u009a\3\u009a\3\u009a\3\u009a\3\u009b\3\u009b\3\u009b"+ - "\3\u009b\7\u009b\u0448\n\u009b\f\u009b\16\u009b\u044b\13\u009b\3\u009b"+ - "\3\u009b\3\u043b\2\u009c\3\3\5\4\7\5\t\6\13\7\r\b\17\t\21\n\23\13\25\f"+ - "\27\r\31\16\33\17\35\20\37\21!\22#\23%\24\'\25)\26+\27-\30/\31\61\32\63"+ - "\33\65\34\67\359\36;\37= ?!A\"C#E$G%I&K\'M(O)Q*S+U,W-Y.[/]\60_\61a\62"+ - "c\63e\64g\65i\66k\2m\2o\2q\2s\2u\2w\2y\2{\2}\2\177\2\u0081\2\u0083\2\u0085"+ - "\2\u0087\2\u0089\2\u008b\2\u008d\2\u008f\2\u0091\2\u0093\2\u0095\2\u0097"+ - "\2\u0099\2\u009b\2\u009d\2\u009f\2\u00a1\67\u00a3\2\u00a5\2\u00a7\2\u00a9"+ - "\2\u00ab\2\u00ad\2\u00af\2\u00b1\2\u00b3\2\u00b5\2\u00b78\u00b99\u00bb"+ - "\2\u00bd:\u00bf\2\u00c1\2\u00c3\2\u00c5\2\u00c7\2\u00c9\2\u00cb;\u00cd"+ - "<\u00cf=\u00d1>\u00d3?\u00d5@\u00d7A\u00d9B\u00dbC\u00ddD\u00dfE\u00e1"+ - "F\u00e3G\u00e5H\u00e7I\u00e9J\u00ebK\u00edL\u00efM\u00f1N\u00f3O\u00f5"+ - "P\u00f7Q\u00f9R\u00fbS\u00fdT\u00ffU\u0101V\u0103W\u0105X\u0107Y\u0109"+ - "Z\u010b[\u010d\\\u010f]\u0111^\u0113_\u0115`\u0117a\u0119b\u011bc\u011d"+ - "d\u011fe\u0121f\u0123g\u0125h\u0127i\u0129\2\u012b\2\u012dj\u012fk\u0131"+ - "l\u0133m\u0135n\3\2\30\4\2NNnn\3\2\63;\4\2ZZzz\5\2\62;CHch\3\2\629\4\2"+ - "DDdd\3\2\62\63\4\2GGgg\4\2--//\6\2FFHHffhh\4\2RRrr\4\2))^^\4\2$$^^\n\2"+ - "$$))^^ddhhppttvv\3\2\62\65\6\2&&C\\aac|\4\2\2\u0081\ud802\udc01\3\2\ud802"+ - "\udc01\3\2\udc02\ue001\7\2&&\62;C\\aac|\5\2\13\f\16\17\"\"\4\2\f\f\17"+ - "\17\2\u045c\2\3\3\2\2\2\2\5\3\2\2\2\2\7\3\2\2\2\2\t\3\2\2\2\2\13\3\2\2"+ - "\2\2\r\3\2\2\2\2\17\3\2\2\2\2\21\3\2\2\2\2\23\3\2\2\2\2\25\3\2\2\2\2\27"+ - "\3\2\2\2\2\31\3\2\2\2\2\33\3\2\2\2\2\35\3\2\2\2\2\37\3\2\2\2\2!\3\2\2"+ - "\2\2#\3\2\2\2\2%\3\2\2\2\2\'\3\2\2\2\2)\3\2\2\2\2+\3\2\2\2\2-\3\2\2\2"+ - "\2/\3\2\2\2\2\61\3\2\2\2\2\63\3\2\2\2\2\65\3\2\2\2\2\67\3\2\2\2\29\3\2"+ - "\2\2\2;\3\2\2\2\2=\3\2\2\2\2?\3\2\2\2\2A\3\2\2\2\2C\3\2\2\2\2E\3\2\2\2"+ - "\2G\3\2\2\2\2I\3\2\2\2\2K\3\2\2\2\2M\3\2\2\2\2O\3\2\2\2\2Q\3\2\2\2\2S"+ - "\3\2\2\2\2U\3\2\2\2\2W\3\2\2\2\2Y\3\2\2\2\2[\3\2\2\2\2]\3\2\2\2\2_\3\2"+ - "\2\2\2a\3\2\2\2\2c\3\2\2\2\2e\3\2\2\2\2g\3\2\2\2\2i\3\2\2\2\2\u00a1\3"+ - "\2\2\2\2\u00b7\3\2\2\2\2\u00b9\3\2\2\2\2\u00bd\3\2\2\2\2\u00cb\3\2\2\2"+ - "\2\u00cd\3\2\2\2\2\u00cf\3\2\2\2\2\u00d1\3\2\2\2\2\u00d3\3\2\2\2\2\u00d5"+ - "\3\2\2\2\2\u00d7\3\2\2\2\2\u00d9\3\2\2\2\2\u00db\3\2\2\2\2\u00dd\3\2\2"+ - "\2\2\u00df\3\2\2\2\2\u00e1\3\2\2\2\2\u00e3\3\2\2\2\2\u00e5\3\2\2\2\2\u00e7"+ - "\3\2\2\2\2\u00e9\3\2\2\2\2\u00eb\3\2\2\2\2\u00ed\3\2\2\2\2\u00ef\3\2\2"+ - "\2\2\u00f1\3\2\2\2\2\u00f3\3\2\2\2\2\u00f5\3\2\2\2\2\u00f7\3\2\2\2\2\u00f9"+ - "\3\2\2\2\2\u00fb\3\2\2\2\2\u00fd\3\2\2\2\2\u00ff\3\2\2\2\2\u0101\3\2\2"+ - "\2\2\u0103\3\2\2\2\2\u0105\3\2\2\2\2\u0107\3\2\2\2\2\u0109\3\2\2\2\2\u010b"+ - "\3\2\2\2\2\u010d\3\2\2\2\2\u010f\3\2\2\2\2\u0111\3\2\2\2\2\u0113\3\2\2"+ - "\2\2\u0115\3\2\2\2\2\u0117\3\2\2\2\2\u0119\3\2\2\2\2\u011b\3\2\2\2\2\u011d"+ - "\3\2\2\2\2\u011f\3\2\2\2\2\u0121\3\2\2\2\2\u0123\3\2\2\2\2\u0125\3\2\2"+ - "\2\2\u0127\3\2\2\2\2\u012d\3\2\2\2\2\u012f\3\2\2\2\2\u0131\3\2\2\2\2\u0133"+ - "\3\2\2\2\2\u0135\3\2\2\2\3\u0137\3\2\2\2\5\u013b\3\2\2\2\7\u0144\3\2\2"+ - "\2\t\u014b\3\2\2\2\13\u0153\3\2\2\2\r\u0159\3\2\2\2\17\u015e\3\2\2\2\21"+ - "\u0163\3\2\2\2\23\u0169\3\2\2\2\25\u016e\3\2\2\2\27\u0174\3\2\2\2\31\u017a"+ - "\3\2\2\2\33\u0183\3\2\2\2\35\u018b\3\2\2\2\37\u018e\3\2\2\2!\u0195\3\2"+ - "\2\2#\u019a\3\2\2\2%\u019f\3\2\2\2\'\u01a7\3\2\2\2)\u01ad\3\2\2\2+\u01b5"+ - "\3\2\2\2-\u01bb\3\2\2\2/\u01bf\3\2\2\2\61\u01c2\3\2\2\2\63\u01c7\3\2\2"+ - "\2\65\u01d2\3\2\2\2\67\u01d9\3\2\2\29\u01e4\3\2\2\2;\u01e8\3\2\2\2=\u01f2"+ - "\3\2\2\2?\u01f7\3\2\2\2A\u01fe\3\2\2\2C\u0202\3\2\2\2E\u020a\3\2\2\2G"+ - "\u0212\3\2\2\2I\u021c\3\2\2\2K\u0223\3\2\2\2M\u022a\3\2\2\2O\u0230\3\2"+ - "\2\2Q\u0237\3\2\2\2S\u0240\3\2\2\2U\u0246\3\2\2\2W\u024d\3\2\2\2Y\u025a"+ - "\3\2\2\2[\u025f\3\2\2\2]\u0265\3\2\2\2_\u026c\3\2\2\2a\u0276\3\2\2\2c"+ - "\u027a\3\2\2\2e\u027f\3\2\2\2g\u0288\3\2\2\2i\u0292\3\2\2\2k\u0294\3\2"+ - "\2\2m\u0298\3\2\2\2o\u029c\3\2\2\2q\u02a0\3\2\2\2s\u02a4\3\2\2\2u\u02b0"+ - "\3\2\2\2w\u02b2\3\2\2\2y\u02bb\3\2\2\2{\u02bd\3\2\2\2}\u02c0\3\2\2\2\177"+ - "\u02c6\3\2\2\2\u0081\u02c9\3\2\2\2\u0083\u02cd\3\2\2\2\u0085\u02d1\3\2"+ - "\2\2\u0087\u02d8\3\2\2\2\u0089\u02db\3\2\2\2\u008b\u02e1\3\2\2\2\u008d"+ - "\u02e3\3\2\2\2\u008f\u02e9\3\2\2\2\u0091\u02f0\3\2\2\2\u0093\u02f3\3\2"+ - "\2\2\u0095\u02f9\3\2\2\2\u0097\u02fb\3\2\2\2\u0099\u02ff\3\2\2\2\u009b"+ - "\u0306\3\2\2\2\u009d\u0309\3\2\2\2\u009f\u030f\3\2\2\2\u00a1\u0313\3\2"+ - "\2\2\u00a3\u0330\3\2\2\2\u00a5\u0332\3\2\2\2\u00a7\u0335\3\2\2\2\u00a9"+ - "\u0338\3\2\2\2\u00ab\u033c\3\2\2\2\u00ad\u033e\3\2\2\2\u00af\u0340\3\2"+ - "\2\2\u00b1\u0350\3\2\2\2\u00b3\u0352\3\2\2\2\u00b5\u0355\3\2\2\2\u00b7"+ - "\u0360\3\2\2\2\u00b9\u036a\3\2\2\2\u00bb\u036c\3\2\2\2\u00bd\u036e\3\2"+ - "\2\2\u00bf\u0375\3\2\2\2\u00c1\u037b\3\2\2\2\u00c3\u0381\3\2\2\2\u00c5"+ - "\u038e\3\2\2\2\u00c7\u0390\3\2\2\2\u00c9\u0392\3\2\2\2\u00cb\u0399\3\2"+ - "\2\2\u00cd\u039e\3\2\2\2\u00cf\u03a0\3\2\2\2\u00d1\u03a2\3\2\2\2\u00d3"+ - "\u03a4\3\2\2\2\u00d5\u03a6\3\2\2\2\u00d7\u03a8\3\2\2\2\u00d9\u03aa\3\2"+ - "\2\2\u00db\u03ac\3\2\2\2\u00dd\u03ae\3\2\2\2\u00df\u03b0\3\2\2\2\u00e1"+ - "\u03b2\3\2\2\2\u00e3\u03b4\3\2\2\2\u00e5\u03b6\3\2\2\2\u00e7\u03b8\3\2"+ - "\2\2\u00e9\u03ba\3\2\2\2\u00eb\u03bc\3\2\2\2\u00ed\u03be\3\2\2\2\u00ef"+ - "\u03c1\3\2\2\2\u00f1\u03c4\3\2\2\2\u00f3\u03c7\3\2\2\2\u00f5\u03ca\3\2"+ - "\2\2\u00f7\u03cd\3\2\2\2\u00f9\u03d0\3\2\2\2\u00fb\u03d3\3\2\2\2\u00fd"+ - "\u03d6\3\2\2\2\u00ff\u03d8\3\2\2\2\u0101\u03da\3\2\2\2\u0103\u03dc\3\2"+ - "\2\2\u0105\u03de\3\2\2\2\u0107\u03e0\3\2\2\2\u0109\u03e2\3\2\2\2\u010b"+ - "\u03e4\3\2\2\2\u010d\u03e6\3\2\2\2\u010f\u03e9\3\2\2\2\u0111\u03ec\3\2"+ - "\2\2\u0113\u03ef\3\2\2\2\u0115\u03f2\3\2\2\2\u0117\u03f5\3\2\2\2\u0119"+ - "\u03f8\3\2\2\2\u011b\u03fb\3\2\2\2\u011d\u03fe\3\2\2\2\u011f\u0401\3\2"+ - "\2\2\u0121\u0404\3\2\2\2\u0123\u0408\3\2\2\2\u0125\u040c\3\2\2\2\u0127"+ - "\u0411\3\2\2\2\u0129\u041e\3\2\2\2\u012b\u0426\3\2\2\2\u012d\u0428\3\2"+ - "\2\2\u012f\u042a\3\2\2\2\u0131\u042f\3\2\2\2\u0133\u0435\3\2\2\2\u0135"+ - "\u0443\3\2\2\2\u0137\u0138\7x\2\2\u0138\u0139\7c\2\2\u0139\u013a\7t\2"+ - "\2\u013a\4\3\2\2\2\u013b\u013c\7c\2\2\u013c\u013d\7d\2\2\u013d\u013e\7"+ - "u\2\2\u013e\u013f\7v\2\2\u013f\u0140\7t\2\2\u0140\u0141\7c\2\2\u0141\u0142"+ - "\7e\2\2\u0142\u0143\7v\2\2\u0143\6\3\2\2\2\u0144\u0145\7c\2\2\u0145\u0146"+ - "\7u\2\2\u0146\u0147\7u\2\2\u0147\u0148\7g\2\2\u0148\u0149\7t\2\2\u0149"+ - "\u014a\7v\2\2\u014a\b\3\2\2\2\u014b\u014c\7d\2\2\u014c\u014d\7q\2\2\u014d"+ - "\u014e\7q\2\2\u014e\u014f\7n\2\2\u014f\u0150\7g\2\2\u0150\u0151\7c\2\2"+ - "\u0151\u0152\7p\2\2\u0152\n\3\2\2\2\u0153\u0154\7d\2\2\u0154\u0155\7t"+ - "\2\2\u0155\u0156\7g\2\2\u0156\u0157\7c\2\2\u0157\u0158\7m\2\2\u0158\f"+ - "\3\2\2\2\u0159\u015a\7d\2\2\u015a\u015b\7{\2\2\u015b\u015c\7v\2\2\u015c"+ - "\u015d\7g\2\2\u015d\16\3\2\2\2\u015e\u015f\7e\2\2\u015f\u0160\7c\2\2\u0160"+ - "\u0161\7u\2\2\u0161\u0162\7g\2\2\u0162\20\3\2\2\2\u0163\u0164\7e\2\2\u0164"+ - "\u0165\7c\2\2\u0165\u0166\7v\2\2\u0166\u0167\7e\2\2\u0167\u0168\7j\2\2"+ - "\u0168\22\3\2\2\2\u0169\u016a\7e\2\2\u016a\u016b\7j\2\2\u016b\u016c\7"+ - "c\2\2\u016c\u016d\7t\2\2\u016d\24\3\2\2\2\u016e\u016f\7e\2\2\u016f\u0170"+ - "\7n\2\2\u0170\u0171\7c\2\2\u0171\u0172\7u\2\2\u0172\u0173\7u\2\2\u0173"+ - "\26\3\2\2\2\u0174\u0175\7e\2\2\u0175\u0176\7q\2\2\u0176\u0177\7p\2\2\u0177"+ - "\u0178\7u\2\2\u0178\u0179\7v\2\2\u0179\30\3\2\2\2\u017a\u017b\7e\2\2\u017b"+ - "\u017c\7q\2\2\u017c\u017d\7p\2\2\u017d\u017e\7v\2\2\u017e\u017f\7k\2\2"+ - "\u017f\u0180\7p\2\2\u0180\u0181\7w\2\2\u0181\u0182\7g\2\2\u0182\32\3\2"+ - "\2\2\u0183\u0184\7f\2\2\u0184\u0185\7g\2\2\u0185\u0186\7h\2\2\u0186\u0187"+ - "\7c\2\2\u0187\u0188\7w\2\2\u0188\u0189\7n\2\2\u0189\u018a\7v\2\2\u018a"+ - "\34\3\2\2\2\u018b\u018c\7f\2\2\u018c\u018d\7q\2\2\u018d\36\3\2\2\2\u018e"+ - "\u018f\7f\2\2\u018f\u0190\7q\2\2\u0190\u0191\7w\2\2\u0191\u0192\7d\2\2"+ - "\u0192\u0193\7n\2\2\u0193\u0194\7g\2\2\u0194 \3\2\2\2\u0195\u0196\7g\2"+ - "\2\u0196\u0197\7n\2\2\u0197\u0198\7u\2\2\u0198\u0199\7g\2\2\u0199\"\3"+ - "\2\2\2\u019a\u019b\7g\2\2\u019b\u019c\7p\2\2\u019c\u019d\7w\2\2\u019d"+ - "\u019e\7o\2\2\u019e$\3\2\2\2\u019f\u01a0\7g\2\2\u01a0\u01a1\7z\2\2\u01a1"+ - "\u01a2\7v\2\2\u01a2\u01a3\7g\2\2\u01a3\u01a4\7p\2\2\u01a4\u01a5\7f\2\2"+ - "\u01a5\u01a6\7u\2\2\u01a6&\3\2\2\2\u01a7\u01a8\7h\2\2\u01a8\u01a9\7k\2"+ - "\2\u01a9\u01aa\7p\2\2\u01aa\u01ab\7c\2\2\u01ab\u01ac\7n\2\2\u01ac(\3\2"+ - "\2\2\u01ad\u01ae\7h\2\2\u01ae\u01af\7k\2\2\u01af\u01b0\7p\2\2\u01b0\u01b1"+ - "\7c\2\2\u01b1\u01b2\7n\2\2\u01b2\u01b3\7n\2\2\u01b3\u01b4\7{\2\2\u01b4"+ - "*\3\2\2\2\u01b5\u01b6\7h\2\2\u01b6\u01b7\7n\2\2\u01b7\u01b8\7q\2\2\u01b8"+ - "\u01b9\7c\2\2\u01b9\u01ba\7v\2\2\u01ba,\3\2\2\2\u01bb\u01bc\7h\2\2\u01bc"+ - "\u01bd\7q\2\2\u01bd\u01be\7t\2\2\u01be.\3\2\2\2\u01bf\u01c0\7k\2\2\u01c0"+ - "\u01c1\7h\2\2\u01c1\60\3\2\2\2\u01c2\u01c3\7i\2\2\u01c3\u01c4\7q\2\2\u01c4"+ - "\u01c5\7v\2\2\u01c5\u01c6\7q\2\2\u01c6\62\3\2\2\2\u01c7\u01c8\7k\2\2\u01c8"+ - "\u01c9\7o\2\2\u01c9\u01ca\7r\2\2\u01ca\u01cb\7n\2\2\u01cb\u01cc\7g\2\2"+ - "\u01cc\u01cd\7o\2\2\u01cd\u01ce\7g\2\2\u01ce\u01cf\7p\2\2\u01cf\u01d0"+ - "\7v\2\2\u01d0\u01d1\7u\2\2\u01d1\64\3\2\2\2\u01d2\u01d3\7k\2\2\u01d3\u01d4"+ - "\7o\2\2\u01d4\u01d5\7r\2\2\u01d5\u01d6\7q\2\2\u01d6\u01d7\7t\2\2\u01d7"+ - "\u01d8\7v\2\2\u01d8\66\3\2\2\2\u01d9\u01da\7k\2\2\u01da\u01db\7p\2\2\u01db"+ - "\u01dc\7u\2\2\u01dc\u01dd\7v\2\2\u01dd\u01de\7c\2\2\u01de\u01df\7p\2\2"+ - "\u01df\u01e0\7e\2\2\u01e0\u01e1\7g\2\2\u01e1\u01e2\7q\2\2\u01e2\u01e3"+ - "\7h\2\2\u01e38\3\2\2\2\u01e4\u01e5\7k\2\2\u01e5\u01e6\7p\2\2\u01e6\u01e7"+ - "\7v\2\2\u01e7:\3\2\2\2\u01e8\u01e9\7k\2\2\u01e9\u01ea\7p\2\2\u01ea\u01eb"+ - "\7v\2\2\u01eb\u01ec\7g\2\2\u01ec\u01ed\7t\2\2\u01ed\u01ee\7h\2\2\u01ee"+ - "\u01ef\7c\2\2\u01ef\u01f0\7e\2\2\u01f0\u01f1\7g\2\2\u01f1<\3\2\2\2\u01f2"+ - "\u01f3\7n\2\2\u01f3\u01f4\7q\2\2\u01f4\u01f5\7p\2\2\u01f5\u01f6\7i\2\2"+ - "\u01f6>\3\2\2\2\u01f7\u01f8\7p\2\2\u01f8\u01f9\7c\2\2\u01f9\u01fa\7v\2"+ - "\2\u01fa\u01fb\7k\2\2\u01fb\u01fc\7x\2\2\u01fc\u01fd\7g\2\2\u01fd@\3\2"+ - "\2\2\u01fe\u01ff\7p\2\2\u01ff\u0200\7g\2\2\u0200\u0201\7y\2\2\u0201B\3"+ - "\2\2\2\u0202\u0203\7r\2\2\u0203\u0204\7c\2\2\u0204\u0205\7e\2\2\u0205"+ - "\u0206\7m\2\2\u0206\u0207\7c\2\2\u0207\u0208\7i\2\2\u0208\u0209\7g\2\2"+ - "\u0209D\3\2\2\2\u020a\u020b\7r\2\2\u020b\u020c\7t\2\2\u020c\u020d\7k\2"+ - "\2\u020d\u020e\7x\2\2\u020e\u020f\7c\2\2\u020f\u0210\7v\2\2\u0210\u0211"+ - "\7g\2\2\u0211F\3\2\2\2\u0212\u0213\7r\2\2\u0213\u0214\7t\2\2\u0214\u0215"+ - "\7q\2\2\u0215\u0216\7v\2\2\u0216\u0217\7g\2\2\u0217\u0218\7e\2\2\u0218"+ - "\u0219\7v\2\2\u0219\u021a\7g\2\2\u021a\u021b\7f\2\2\u021bH\3\2\2\2\u021c"+ - "\u021d\7r\2\2\u021d\u021e\7w\2\2\u021e\u021f\7d\2\2\u021f\u0220\7n\2\2"+ - "\u0220\u0221\7k\2\2\u0221\u0222\7e\2\2\u0222J\3\2\2\2\u0223\u0224\7t\2"+ - "\2\u0224\u0225\7g\2\2\u0225\u0226\7v\2\2\u0226\u0227\7w\2\2\u0227\u0228"+ - "\7t\2\2\u0228\u0229\7p\2\2\u0229L\3\2\2\2\u022a\u022b\7u\2\2\u022b\u022c"+ - "\7j\2\2\u022c\u022d\7q\2\2\u022d\u022e\7t\2\2\u022e\u022f\7v\2\2\u022f"+ - "N\3\2\2\2\u0230\u0231\7u\2\2\u0231\u0232\7v\2\2\u0232\u0233\7c\2\2\u0233"+ - "\u0234\7v\2\2\u0234\u0235\7k\2\2\u0235\u0236\7e\2\2\u0236P\3\2\2\2\u0237"+ - "\u0238\7u\2\2\u0238\u0239\7v\2\2\u0239\u023a\7t\2\2\u023a\u023b\7k\2\2"+ - "\u023b\u023c\7e\2\2\u023c\u023d\7v\2\2\u023d\u023e\7h\2\2\u023e\u023f"+ - "\7r\2\2\u023fR\3\2\2\2\u0240\u0241\7u\2\2\u0241\u0242\7w\2\2\u0242\u0243"+ - "\7r\2\2\u0243\u0244\7g\2\2\u0244\u0245\7t\2\2\u0245T\3\2\2\2\u0246\u0247"+ - "\7u\2\2\u0247\u0248\7y\2\2\u0248\u0249\7k\2\2\u0249\u024a\7v\2\2\u024a"+ - "\u024b\7e\2\2\u024b\u024c\7j\2\2\u024cV\3\2\2\2\u024d\u024e\7u\2\2\u024e"+ - "\u024f\7{\2\2\u024f\u0250\7p\2\2\u0250\u0251\7e\2\2\u0251\u0252\7j\2\2"+ - "\u0252\u0253\7t\2\2\u0253\u0254\7q\2\2\u0254\u0255\7p\2\2\u0255\u0256"+ - "\7k\2\2\u0256\u0257\7|\2\2\u0257\u0258\7g\2\2\u0258\u0259\7f\2\2\u0259"+ - "X\3\2\2\2\u025a\u025b\7v\2\2\u025b\u025c\7j\2\2\u025c\u025d\7k\2\2\u025d"+ - "\u025e\7u\2\2\u025eZ\3\2\2\2\u025f\u0260\7v\2\2\u0260\u0261\7j\2\2\u0261"+ - "\u0262\7t\2\2\u0262\u0263\7q\2\2\u0263\u0264\7y\2\2\u0264\\\3\2\2\2\u0265"+ - "\u0266\7v\2\2\u0266\u0267\7j\2\2\u0267\u0268\7t\2\2\u0268\u0269\7q\2\2"+ - "\u0269\u026a\7y\2\2\u026a\u026b\7u\2\2\u026b^\3\2\2\2\u026c\u026d\7v\2"+ - "\2\u026d\u026e\7t\2\2\u026e\u026f\7c\2\2\u026f\u0270\7p\2\2\u0270\u0271"+ - "\7u\2\2\u0271\u0272\7k\2\2\u0272\u0273\7g\2\2\u0273\u0274\7p\2\2\u0274"+ - "\u0275\7v\2\2\u0275`\3\2\2\2\u0276\u0277\7v\2\2\u0277\u0278\7t\2\2\u0278"+ - "\u0279\7{\2\2\u0279b\3\2\2\2\u027a\u027b\7x\2\2\u027b\u027c\7q\2\2\u027c"+ - "\u027d\7k\2\2\u027d\u027e\7f\2\2\u027ed\3\2\2\2\u027f\u0280\7x\2\2\u0280"+ - "\u0281\7q\2\2\u0281\u0282\7n\2\2\u0282\u0283\7c\2\2\u0283\u0284\7v\2\2"+ - "\u0284\u0285\7k\2\2\u0285\u0286\7n\2\2\u0286\u0287\7g\2\2\u0287f\3\2\2"+ - "\2\u0288\u0289\7y\2\2\u0289\u028a\7j\2\2\u028a\u028b\7k\2\2\u028b\u028c"+ - "\7n\2\2\u028c\u028d\7g\2\2\u028dh\3\2\2\2\u028e\u0293\5k\66\2\u028f\u0293"+ - "\5m\67\2\u0290\u0293\5o8\2\u0291\u0293\5q9\2\u0292\u028e\3\2\2\2\u0292"+ - "\u028f\3\2\2\2\u0292\u0290\3\2\2\2\u0292\u0291\3\2\2\2\u0293j\3\2\2\2"+ - "\u0294\u0296\5u;\2\u0295\u0297\5s:\2\u0296\u0295\3\2\2\2\u0296\u0297\3"+ - "\2\2\2\u0297l\3\2\2\2\u0298\u029a\5\u0083B\2\u0299\u029b\5s:\2\u029a\u0299"+ - "\3\2\2\2\u029a\u029b\3\2\2\2\u029bn\3\2\2\2\u029c\u029e\5\u008dG\2\u029d"+ - "\u029f\5s:\2\u029e\u029d\3\2\2\2\u029e\u029f\3\2\2\2\u029fp\3\2\2\2\u02a0"+ - "\u02a2\5\u0097L\2\u02a1\u02a3\5s:\2\u02a2\u02a1\3\2\2\2\u02a2\u02a3\3"+ - "\2\2\2\u02a3r\3\2\2\2\u02a4\u02a5\t\2\2\2\u02a5t\3\2\2\2\u02a6\u02b1\7"+ - "\62\2\2\u02a7\u02ae\5{>\2\u02a8\u02aa\5w<\2\u02a9\u02a8\3\2\2\2\u02a9"+ - "\u02aa\3\2\2\2\u02aa\u02af\3\2\2\2\u02ab\u02ac\5\u0081A\2\u02ac\u02ad"+ - "\5w<\2\u02ad\u02af\3\2\2\2\u02ae\u02a9\3\2\2\2\u02ae\u02ab\3\2\2\2\u02af"+ - "\u02b1\3\2\2\2\u02b0\u02a6\3\2\2\2\u02b0\u02a7\3\2\2\2\u02b1v\3\2\2\2"+ - "\u02b2\u02b7\5y=\2\u02b3\u02b5\5}?\2\u02b4\u02b3\3\2\2\2\u02b4\u02b5\3"+ - "\2\2\2\u02b5\u02b6\3\2\2\2\u02b6\u02b8\5y=\2\u02b7\u02b4\3\2\2\2\u02b7"+ - "\u02b8\3\2\2\2\u02b8x\3\2\2\2\u02b9\u02bc\7\62\2\2\u02ba\u02bc\5{>\2\u02bb"+ - "\u02b9\3\2\2\2\u02bb\u02ba\3\2\2\2\u02bcz\3\2\2\2\u02bd\u02be\t\3\2\2"+ - "\u02be|\3\2\2\2\u02bf\u02c1\5\177@\2\u02c0\u02bf\3\2\2\2\u02c1\u02c2\3"+ - "\2\2\2\u02c2\u02c0\3\2\2\2\u02c2\u02c3\3\2\2\2\u02c3~\3\2\2\2\u02c4\u02c7"+ - "\5y=\2\u02c5\u02c7\7a\2\2\u02c6\u02c4\3\2\2\2\u02c6\u02c5\3\2\2\2\u02c7"+ - "\u0080\3\2\2\2\u02c8\u02ca\7a\2\2\u02c9\u02c8\3\2\2\2\u02ca\u02cb\3\2"+ - "\2\2\u02cb\u02c9\3\2\2\2\u02cb\u02cc\3\2\2\2\u02cc\u0082\3\2\2\2\u02cd"+ - "\u02ce\7\62\2\2\u02ce\u02cf\t\4\2\2\u02cf\u02d0\5\u0085C\2\u02d0\u0084"+ - "\3\2\2\2\u02d1\u02d6\5\u0087D\2\u02d2\u02d4\5\u0089E\2\u02d3\u02d2\3\2"+ - "\2\2\u02d3\u02d4\3\2\2\2\u02d4\u02d5\3\2\2\2\u02d5\u02d7\5\u0087D\2\u02d6"+ - "\u02d3\3\2\2\2\u02d6\u02d7\3\2\2\2\u02d7\u0086\3\2\2\2\u02d8\u02d9\t\5"+ - "\2\2\u02d9\u0088\3\2\2\2\u02da\u02dc\5\u008bF\2\u02db\u02da\3\2\2\2\u02dc"+ - "\u02dd\3\2\2\2\u02dd\u02db\3\2\2\2\u02dd\u02de\3\2\2\2\u02de\u008a\3\2"+ - "\2\2\u02df\u02e2\5\u0087D\2\u02e0\u02e2\7a\2\2\u02e1\u02df\3\2\2\2\u02e1"+ - "\u02e0\3\2\2\2\u02e2\u008c\3\2\2\2\u02e3\u02e5\7\62\2\2\u02e4\u02e6\5"+ - "\u0081A\2\u02e5\u02e4\3\2\2\2\u02e5\u02e6\3\2\2\2\u02e6\u02e7\3\2\2\2"+ - "\u02e7\u02e8\5\u008fH\2\u02e8\u008e\3\2\2\2\u02e9\u02ee\5\u0091I\2\u02ea"+ - "\u02ec\5\u0093J\2\u02eb\u02ea\3\2\2\2\u02eb\u02ec\3\2\2\2\u02ec\u02ed"+ - "\3\2\2\2\u02ed\u02ef\5\u0091I\2\u02ee\u02eb\3\2\2\2\u02ee\u02ef\3\2\2"+ - "\2\u02ef\u0090\3\2\2\2\u02f0\u02f1\t\6\2\2\u02f1\u0092\3\2\2\2\u02f2\u02f4"+ - "\5\u0095K\2\u02f3\u02f2\3\2\2\2\u02f4\u02f5\3\2\2\2\u02f5\u02f3\3\2\2"+ - "\2\u02f5\u02f6\3\2\2\2\u02f6\u0094\3\2\2\2\u02f7\u02fa\5\u0091I\2\u02f8"+ - "\u02fa\7a\2\2\u02f9\u02f7\3\2\2\2\u02f9\u02f8\3\2\2\2\u02fa\u0096\3\2"+ - "\2\2\u02fb\u02fc\7\62\2\2\u02fc\u02fd\t\7\2\2\u02fd\u02fe\5\u0099M\2\u02fe"+ - "\u0098\3\2\2\2\u02ff\u0304\5\u009bN\2\u0300\u0302\5\u009dO\2\u0301\u0300"+ - "\3\2\2\2\u0301\u0302\3\2\2\2\u0302\u0303\3\2\2\2\u0303\u0305\5\u009bN"+ - "\2\u0304\u0301\3\2\2\2\u0304\u0305\3\2\2\2\u0305\u009a\3\2\2\2\u0306\u0307"+ - "\t\b\2\2\u0307\u009c\3\2\2\2\u0308\u030a\5\u009fP\2\u0309\u0308\3\2\2"+ - "\2\u030a\u030b\3\2\2\2\u030b\u0309\3\2\2\2\u030b\u030c\3\2\2\2\u030c\u009e"+ - "\3\2\2\2\u030d\u0310\5\u009bN\2\u030e\u0310\7a\2\2\u030f\u030d\3\2\2\2"+ - "\u030f\u030e\3\2\2\2\u0310\u00a0\3\2\2\2\u0311\u0314\5\u00a3R\2\u0312"+ - "\u0314\5\u00afX\2\u0313\u0311\3\2\2\2\u0313\u0312\3\2\2\2\u0314\u00a2"+ - "\3\2\2\2\u0315\u0316\5w<\2\u0316\u0318\7\60\2\2\u0317\u0319\5w<\2\u0318"+ - "\u0317\3\2\2\2\u0318\u0319\3\2\2\2\u0319\u031b\3\2\2\2\u031a\u031c\5\u00a5"+ - "S\2\u031b\u031a\3\2\2\2\u031b\u031c\3\2\2\2\u031c\u031e\3\2\2\2\u031d"+ - "\u031f\5\u00adW\2\u031e\u031d\3\2\2\2\u031e\u031f\3\2\2\2\u031f\u0331"+ - "\3\2\2\2\u0320\u0321\7\60\2\2\u0321\u0323\5w<\2\u0322\u0324\5\u00a5S\2"+ - "\u0323\u0322\3\2\2\2\u0323\u0324\3\2\2\2\u0324\u0326\3\2\2\2\u0325\u0327"+ - "\5\u00adW\2\u0326\u0325\3\2\2\2\u0326\u0327\3\2\2\2\u0327\u0331\3\2\2"+ - "\2\u0328\u0329\5w<\2\u0329\u032b\5\u00a5S\2\u032a\u032c\5\u00adW\2\u032b"+ - "\u032a\3\2\2\2\u032b\u032c\3\2\2\2\u032c\u0331\3\2\2\2\u032d\u032e\5w"+ - "<\2\u032e\u032f\5\u00adW\2\u032f\u0331\3\2\2\2\u0330\u0315\3\2\2\2\u0330"+ - "\u0320\3\2\2\2\u0330\u0328\3\2\2\2\u0330\u032d\3\2\2\2\u0331\u00a4\3\2"+ - "\2\2\u0332\u0333\5\u00a7T\2\u0333\u0334\5\u00a9U\2\u0334\u00a6\3\2\2\2"+ - "\u0335\u0336\t\t\2\2\u0336\u00a8\3\2\2\2\u0337\u0339\5\u00abV\2\u0338"+ - "\u0337\3\2\2\2\u0338\u0339\3\2\2\2\u0339\u033a\3\2\2\2\u033a\u033b\5w"+ - "<\2\u033b\u00aa\3\2\2\2\u033c\u033d\t\n\2\2\u033d\u00ac\3\2\2\2\u033e"+ - "\u033f\t\13\2\2\u033f\u00ae\3\2\2\2\u0340\u0341\5\u00b1Y\2\u0341\u0343"+ - "\5\u00b3Z\2\u0342\u0344\5\u00adW\2\u0343\u0342\3\2\2\2\u0343\u0344\3\2"+ - "\2\2\u0344\u00b0\3\2\2\2\u0345\u0347\5\u0083B\2\u0346\u0348\7\60\2\2\u0347"+ - "\u0346\3\2\2\2\u0347\u0348\3\2\2\2\u0348\u0351\3\2\2\2\u0349\u034a\7\62"+ - "\2\2\u034a\u034c\t\4\2\2\u034b\u034d\5\u0085C\2\u034c\u034b\3\2\2\2\u034c"+ - "\u034d\3\2\2\2\u034d\u034e\3\2\2\2\u034e\u034f\7\60\2\2\u034f\u0351\5"+ - "\u0085C\2\u0350\u0345\3\2\2\2\u0350\u0349\3\2\2\2\u0351\u00b2\3\2\2\2"+ - "\u0352\u0353\5\u00b5[\2\u0353\u0354\5\u00a9U\2\u0354\u00b4\3\2\2\2\u0355"+ - "\u0356\t\f\2\2\u0356\u00b6\3\2\2\2\u0357\u0358\7v\2\2\u0358\u0359\7t\2"+ - "\2\u0359\u035a\7w\2\2\u035a\u0361\7g\2\2\u035b\u035c\7h\2\2\u035c\u035d"+ - "\7c\2\2\u035d\u035e\7n\2\2\u035e\u035f\7u\2\2\u035f\u0361\7g\2\2\u0360"+ - "\u0357\3\2\2\2\u0360\u035b\3\2\2\2\u0361\u00b8\3\2\2\2\u0362\u0363\7)"+ - "\2\2\u0363\u0364\5\u00bb^\2\u0364\u0365\7)\2\2\u0365\u036b\3\2\2\2\u0366"+ - "\u0367\7)\2\2\u0367\u0368\5\u00c3b\2\u0368\u0369\7)\2\2\u0369\u036b\3"+ - "\2\2\2\u036a\u0362\3\2\2\2\u036a\u0366\3\2\2\2\u036b\u00ba\3\2\2\2\u036c"+ - "\u036d\n\r\2\2\u036d\u00bc\3\2\2\2\u036e\u0370\7$\2\2\u036f\u0371\5\u00bf"+ - "`\2\u0370\u036f\3\2\2\2\u0370\u0371\3\2\2\2\u0371\u0372\3\2\2\2\u0372"+ - "\u0373\7$\2\2\u0373\u00be\3\2\2\2\u0374\u0376\5\u00c1a\2\u0375\u0374\3"+ - "\2\2\2\u0376\u0377\3\2\2\2\u0377\u0375\3\2\2\2\u0377\u0378\3\2\2\2\u0378"+ - "\u00c0\3\2\2\2\u0379\u037c\n\16\2\2\u037a\u037c\5\u00c3b\2\u037b\u0379"+ - "\3\2\2\2\u037b\u037a\3\2\2\2\u037c\u00c2\3\2\2\2\u037d\u037e\7^\2\2\u037e"+ - "\u0382\t\17\2\2\u037f\u0382\5\u00c5c\2\u0380\u0382\5\u00c9e\2\u0381\u037d"+ - "\3\2\2\2\u0381\u037f\3\2\2\2\u0381\u0380\3\2\2\2\u0382\u00c4\3\2\2\2\u0383"+ - "\u0384\7^\2\2\u0384\u038f\5\u0091I\2\u0385\u0386\7^\2\2\u0386\u0387\5"+ - "\u0091I\2\u0387\u0388\5\u0091I\2\u0388\u038f\3\2\2\2\u0389\u038a\7^\2"+ - "\2\u038a\u038b\5\u00c7d\2\u038b\u038c\5\u0091I\2\u038c\u038d\5\u0091I"+ - "\2\u038d\u038f\3\2\2\2\u038e\u0383\3\2\2\2\u038e\u0385\3\2\2\2\u038e\u0389"+ - "\3\2\2\2\u038f\u00c6\3\2\2\2\u0390\u0391\t\20\2\2\u0391\u00c8\3\2\2\2"+ - "\u0392\u0393\7^\2\2\u0393\u0394\7w\2\2\u0394\u0395\5\u0087D\2\u0395\u0396"+ - "\5\u0087D\2\u0396\u0397\5\u0087D\2\u0397\u0398\5\u0087D\2\u0398\u00ca"+ - "\3\2\2\2\u0399\u039a\7p\2\2\u039a\u039b\7w\2\2\u039b\u039c\7n\2\2\u039c"+ - "\u039d\7n\2\2\u039d\u00cc\3\2\2\2\u039e\u039f\7*\2\2\u039f\u00ce\3\2\2"+ - "\2\u03a0\u03a1\7+\2\2\u03a1\u00d0\3\2\2\2\u03a2\u03a3\7}\2\2\u03a3\u00d2"+ - "\3\2\2\2\u03a4\u03a5\7\177\2\2\u03a5\u00d4\3\2\2\2\u03a6\u03a7\7]\2\2"+ - "\u03a7\u00d6\3\2\2\2\u03a8\u03a9\7_\2\2\u03a9\u00d8\3\2\2\2\u03aa\u03ab"+ - "\7=\2\2\u03ab\u00da\3\2\2\2\u03ac\u03ad\7.\2\2\u03ad\u00dc\3\2\2\2\u03ae"+ - "\u03af\7\60\2\2\u03af\u00de\3\2\2\2\u03b0\u03b1\7?\2\2\u03b1\u00e0\3\2"+ - "\2\2\u03b2\u03b3\7@\2\2\u03b3\u00e2\3\2\2\2\u03b4\u03b5\7>\2\2\u03b5\u00e4"+ - "\3\2\2\2\u03b6\u03b7\7#\2\2\u03b7\u00e6\3\2\2\2\u03b8\u03b9\7\u0080\2"+ - "\2\u03b9\u00e8\3\2\2\2\u03ba\u03bb\7A\2\2\u03bb\u00ea\3\2\2\2\u03bc\u03bd"+ - "\7<\2\2\u03bd\u00ec\3\2\2\2\u03be\u03bf\7?\2\2\u03bf\u03c0\7?\2\2\u03c0"+ - "\u00ee\3\2\2\2\u03c1\u03c2\7>\2\2\u03c2\u03c3\7?\2\2\u03c3\u00f0\3\2\2"+ - "\2\u03c4\u03c5\7@\2\2\u03c5\u03c6\7?\2\2\u03c6\u00f2\3\2\2\2\u03c7\u03c8"+ - "\7#\2\2\u03c8\u03c9\7?\2\2\u03c9\u00f4\3\2\2\2\u03ca\u03cb\7(\2\2\u03cb"+ - "\u03cc\7(\2\2\u03cc\u00f6\3\2\2\2\u03cd\u03ce\7~\2\2\u03ce\u03cf\7~\2"+ - "\2\u03cf\u00f8\3\2\2\2\u03d0\u03d1\7-\2\2\u03d1\u03d2\7-\2\2\u03d2\u00fa"+ - "\3\2\2\2\u03d3\u03d4\7/\2\2\u03d4\u03d5\7/\2\2\u03d5\u00fc\3\2\2\2\u03d6"+ - "\u03d7\7-\2\2\u03d7\u00fe\3\2\2\2\u03d8\u03d9\7/\2\2\u03d9\u0100\3\2\2"+ - "\2\u03da\u03db\7,\2\2\u03db\u0102\3\2\2\2\u03dc\u03dd\7\61\2\2\u03dd\u0104"+ - "\3\2\2\2\u03de\u03df\7(\2\2\u03df\u0106\3\2\2\2\u03e0\u03e1\7~\2\2\u03e1"+ - "\u0108\3\2\2\2\u03e2\u03e3\7`\2\2\u03e3\u010a\3\2\2\2\u03e4\u03e5\7\'"+ - "\2\2\u03e5\u010c\3\2\2\2\u03e6\u03e7\7/\2\2\u03e7\u03e8\7@\2\2\u03e8\u010e"+ - "\3\2\2\2\u03e9\u03ea\7<\2\2\u03ea\u03eb\7<\2\2\u03eb\u0110\3\2\2\2\u03ec"+ - "\u03ed\7-\2\2\u03ed\u03ee\7?\2\2\u03ee\u0112\3\2\2\2\u03ef\u03f0\7/\2"+ - "\2\u03f0\u03f1\7?\2\2\u03f1\u0114\3\2\2\2\u03f2\u03f3\7,\2\2\u03f3\u03f4"+ - "\7?\2\2\u03f4\u0116\3\2\2\2\u03f5\u03f6\7\61\2\2\u03f6\u03f7\7?\2\2\u03f7"+ - "\u0118\3\2\2\2\u03f8\u03f9\7(\2\2\u03f9\u03fa\7?\2\2\u03fa\u011a\3\2\2"+ - "\2\u03fb\u03fc\7~\2\2\u03fc\u03fd\7?\2\2\u03fd\u011c\3\2\2\2\u03fe\u03ff"+ - "\7`\2\2\u03ff\u0400\7?\2\2\u0400\u011e\3\2\2\2\u0401\u0402\7\'\2\2\u0402"+ - "\u0403\7?\2\2\u0403\u0120\3\2\2\2\u0404\u0405\7>\2\2\u0405\u0406\7>\2"+ - "\2\u0406\u0407\7?\2\2\u0407\u0122\3\2\2\2\u0408\u0409\7@\2\2\u0409\u040a"+ - "\7@\2\2\u040a\u040b\7?\2\2\u040b\u0124\3\2\2\2\u040c\u040d\7@\2\2\u040d"+ - "\u040e\7@\2\2\u040e\u040f\7@\2\2\u040f\u0410\7?\2\2\u0410\u0126\3\2\2"+ - "\2\u0411\u0415\5\u0129\u0095\2\u0412\u0414\5\u012b\u0096\2\u0413\u0412"+ - "\3\2\2\2\u0414\u0417\3\2\2\2\u0415\u0413\3\2\2\2\u0415\u0416\3\2\2\2\u0416"+ - "\u0128\3\2\2\2\u0417\u0415\3\2\2\2\u0418\u041f\t\21\2\2\u0419\u041a\n"+ - "\22\2\2\u041a\u041f\6\u0095\2\2\u041b\u041c\t\23\2\2\u041c\u041d\t\24"+ - "\2\2\u041d\u041f\6\u0095\3\2\u041e\u0418\3\2\2\2\u041e\u0419\3\2\2\2\u041e"+ - "\u041b\3\2\2\2\u041f\u012a\3\2\2\2\u0420\u0427\t\25\2\2\u0421\u0422\n"+ - "\22\2\2\u0422\u0427\6\u0096\4\2\u0423\u0424\t\23\2\2\u0424\u0425\t\24"+ - "\2\2\u0425\u0427\6\u0096\5\2\u0426\u0420\3\2\2\2\u0426\u0421\3\2\2\2\u0426"+ - "\u0423\3\2\2\2\u0427\u012c\3\2\2\2\u0428\u0429\7B\2\2\u0429\u012e\3\2"+ - "\2\2\u042a\u042b\7\60\2\2\u042b\u042c\7\60\2\2\u042c\u042d\7\60\2\2\u042d"+ - "\u0130\3\2\2\2\u042e\u0430\t\26\2\2\u042f\u042e\3\2\2\2\u0430\u0431\3"+ - "\2\2\2\u0431\u042f\3\2\2\2\u0431\u0432\3\2\2\2\u0432\u0433\3\2\2\2\u0433"+ - "\u0434\b\u0099\2\2\u0434\u0132\3\2\2\2\u0435\u0436\7\61\2\2\u0436\u0437"+ - "\7,\2\2\u0437\u043b\3\2\2\2\u0438\u043a\13\2\2\2\u0439\u0438\3\2\2\2\u043a"+ - "\u043d\3\2\2\2\u043b\u043c\3\2\2\2\u043b\u0439\3\2\2\2\u043c\u043e\3\2"+ - "\2\2\u043d\u043b\3\2\2\2\u043e\u043f\7,\2\2\u043f\u0440\7\61\2\2\u0440"+ - "\u0441\3\2\2\2\u0441\u0442\b\u009a\2\2\u0442\u0134\3\2\2\2\u0443\u0444"+ - "\7\61\2\2\u0444\u0445\7\61\2\2\u0445\u0449\3\2\2\2\u0446\u0448\n\27\2"+ - "\2\u0447\u0446\3\2\2\2\u0448\u044b\3\2\2\2\u0449\u0447\3\2\2\2\u0449\u044a"+ - "\3\2\2\2\u044a\u044c\3\2\2\2\u044b\u0449\3\2\2\2\u044c\u044d\b\u009b\2"+ - "\2\u044d\u0136\3\2\2\28\2\u0292\u0296\u029a\u029e\u02a2\u02a9\u02ae\u02b0"+ - "\u02b4\u02b7\u02bb\u02c2\u02c6\u02cb\u02d3\u02d6\u02dd\u02e1\u02e5\u02eb"+ - "\u02ee\u02f5\u02f9\u0301\u0304\u030b\u030f\u0313\u0318\u031b\u031e\u0323"+ - "\u0326\u032b\u0330\u0338\u0343\u0347\u034c\u0350\u0360\u036a\u0370\u0377"+ - "\u037b\u0381\u038e\u0415\u041e\u0426\u0431\u043b\u0449\3\b\2\2"; - public static final ATN _ATN = - new ATNDeserializer().deserialize(_serializedATN.toCharArray()); - static { - _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; - for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { - _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); - } - } -} \ No newline at end of file diff --git a/src/main/java/de/dhbwstuttgart/parser/antlr/Java8Lexer.tokens b/src/main/java/de/dhbwstuttgart/parser/antlr/Java8Lexer.tokens deleted file mode 100644 index da68d0140..000000000 --- a/src/main/java/de/dhbwstuttgart/parser/antlr/Java8Lexer.tokens +++ /dev/null @@ -1,207 +0,0 @@ -T__0=1 -ABSTRACT=2 -ASSERT=3 -BOOLEAN=4 -BREAK=5 -BYTE=6 -CASE=7 -CATCH=8 -CHAR=9 -CLASS=10 -CONST=11 -CONTINUE=12 -DEFAULT=13 -DO=14 -DOUBLE=15 -ELSE=16 -ENUM=17 -EXTENDS=18 -FINAL=19 -FINALLY=20 -FLOAT=21 -FOR=22 -IF=23 -GOTO=24 -IMPLEMENTS=25 -IMPORT=26 -INSTANCEOF=27 -INT=28 -INTERFACE=29 -LONG=30 -NATIVE=31 -NEW=32 -PACKAGE=33 -PRIVATE=34 -PROTECTED=35 -PUBLIC=36 -RETURN=37 -SHORT=38 -STATIC=39 -STRICTFP=40 -SUPER=41 -SWITCH=42 -SYNCHRONIZED=43 -THIS=44 -THROW=45 -THROWS=46 -TRANSIENT=47 -TRY=48 -VOID=49 -VOLATILE=50 -WHILE=51 -IntegerLiteral=52 -FloatingPointLiteral=53 -BooleanLiteral=54 -CharacterLiteral=55 -StringLiteral=56 -NullLiteral=57 -LPAREN=58 -RPAREN=59 -LBRACE=60 -RBRACE=61 -LBRACK=62 -RBRACK=63 -SEMI=64 -COMMA=65 -DOT=66 -ASSIGN=67 -GT=68 -LT=69 -BANG=70 -TILDE=71 -QUESTION=72 -COLON=73 -EQUAL=74 -LE=75 -GE=76 -NOTEQUAL=77 -AND=78 -OR=79 -INC=80 -DEC=81 -ADD=82 -SUB=83 -MUL=84 -DIV=85 -BITAND=86 -BITOR=87 -CARET=88 -MOD=89 -ARROW=90 -COLONCOLON=91 -ADD_ASSIGN=92 -SUB_ASSIGN=93 -MUL_ASSIGN=94 -DIV_ASSIGN=95 -AND_ASSIGN=96 -OR_ASSIGN=97 -XOR_ASSIGN=98 -MOD_ASSIGN=99 -LSHIFT_ASSIGN=100 -RSHIFT_ASSIGN=101 -URSHIFT_ASSIGN=102 -Identifier=103 -AT=104 -ELLIPSIS=105 -WS=106 -COMMENT=107 -LINE_COMMENT=108 -'var'=1 -'abstract'=2 -'assert'=3 -'boolean'=4 -'break'=5 -'byte'=6 -'case'=7 -'catch'=8 -'char'=9 -'class'=10 -'const'=11 -'continue'=12 -'default'=13 -'do'=14 -'double'=15 -'else'=16 -'enum'=17 -'extends'=18 -'final'=19 -'finally'=20 -'float'=21 -'for'=22 -'if'=23 -'goto'=24 -'implements'=25 -'import'=26 -'instanceof'=27 -'int'=28 -'interface'=29 -'long'=30 -'native'=31 -'new'=32 -'package'=33 -'private'=34 -'protected'=35 -'public'=36 -'return'=37 -'short'=38 -'static'=39 -'strictfp'=40 -'super'=41 -'switch'=42 -'synchronized'=43 -'this'=44 -'throw'=45 -'throws'=46 -'transient'=47 -'try'=48 -'void'=49 -'volatile'=50 -'while'=51 -'null'=57 -'('=58 -')'=59 -'{'=60 -'}'=61 -'['=62 -']'=63 -';'=64 -','=65 -'.'=66 -'='=67 -'>'=68 -'<'=69 -'!'=70 -'~'=71 -'?'=72 -':'=73 -'=='=74 -'<='=75 -'>='=76 -'!='=77 -'&&'=78 -'||'=79 -'++'=80 -'--'=81 -'+'=82 -'-'=83 -'*'=84 -'/'=85 -'&'=86 -'|'=87 -'^'=88 -'%'=89 -'->'=90 -'::'=91 -'+='=92 -'-='=93 -'*='=94 -'/='=95 -'&='=96 -'|='=97 -'^='=98 -'%='=99 -'<<='=100 -'>>='=101 -'>>>='=102 -'@'=104 -'...'=105 diff --git a/src/main/java/de/dhbwstuttgart/parser/antlr/Java8Listener.java b/src/main/java/de/dhbwstuttgart/parser/antlr/Java8Listener.java deleted file mode 100644 index a875c96f1..000000000 --- a/src/main/java/de/dhbwstuttgart/parser/antlr/Java8Listener.java +++ /dev/null @@ -1,2390 +0,0 @@ -// Generated from Java8.g4 by ANTLR 4.7 -package de.dhbwstuttgart.parser.antlr; -import org.antlr.v4.runtime.tree.ParseTreeListener; - -/** - * This interface defines a complete listener for a parse tree produced by - * {@link Java8Parser}. - */ -public interface Java8Listener extends ParseTreeListener { - /** - * Enter a parse tree produced by {@link Java8Parser#literal}. - * @param ctx the parse tree - */ - void enterLiteral(Java8Parser.LiteralContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#literal}. - * @param ctx the parse tree - */ - void exitLiteral(Java8Parser.LiteralContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#type}. - * @param ctx the parse tree - */ - void enterType(Java8Parser.TypeContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#type}. - * @param ctx the parse tree - */ - void exitType(Java8Parser.TypeContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#primitiveType}. - * @param ctx the parse tree - */ - void enterPrimitiveType(Java8Parser.PrimitiveTypeContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#primitiveType}. - * @param ctx the parse tree - */ - void exitPrimitiveType(Java8Parser.PrimitiveTypeContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#numericType}. - * @param ctx the parse tree - */ - void enterNumericType(Java8Parser.NumericTypeContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#numericType}. - * @param ctx the parse tree - */ - void exitNumericType(Java8Parser.NumericTypeContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#integralType}. - * @param ctx the parse tree - */ - void enterIntegralType(Java8Parser.IntegralTypeContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#integralType}. - * @param ctx the parse tree - */ - void exitIntegralType(Java8Parser.IntegralTypeContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#floatingPointType}. - * @param ctx the parse tree - */ - void enterFloatingPointType(Java8Parser.FloatingPointTypeContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#floatingPointType}. - * @param ctx the parse tree - */ - void exitFloatingPointType(Java8Parser.FloatingPointTypeContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#referenceType}. - * @param ctx the parse tree - */ - void enterReferenceType(Java8Parser.ReferenceTypeContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#referenceType}. - * @param ctx the parse tree - */ - void exitReferenceType(Java8Parser.ReferenceTypeContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#classOrInterfaceType}. - * @param ctx the parse tree - */ - void enterClassOrInterfaceType(Java8Parser.ClassOrInterfaceTypeContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#classOrInterfaceType}. - * @param ctx the parse tree - */ - void exitClassOrInterfaceType(Java8Parser.ClassOrInterfaceTypeContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#classType}. - * @param ctx the parse tree - */ - void enterClassType(Java8Parser.ClassTypeContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#classType}. - * @param ctx the parse tree - */ - void exitClassType(Java8Parser.ClassTypeContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#classType_lf_classOrInterfaceType}. - * @param ctx the parse tree - */ - void enterClassType_lf_classOrInterfaceType(Java8Parser.ClassType_lf_classOrInterfaceTypeContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#classType_lf_classOrInterfaceType}. - * @param ctx the parse tree - */ - void exitClassType_lf_classOrInterfaceType(Java8Parser.ClassType_lf_classOrInterfaceTypeContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#classType_lfno_classOrInterfaceType}. - * @param ctx the parse tree - */ - void enterClassType_lfno_classOrInterfaceType(Java8Parser.ClassType_lfno_classOrInterfaceTypeContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#classType_lfno_classOrInterfaceType}. - * @param ctx the parse tree - */ - void exitClassType_lfno_classOrInterfaceType(Java8Parser.ClassType_lfno_classOrInterfaceTypeContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#interfaceType}. - * @param ctx the parse tree - */ - void enterInterfaceType(Java8Parser.InterfaceTypeContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#interfaceType}. - * @param ctx the parse tree - */ - void exitInterfaceType(Java8Parser.InterfaceTypeContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#interfaceType_lf_classOrInterfaceType}. - * @param ctx the parse tree - */ - void enterInterfaceType_lf_classOrInterfaceType(Java8Parser.InterfaceType_lf_classOrInterfaceTypeContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#interfaceType_lf_classOrInterfaceType}. - * @param ctx the parse tree - */ - void exitInterfaceType_lf_classOrInterfaceType(Java8Parser.InterfaceType_lf_classOrInterfaceTypeContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#interfaceType_lfno_classOrInterfaceType}. - * @param ctx the parse tree - */ - void enterInterfaceType_lfno_classOrInterfaceType(Java8Parser.InterfaceType_lfno_classOrInterfaceTypeContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#interfaceType_lfno_classOrInterfaceType}. - * @param ctx the parse tree - */ - void exitInterfaceType_lfno_classOrInterfaceType(Java8Parser.InterfaceType_lfno_classOrInterfaceTypeContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#typeVariable}. - * @param ctx the parse tree - */ - void enterTypeVariable(Java8Parser.TypeVariableContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#typeVariable}. - * @param ctx the parse tree - */ - void exitTypeVariable(Java8Parser.TypeVariableContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#arrayType}. - * @param ctx the parse tree - */ - void enterArrayType(Java8Parser.ArrayTypeContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#arrayType}. - * @param ctx the parse tree - */ - void exitArrayType(Java8Parser.ArrayTypeContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#dims}. - * @param ctx the parse tree - */ - void enterDims(Java8Parser.DimsContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#dims}. - * @param ctx the parse tree - */ - void exitDims(Java8Parser.DimsContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#typeParameter}. - * @param ctx the parse tree - */ - void enterTypeParameter(Java8Parser.TypeParameterContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#typeParameter}. - * @param ctx the parse tree - */ - void exitTypeParameter(Java8Parser.TypeParameterContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#typeParameterModifier}. - * @param ctx the parse tree - */ - void enterTypeParameterModifier(Java8Parser.TypeParameterModifierContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#typeParameterModifier}. - * @param ctx the parse tree - */ - void exitTypeParameterModifier(Java8Parser.TypeParameterModifierContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#typeBound}. - * @param ctx the parse tree - */ - void enterTypeBound(Java8Parser.TypeBoundContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#typeBound}. - * @param ctx the parse tree - */ - void exitTypeBound(Java8Parser.TypeBoundContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#additionalBound}. - * @param ctx the parse tree - */ - void enterAdditionalBound(Java8Parser.AdditionalBoundContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#additionalBound}. - * @param ctx the parse tree - */ - void exitAdditionalBound(Java8Parser.AdditionalBoundContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#typeArguments}. - * @param ctx the parse tree - */ - void enterTypeArguments(Java8Parser.TypeArgumentsContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#typeArguments}. - * @param ctx the parse tree - */ - void exitTypeArguments(Java8Parser.TypeArgumentsContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#typeArgumentList}. - * @param ctx the parse tree - */ - void enterTypeArgumentList(Java8Parser.TypeArgumentListContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#typeArgumentList}. - * @param ctx the parse tree - */ - void exitTypeArgumentList(Java8Parser.TypeArgumentListContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#typeArgument}. - * @param ctx the parse tree - */ - void enterTypeArgument(Java8Parser.TypeArgumentContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#typeArgument}. - * @param ctx the parse tree - */ - void exitTypeArgument(Java8Parser.TypeArgumentContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#wildcard}. - * @param ctx the parse tree - */ - void enterWildcard(Java8Parser.WildcardContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#wildcard}. - * @param ctx the parse tree - */ - void exitWildcard(Java8Parser.WildcardContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#wildcardBounds}. - * @param ctx the parse tree - */ - void enterWildcardBounds(Java8Parser.WildcardBoundsContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#wildcardBounds}. - * @param ctx the parse tree - */ - void exitWildcardBounds(Java8Parser.WildcardBoundsContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#packageName}. - * @param ctx the parse tree - */ - void enterPackageName(Java8Parser.PackageNameContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#packageName}. - * @param ctx the parse tree - */ - void exitPackageName(Java8Parser.PackageNameContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#typeName}. - * @param ctx the parse tree - */ - void enterTypeName(Java8Parser.TypeNameContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#typeName}. - * @param ctx the parse tree - */ - void exitTypeName(Java8Parser.TypeNameContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#packageOrTypeName}. - * @param ctx the parse tree - */ - void enterPackageOrTypeName(Java8Parser.PackageOrTypeNameContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#packageOrTypeName}. - * @param ctx the parse tree - */ - void exitPackageOrTypeName(Java8Parser.PackageOrTypeNameContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#expressionName}. - * @param ctx the parse tree - */ - void enterExpressionName(Java8Parser.ExpressionNameContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#expressionName}. - * @param ctx the parse tree - */ - void exitExpressionName(Java8Parser.ExpressionNameContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#methodName}. - * @param ctx the parse tree - */ - void enterMethodName(Java8Parser.MethodNameContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#methodName}. - * @param ctx the parse tree - */ - void exitMethodName(Java8Parser.MethodNameContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#ambiguousName}. - * @param ctx the parse tree - */ - void enterAmbiguousName(Java8Parser.AmbiguousNameContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#ambiguousName}. - * @param ctx the parse tree - */ - void exitAmbiguousName(Java8Parser.AmbiguousNameContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#compilationUnit}. - * @param ctx the parse tree - */ - void enterCompilationUnit(Java8Parser.CompilationUnitContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#compilationUnit}. - * @param ctx the parse tree - */ - void exitCompilationUnit(Java8Parser.CompilationUnitContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#packageDeclaration}. - * @param ctx the parse tree - */ - void enterPackageDeclaration(Java8Parser.PackageDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#packageDeclaration}. - * @param ctx the parse tree - */ - void exitPackageDeclaration(Java8Parser.PackageDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#packageModifier}. - * @param ctx the parse tree - */ - void enterPackageModifier(Java8Parser.PackageModifierContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#packageModifier}. - * @param ctx the parse tree - */ - void exitPackageModifier(Java8Parser.PackageModifierContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#importDeclaration}. - * @param ctx the parse tree - */ - void enterImportDeclaration(Java8Parser.ImportDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#importDeclaration}. - * @param ctx the parse tree - */ - void exitImportDeclaration(Java8Parser.ImportDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#singleTypeImportDeclaration}. - * @param ctx the parse tree - */ - void enterSingleTypeImportDeclaration(Java8Parser.SingleTypeImportDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#singleTypeImportDeclaration}. - * @param ctx the parse tree - */ - void exitSingleTypeImportDeclaration(Java8Parser.SingleTypeImportDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#typeImportOnDemandDeclaration}. - * @param ctx the parse tree - */ - void enterTypeImportOnDemandDeclaration(Java8Parser.TypeImportOnDemandDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#typeImportOnDemandDeclaration}. - * @param ctx the parse tree - */ - void exitTypeImportOnDemandDeclaration(Java8Parser.TypeImportOnDemandDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#singleStaticImportDeclaration}. - * @param ctx the parse tree - */ - void enterSingleStaticImportDeclaration(Java8Parser.SingleStaticImportDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#singleStaticImportDeclaration}. - * @param ctx the parse tree - */ - void exitSingleStaticImportDeclaration(Java8Parser.SingleStaticImportDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#staticImportOnDemandDeclaration}. - * @param ctx the parse tree - */ - void enterStaticImportOnDemandDeclaration(Java8Parser.StaticImportOnDemandDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#staticImportOnDemandDeclaration}. - * @param ctx the parse tree - */ - void exitStaticImportOnDemandDeclaration(Java8Parser.StaticImportOnDemandDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#typeDeclaration}. - * @param ctx the parse tree - */ - void enterTypeDeclaration(Java8Parser.TypeDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#typeDeclaration}. - * @param ctx the parse tree - */ - void exitTypeDeclaration(Java8Parser.TypeDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#classDeclaration}. - * @param ctx the parse tree - */ - void enterClassDeclaration(Java8Parser.ClassDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#classDeclaration}. - * @param ctx the parse tree - */ - void exitClassDeclaration(Java8Parser.ClassDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#normalClassDeclaration}. - * @param ctx the parse tree - */ - void enterNormalClassDeclaration(Java8Parser.NormalClassDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#normalClassDeclaration}. - * @param ctx the parse tree - */ - void exitNormalClassDeclaration(Java8Parser.NormalClassDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#classModifier}. - * @param ctx the parse tree - */ - void enterClassModifier(Java8Parser.ClassModifierContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#classModifier}. - * @param ctx the parse tree - */ - void exitClassModifier(Java8Parser.ClassModifierContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#typeParameters}. - * @param ctx the parse tree - */ - void enterTypeParameters(Java8Parser.TypeParametersContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#typeParameters}. - * @param ctx the parse tree - */ - void exitTypeParameters(Java8Parser.TypeParametersContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#typeParameterList}. - * @param ctx the parse tree - */ - void enterTypeParameterList(Java8Parser.TypeParameterListContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#typeParameterList}. - * @param ctx the parse tree - */ - void exitTypeParameterList(Java8Parser.TypeParameterListContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#superclass}. - * @param ctx the parse tree - */ - void enterSuperclass(Java8Parser.SuperclassContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#superclass}. - * @param ctx the parse tree - */ - void exitSuperclass(Java8Parser.SuperclassContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#superinterfaces}. - * @param ctx the parse tree - */ - void enterSuperinterfaces(Java8Parser.SuperinterfacesContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#superinterfaces}. - * @param ctx the parse tree - */ - void exitSuperinterfaces(Java8Parser.SuperinterfacesContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#interfaceTypeList}. - * @param ctx the parse tree - */ - void enterInterfaceTypeList(Java8Parser.InterfaceTypeListContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#interfaceTypeList}. - * @param ctx the parse tree - */ - void exitInterfaceTypeList(Java8Parser.InterfaceTypeListContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#classBody}. - * @param ctx the parse tree - */ - void enterClassBody(Java8Parser.ClassBodyContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#classBody}. - * @param ctx the parse tree - */ - void exitClassBody(Java8Parser.ClassBodyContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#classBodyDeclaration}. - * @param ctx the parse tree - */ - void enterClassBodyDeclaration(Java8Parser.ClassBodyDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#classBodyDeclaration}. - * @param ctx the parse tree - */ - void exitClassBodyDeclaration(Java8Parser.ClassBodyDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#classMemberDeclaration}. - * @param ctx the parse tree - */ - void enterClassMemberDeclaration(Java8Parser.ClassMemberDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#classMemberDeclaration}. - * @param ctx the parse tree - */ - void exitClassMemberDeclaration(Java8Parser.ClassMemberDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#fieldDeclaration}. - * @param ctx the parse tree - */ - void enterFieldDeclaration(Java8Parser.FieldDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#fieldDeclaration}. - * @param ctx the parse tree - */ - void exitFieldDeclaration(Java8Parser.FieldDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#fieldModifier}. - * @param ctx the parse tree - */ - void enterFieldModifier(Java8Parser.FieldModifierContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#fieldModifier}. - * @param ctx the parse tree - */ - void exitFieldModifier(Java8Parser.FieldModifierContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#variableDeclaratorList}. - * @param ctx the parse tree - */ - void enterVariableDeclaratorList(Java8Parser.VariableDeclaratorListContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#variableDeclaratorList}. - * @param ctx the parse tree - */ - void exitVariableDeclaratorList(Java8Parser.VariableDeclaratorListContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#variableDeclarator}. - * @param ctx the parse tree - */ - void enterVariableDeclarator(Java8Parser.VariableDeclaratorContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#variableDeclarator}. - * @param ctx the parse tree - */ - void exitVariableDeclarator(Java8Parser.VariableDeclaratorContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#variableDeclaratorId}. - * @param ctx the parse tree - */ - void enterVariableDeclaratorId(Java8Parser.VariableDeclaratorIdContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#variableDeclaratorId}. - * @param ctx the parse tree - */ - void exitVariableDeclaratorId(Java8Parser.VariableDeclaratorIdContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#variableInitializer}. - * @param ctx the parse tree - */ - void enterVariableInitializer(Java8Parser.VariableInitializerContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#variableInitializer}. - * @param ctx the parse tree - */ - void exitVariableInitializer(Java8Parser.VariableInitializerContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#unannType}. - * @param ctx the parse tree - */ - void enterUnannType(Java8Parser.UnannTypeContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#unannType}. - * @param ctx the parse tree - */ - void exitUnannType(Java8Parser.UnannTypeContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#unannPrimitiveType}. - * @param ctx the parse tree - */ - void enterUnannPrimitiveType(Java8Parser.UnannPrimitiveTypeContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#unannPrimitiveType}. - * @param ctx the parse tree - */ - void exitUnannPrimitiveType(Java8Parser.UnannPrimitiveTypeContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#unannReferenceType}. - * @param ctx the parse tree - */ - void enterUnannReferenceType(Java8Parser.UnannReferenceTypeContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#unannReferenceType}. - * @param ctx the parse tree - */ - void exitUnannReferenceType(Java8Parser.UnannReferenceTypeContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#unannClassOrInterfaceType}. - * @param ctx the parse tree - */ - void enterUnannClassOrInterfaceType(Java8Parser.UnannClassOrInterfaceTypeContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#unannClassOrInterfaceType}. - * @param ctx the parse tree - */ - void exitUnannClassOrInterfaceType(Java8Parser.UnannClassOrInterfaceTypeContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#unannClassType}. - * @param ctx the parse tree - */ - void enterUnannClassType(Java8Parser.UnannClassTypeContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#unannClassType}. - * @param ctx the parse tree - */ - void exitUnannClassType(Java8Parser.UnannClassTypeContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#unannClassType_lf_unannClassOrInterfaceType}. - * @param ctx the parse tree - */ - void enterUnannClassType_lf_unannClassOrInterfaceType(Java8Parser.UnannClassType_lf_unannClassOrInterfaceTypeContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#unannClassType_lf_unannClassOrInterfaceType}. - * @param ctx the parse tree - */ - void exitUnannClassType_lf_unannClassOrInterfaceType(Java8Parser.UnannClassType_lf_unannClassOrInterfaceTypeContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#unannClassType_lfno_unannClassOrInterfaceType}. - * @param ctx the parse tree - */ - void enterUnannClassType_lfno_unannClassOrInterfaceType(Java8Parser.UnannClassType_lfno_unannClassOrInterfaceTypeContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#unannClassType_lfno_unannClassOrInterfaceType}. - * @param ctx the parse tree - */ - void exitUnannClassType_lfno_unannClassOrInterfaceType(Java8Parser.UnannClassType_lfno_unannClassOrInterfaceTypeContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#unannInterfaceType}. - * @param ctx the parse tree - */ - void enterUnannInterfaceType(Java8Parser.UnannInterfaceTypeContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#unannInterfaceType}. - * @param ctx the parse tree - */ - void exitUnannInterfaceType(Java8Parser.UnannInterfaceTypeContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#unannInterfaceType_lf_unannClassOrInterfaceType}. - * @param ctx the parse tree - */ - void enterUnannInterfaceType_lf_unannClassOrInterfaceType(Java8Parser.UnannInterfaceType_lf_unannClassOrInterfaceTypeContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#unannInterfaceType_lf_unannClassOrInterfaceType}. - * @param ctx the parse tree - */ - void exitUnannInterfaceType_lf_unannClassOrInterfaceType(Java8Parser.UnannInterfaceType_lf_unannClassOrInterfaceTypeContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#unannInterfaceType_lfno_unannClassOrInterfaceType}. - * @param ctx the parse tree - */ - void enterUnannInterfaceType_lfno_unannClassOrInterfaceType(Java8Parser.UnannInterfaceType_lfno_unannClassOrInterfaceTypeContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#unannInterfaceType_lfno_unannClassOrInterfaceType}. - * @param ctx the parse tree - */ - void exitUnannInterfaceType_lfno_unannClassOrInterfaceType(Java8Parser.UnannInterfaceType_lfno_unannClassOrInterfaceTypeContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#unannTypeVariable}. - * @param ctx the parse tree - */ - void enterUnannTypeVariable(Java8Parser.UnannTypeVariableContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#unannTypeVariable}. - * @param ctx the parse tree - */ - void exitUnannTypeVariable(Java8Parser.UnannTypeVariableContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#unannArrayType}. - * @param ctx the parse tree - */ - void enterUnannArrayType(Java8Parser.UnannArrayTypeContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#unannArrayType}. - * @param ctx the parse tree - */ - void exitUnannArrayType(Java8Parser.UnannArrayTypeContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#methodDeclaration}. - * @param ctx the parse tree - */ - void enterMethodDeclaration(Java8Parser.MethodDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#methodDeclaration}. - * @param ctx the parse tree - */ - void exitMethodDeclaration(Java8Parser.MethodDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#methodModifier}. - * @param ctx the parse tree - */ - void enterMethodModifier(Java8Parser.MethodModifierContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#methodModifier}. - * @param ctx the parse tree - */ - void exitMethodModifier(Java8Parser.MethodModifierContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#methodHeader}. - * @param ctx the parse tree - */ - void enterMethodHeader(Java8Parser.MethodHeaderContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#methodHeader}. - * @param ctx the parse tree - */ - void exitMethodHeader(Java8Parser.MethodHeaderContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#result}. - * @param ctx the parse tree - */ - void enterResult(Java8Parser.ResultContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#result}. - * @param ctx the parse tree - */ - void exitResult(Java8Parser.ResultContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#methodDeclarator}. - * @param ctx the parse tree - */ - void enterMethodDeclarator(Java8Parser.MethodDeclaratorContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#methodDeclarator}. - * @param ctx the parse tree - */ - void exitMethodDeclarator(Java8Parser.MethodDeclaratorContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#formalParameterList}. - * @param ctx the parse tree - */ - void enterFormalParameterList(Java8Parser.FormalParameterListContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#formalParameterList}. - * @param ctx the parse tree - */ - void exitFormalParameterList(Java8Parser.FormalParameterListContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#formalParameters}. - * @param ctx the parse tree - */ - void enterFormalParameters(Java8Parser.FormalParametersContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#formalParameters}. - * @param ctx the parse tree - */ - void exitFormalParameters(Java8Parser.FormalParametersContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#formalParameter}. - * @param ctx the parse tree - */ - void enterFormalParameter(Java8Parser.FormalParameterContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#formalParameter}. - * @param ctx the parse tree - */ - void exitFormalParameter(Java8Parser.FormalParameterContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#variableModifier}. - * @param ctx the parse tree - */ - void enterVariableModifier(Java8Parser.VariableModifierContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#variableModifier}. - * @param ctx the parse tree - */ - void exitVariableModifier(Java8Parser.VariableModifierContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#lastFormalParameter}. - * @param ctx the parse tree - */ - void enterLastFormalParameter(Java8Parser.LastFormalParameterContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#lastFormalParameter}. - * @param ctx the parse tree - */ - void exitLastFormalParameter(Java8Parser.LastFormalParameterContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#receiverParameter}. - * @param ctx the parse tree - */ - void enterReceiverParameter(Java8Parser.ReceiverParameterContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#receiverParameter}. - * @param ctx the parse tree - */ - void exitReceiverParameter(Java8Parser.ReceiverParameterContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#throws_}. - * @param ctx the parse tree - */ - void enterThrows_(Java8Parser.Throws_Context ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#throws_}. - * @param ctx the parse tree - */ - void exitThrows_(Java8Parser.Throws_Context ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#exceptionTypeList}. - * @param ctx the parse tree - */ - void enterExceptionTypeList(Java8Parser.ExceptionTypeListContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#exceptionTypeList}. - * @param ctx the parse tree - */ - void exitExceptionTypeList(Java8Parser.ExceptionTypeListContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#exceptionType}. - * @param ctx the parse tree - */ - void enterExceptionType(Java8Parser.ExceptionTypeContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#exceptionType}. - * @param ctx the parse tree - */ - void exitExceptionType(Java8Parser.ExceptionTypeContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#methodBody}. - * @param ctx the parse tree - */ - void enterMethodBody(Java8Parser.MethodBodyContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#methodBody}. - * @param ctx the parse tree - */ - void exitMethodBody(Java8Parser.MethodBodyContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#instanceInitializer}. - * @param ctx the parse tree - */ - void enterInstanceInitializer(Java8Parser.InstanceInitializerContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#instanceInitializer}. - * @param ctx the parse tree - */ - void exitInstanceInitializer(Java8Parser.InstanceInitializerContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#staticInitializer}. - * @param ctx the parse tree - */ - void enterStaticInitializer(Java8Parser.StaticInitializerContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#staticInitializer}. - * @param ctx the parse tree - */ - void exitStaticInitializer(Java8Parser.StaticInitializerContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#constructorDeclaration}. - * @param ctx the parse tree - */ - void enterConstructorDeclaration(Java8Parser.ConstructorDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#constructorDeclaration}. - * @param ctx the parse tree - */ - void exitConstructorDeclaration(Java8Parser.ConstructorDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#constructorModifier}. - * @param ctx the parse tree - */ - void enterConstructorModifier(Java8Parser.ConstructorModifierContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#constructorModifier}. - * @param ctx the parse tree - */ - void exitConstructorModifier(Java8Parser.ConstructorModifierContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#constructorDeclarator}. - * @param ctx the parse tree - */ - void enterConstructorDeclarator(Java8Parser.ConstructorDeclaratorContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#constructorDeclarator}. - * @param ctx the parse tree - */ - void exitConstructorDeclarator(Java8Parser.ConstructorDeclaratorContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#simpleTypeName}. - * @param ctx the parse tree - */ - void enterSimpleTypeName(Java8Parser.SimpleTypeNameContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#simpleTypeName}. - * @param ctx the parse tree - */ - void exitSimpleTypeName(Java8Parser.SimpleTypeNameContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#constructorBody}. - * @param ctx the parse tree - */ - void enterConstructorBody(Java8Parser.ConstructorBodyContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#constructorBody}. - * @param ctx the parse tree - */ - void exitConstructorBody(Java8Parser.ConstructorBodyContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#explicitConstructorInvocation}. - * @param ctx the parse tree - */ - void enterExplicitConstructorInvocation(Java8Parser.ExplicitConstructorInvocationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#explicitConstructorInvocation}. - * @param ctx the parse tree - */ - void exitExplicitConstructorInvocation(Java8Parser.ExplicitConstructorInvocationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#enumDeclaration}. - * @param ctx the parse tree - */ - void enterEnumDeclaration(Java8Parser.EnumDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#enumDeclaration}. - * @param ctx the parse tree - */ - void exitEnumDeclaration(Java8Parser.EnumDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#enumBody}. - * @param ctx the parse tree - */ - void enterEnumBody(Java8Parser.EnumBodyContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#enumBody}. - * @param ctx the parse tree - */ - void exitEnumBody(Java8Parser.EnumBodyContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#enumConstantList}. - * @param ctx the parse tree - */ - void enterEnumConstantList(Java8Parser.EnumConstantListContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#enumConstantList}. - * @param ctx the parse tree - */ - void exitEnumConstantList(Java8Parser.EnumConstantListContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#enumConstant}. - * @param ctx the parse tree - */ - void enterEnumConstant(Java8Parser.EnumConstantContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#enumConstant}. - * @param ctx the parse tree - */ - void exitEnumConstant(Java8Parser.EnumConstantContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#enumConstantModifier}. - * @param ctx the parse tree - */ - void enterEnumConstantModifier(Java8Parser.EnumConstantModifierContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#enumConstantModifier}. - * @param ctx the parse tree - */ - void exitEnumConstantModifier(Java8Parser.EnumConstantModifierContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#enumBodyDeclarations}. - * @param ctx the parse tree - */ - void enterEnumBodyDeclarations(Java8Parser.EnumBodyDeclarationsContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#enumBodyDeclarations}. - * @param ctx the parse tree - */ - void exitEnumBodyDeclarations(Java8Parser.EnumBodyDeclarationsContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#interfaceDeclaration}. - * @param ctx the parse tree - */ - void enterInterfaceDeclaration(Java8Parser.InterfaceDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#interfaceDeclaration}. - * @param ctx the parse tree - */ - void exitInterfaceDeclaration(Java8Parser.InterfaceDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#normalInterfaceDeclaration}. - * @param ctx the parse tree - */ - void enterNormalInterfaceDeclaration(Java8Parser.NormalInterfaceDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#normalInterfaceDeclaration}. - * @param ctx the parse tree - */ - void exitNormalInterfaceDeclaration(Java8Parser.NormalInterfaceDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#interfaceModifier}. - * @param ctx the parse tree - */ - void enterInterfaceModifier(Java8Parser.InterfaceModifierContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#interfaceModifier}. - * @param ctx the parse tree - */ - void exitInterfaceModifier(Java8Parser.InterfaceModifierContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#extendsInterfaces}. - * @param ctx the parse tree - */ - void enterExtendsInterfaces(Java8Parser.ExtendsInterfacesContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#extendsInterfaces}. - * @param ctx the parse tree - */ - void exitExtendsInterfaces(Java8Parser.ExtendsInterfacesContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#interfaceBody}. - * @param ctx the parse tree - */ - void enterInterfaceBody(Java8Parser.InterfaceBodyContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#interfaceBody}. - * @param ctx the parse tree - */ - void exitInterfaceBody(Java8Parser.InterfaceBodyContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#interfaceMemberDeclaration}. - * @param ctx the parse tree - */ - void enterInterfaceMemberDeclaration(Java8Parser.InterfaceMemberDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#interfaceMemberDeclaration}. - * @param ctx the parse tree - */ - void exitInterfaceMemberDeclaration(Java8Parser.InterfaceMemberDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#constantDeclaration}. - * @param ctx the parse tree - */ - void enterConstantDeclaration(Java8Parser.ConstantDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#constantDeclaration}. - * @param ctx the parse tree - */ - void exitConstantDeclaration(Java8Parser.ConstantDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#constantModifier}. - * @param ctx the parse tree - */ - void enterConstantModifier(Java8Parser.ConstantModifierContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#constantModifier}. - * @param ctx the parse tree - */ - void exitConstantModifier(Java8Parser.ConstantModifierContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#interfaceMethodDeclaration}. - * @param ctx the parse tree - */ - void enterInterfaceMethodDeclaration(Java8Parser.InterfaceMethodDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#interfaceMethodDeclaration}. - * @param ctx the parse tree - */ - void exitInterfaceMethodDeclaration(Java8Parser.InterfaceMethodDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#interfaceMethodModifier}. - * @param ctx the parse tree - */ - void enterInterfaceMethodModifier(Java8Parser.InterfaceMethodModifierContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#interfaceMethodModifier}. - * @param ctx the parse tree - */ - void exitInterfaceMethodModifier(Java8Parser.InterfaceMethodModifierContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#annotationTypeDeclaration}. - * @param ctx the parse tree - */ - void enterAnnotationTypeDeclaration(Java8Parser.AnnotationTypeDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#annotationTypeDeclaration}. - * @param ctx the parse tree - */ - void exitAnnotationTypeDeclaration(Java8Parser.AnnotationTypeDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#annotationTypeBody}. - * @param ctx the parse tree - */ - void enterAnnotationTypeBody(Java8Parser.AnnotationTypeBodyContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#annotationTypeBody}. - * @param ctx the parse tree - */ - void exitAnnotationTypeBody(Java8Parser.AnnotationTypeBodyContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#annotationTypeMemberDeclaration}. - * @param ctx the parse tree - */ - void enterAnnotationTypeMemberDeclaration(Java8Parser.AnnotationTypeMemberDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#annotationTypeMemberDeclaration}. - * @param ctx the parse tree - */ - void exitAnnotationTypeMemberDeclaration(Java8Parser.AnnotationTypeMemberDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#annotationTypeElementDeclaration}. - * @param ctx the parse tree - */ - void enterAnnotationTypeElementDeclaration(Java8Parser.AnnotationTypeElementDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#annotationTypeElementDeclaration}. - * @param ctx the parse tree - */ - void exitAnnotationTypeElementDeclaration(Java8Parser.AnnotationTypeElementDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#annotationTypeElementModifier}. - * @param ctx the parse tree - */ - void enterAnnotationTypeElementModifier(Java8Parser.AnnotationTypeElementModifierContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#annotationTypeElementModifier}. - * @param ctx the parse tree - */ - void exitAnnotationTypeElementModifier(Java8Parser.AnnotationTypeElementModifierContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#defaultValue}. - * @param ctx the parse tree - */ - void enterDefaultValue(Java8Parser.DefaultValueContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#defaultValue}. - * @param ctx the parse tree - */ - void exitDefaultValue(Java8Parser.DefaultValueContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#annotation}. - * @param ctx the parse tree - */ - void enterAnnotation(Java8Parser.AnnotationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#annotation}. - * @param ctx the parse tree - */ - void exitAnnotation(Java8Parser.AnnotationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#normalAnnotation}. - * @param ctx the parse tree - */ - void enterNormalAnnotation(Java8Parser.NormalAnnotationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#normalAnnotation}. - * @param ctx the parse tree - */ - void exitNormalAnnotation(Java8Parser.NormalAnnotationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#elementValuePairList}. - * @param ctx the parse tree - */ - void enterElementValuePairList(Java8Parser.ElementValuePairListContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#elementValuePairList}. - * @param ctx the parse tree - */ - void exitElementValuePairList(Java8Parser.ElementValuePairListContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#elementValuePair}. - * @param ctx the parse tree - */ - void enterElementValuePair(Java8Parser.ElementValuePairContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#elementValuePair}. - * @param ctx the parse tree - */ - void exitElementValuePair(Java8Parser.ElementValuePairContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#elementValue}. - * @param ctx the parse tree - */ - void enterElementValue(Java8Parser.ElementValueContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#elementValue}. - * @param ctx the parse tree - */ - void exitElementValue(Java8Parser.ElementValueContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#elementValueArrayInitializer}. - * @param ctx the parse tree - */ - void enterElementValueArrayInitializer(Java8Parser.ElementValueArrayInitializerContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#elementValueArrayInitializer}. - * @param ctx the parse tree - */ - void exitElementValueArrayInitializer(Java8Parser.ElementValueArrayInitializerContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#elementValueList}. - * @param ctx the parse tree - */ - void enterElementValueList(Java8Parser.ElementValueListContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#elementValueList}. - * @param ctx the parse tree - */ - void exitElementValueList(Java8Parser.ElementValueListContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#markerAnnotation}. - * @param ctx the parse tree - */ - void enterMarkerAnnotation(Java8Parser.MarkerAnnotationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#markerAnnotation}. - * @param ctx the parse tree - */ - void exitMarkerAnnotation(Java8Parser.MarkerAnnotationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#singleElementAnnotation}. - * @param ctx the parse tree - */ - void enterSingleElementAnnotation(Java8Parser.SingleElementAnnotationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#singleElementAnnotation}. - * @param ctx the parse tree - */ - void exitSingleElementAnnotation(Java8Parser.SingleElementAnnotationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#arrayInitializer}. - * @param ctx the parse tree - */ - void enterArrayInitializer(Java8Parser.ArrayInitializerContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#arrayInitializer}. - * @param ctx the parse tree - */ - void exitArrayInitializer(Java8Parser.ArrayInitializerContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#variableInitializerList}. - * @param ctx the parse tree - */ - void enterVariableInitializerList(Java8Parser.VariableInitializerListContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#variableInitializerList}. - * @param ctx the parse tree - */ - void exitVariableInitializerList(Java8Parser.VariableInitializerListContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#block}. - * @param ctx the parse tree - */ - void enterBlock(Java8Parser.BlockContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#block}. - * @param ctx the parse tree - */ - void exitBlock(Java8Parser.BlockContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#blockStatements}. - * @param ctx the parse tree - */ - void enterBlockStatements(Java8Parser.BlockStatementsContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#blockStatements}. - * @param ctx the parse tree - */ - void exitBlockStatements(Java8Parser.BlockStatementsContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#blockStatement}. - * @param ctx the parse tree - */ - void enterBlockStatement(Java8Parser.BlockStatementContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#blockStatement}. - * @param ctx the parse tree - */ - void exitBlockStatement(Java8Parser.BlockStatementContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#localVariableDeclarationStatement}. - * @param ctx the parse tree - */ - void enterLocalVariableDeclarationStatement(Java8Parser.LocalVariableDeclarationStatementContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#localVariableDeclarationStatement}. - * @param ctx the parse tree - */ - void exitLocalVariableDeclarationStatement(Java8Parser.LocalVariableDeclarationStatementContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#unannTypeOrAuto}. - * @param ctx the parse tree - */ - void enterUnannTypeOrAuto(Java8Parser.UnannTypeOrAutoContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#unannTypeOrAuto}. - * @param ctx the parse tree - */ - void exitUnannTypeOrAuto(Java8Parser.UnannTypeOrAutoContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#localVariableDeclaration}. - * @param ctx the parse tree - */ - void enterLocalVariableDeclaration(Java8Parser.LocalVariableDeclarationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#localVariableDeclaration}. - * @param ctx the parse tree - */ - void exitLocalVariableDeclaration(Java8Parser.LocalVariableDeclarationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#statement}. - * @param ctx the parse tree - */ - void enterStatement(Java8Parser.StatementContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#statement}. - * @param ctx the parse tree - */ - void exitStatement(Java8Parser.StatementContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#statementNoShortIf}. - * @param ctx the parse tree - */ - void enterStatementNoShortIf(Java8Parser.StatementNoShortIfContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#statementNoShortIf}. - * @param ctx the parse tree - */ - void exitStatementNoShortIf(Java8Parser.StatementNoShortIfContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#statementWithoutTrailingSubstatement}. - * @param ctx the parse tree - */ - void enterStatementWithoutTrailingSubstatement(Java8Parser.StatementWithoutTrailingSubstatementContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#statementWithoutTrailingSubstatement}. - * @param ctx the parse tree - */ - void exitStatementWithoutTrailingSubstatement(Java8Parser.StatementWithoutTrailingSubstatementContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#emptyStatement}. - * @param ctx the parse tree - */ - void enterEmptyStatement(Java8Parser.EmptyStatementContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#emptyStatement}. - * @param ctx the parse tree - */ - void exitEmptyStatement(Java8Parser.EmptyStatementContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#labeledStatement}. - * @param ctx the parse tree - */ - void enterLabeledStatement(Java8Parser.LabeledStatementContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#labeledStatement}. - * @param ctx the parse tree - */ - void exitLabeledStatement(Java8Parser.LabeledStatementContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#labeledStatementNoShortIf}. - * @param ctx the parse tree - */ - void enterLabeledStatementNoShortIf(Java8Parser.LabeledStatementNoShortIfContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#labeledStatementNoShortIf}. - * @param ctx the parse tree - */ - void exitLabeledStatementNoShortIf(Java8Parser.LabeledStatementNoShortIfContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#expressionStatement}. - * @param ctx the parse tree - */ - void enterExpressionStatement(Java8Parser.ExpressionStatementContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#expressionStatement}. - * @param ctx the parse tree - */ - void exitExpressionStatement(Java8Parser.ExpressionStatementContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#statementExpression}. - * @param ctx the parse tree - */ - void enterStatementExpression(Java8Parser.StatementExpressionContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#statementExpression}. - * @param ctx the parse tree - */ - void exitStatementExpression(Java8Parser.StatementExpressionContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#ifThenStatement}. - * @param ctx the parse tree - */ - void enterIfThenStatement(Java8Parser.IfThenStatementContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#ifThenStatement}. - * @param ctx the parse tree - */ - void exitIfThenStatement(Java8Parser.IfThenStatementContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#ifThenElseStatement}. - * @param ctx the parse tree - */ - void enterIfThenElseStatement(Java8Parser.IfThenElseStatementContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#ifThenElseStatement}. - * @param ctx the parse tree - */ - void exitIfThenElseStatement(Java8Parser.IfThenElseStatementContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#ifThenElseStatementNoShortIf}. - * @param ctx the parse tree - */ - void enterIfThenElseStatementNoShortIf(Java8Parser.IfThenElseStatementNoShortIfContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#ifThenElseStatementNoShortIf}. - * @param ctx the parse tree - */ - void exitIfThenElseStatementNoShortIf(Java8Parser.IfThenElseStatementNoShortIfContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#assertStatement}. - * @param ctx the parse tree - */ - void enterAssertStatement(Java8Parser.AssertStatementContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#assertStatement}. - * @param ctx the parse tree - */ - void exitAssertStatement(Java8Parser.AssertStatementContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#switchStatement}. - * @param ctx the parse tree - */ - void enterSwitchStatement(Java8Parser.SwitchStatementContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#switchStatement}. - * @param ctx the parse tree - */ - void exitSwitchStatement(Java8Parser.SwitchStatementContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#switchBlock}. - * @param ctx the parse tree - */ - void enterSwitchBlock(Java8Parser.SwitchBlockContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#switchBlock}. - * @param ctx the parse tree - */ - void exitSwitchBlock(Java8Parser.SwitchBlockContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#switchBlockStatementGroup}. - * @param ctx the parse tree - */ - void enterSwitchBlockStatementGroup(Java8Parser.SwitchBlockStatementGroupContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#switchBlockStatementGroup}. - * @param ctx the parse tree - */ - void exitSwitchBlockStatementGroup(Java8Parser.SwitchBlockStatementGroupContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#switchLabels}. - * @param ctx the parse tree - */ - void enterSwitchLabels(Java8Parser.SwitchLabelsContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#switchLabels}. - * @param ctx the parse tree - */ - void exitSwitchLabels(Java8Parser.SwitchLabelsContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#switchLabel}. - * @param ctx the parse tree - */ - void enterSwitchLabel(Java8Parser.SwitchLabelContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#switchLabel}. - * @param ctx the parse tree - */ - void exitSwitchLabel(Java8Parser.SwitchLabelContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#enumConstantName}. - * @param ctx the parse tree - */ - void enterEnumConstantName(Java8Parser.EnumConstantNameContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#enumConstantName}. - * @param ctx the parse tree - */ - void exitEnumConstantName(Java8Parser.EnumConstantNameContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#whileStatement}. - * @param ctx the parse tree - */ - void enterWhileStatement(Java8Parser.WhileStatementContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#whileStatement}. - * @param ctx the parse tree - */ - void exitWhileStatement(Java8Parser.WhileStatementContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#whileStatementNoShortIf}. - * @param ctx the parse tree - */ - void enterWhileStatementNoShortIf(Java8Parser.WhileStatementNoShortIfContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#whileStatementNoShortIf}. - * @param ctx the parse tree - */ - void exitWhileStatementNoShortIf(Java8Parser.WhileStatementNoShortIfContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#doStatement}. - * @param ctx the parse tree - */ - void enterDoStatement(Java8Parser.DoStatementContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#doStatement}. - * @param ctx the parse tree - */ - void exitDoStatement(Java8Parser.DoStatementContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#forStatement}. - * @param ctx the parse tree - */ - void enterForStatement(Java8Parser.ForStatementContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#forStatement}. - * @param ctx the parse tree - */ - void exitForStatement(Java8Parser.ForStatementContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#forStatementNoShortIf}. - * @param ctx the parse tree - */ - void enterForStatementNoShortIf(Java8Parser.ForStatementNoShortIfContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#forStatementNoShortIf}. - * @param ctx the parse tree - */ - void exitForStatementNoShortIf(Java8Parser.ForStatementNoShortIfContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#basicForStatement}. - * @param ctx the parse tree - */ - void enterBasicForStatement(Java8Parser.BasicForStatementContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#basicForStatement}. - * @param ctx the parse tree - */ - void exitBasicForStatement(Java8Parser.BasicForStatementContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#basicForStatementNoShortIf}. - * @param ctx the parse tree - */ - void enterBasicForStatementNoShortIf(Java8Parser.BasicForStatementNoShortIfContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#basicForStatementNoShortIf}. - * @param ctx the parse tree - */ - void exitBasicForStatementNoShortIf(Java8Parser.BasicForStatementNoShortIfContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#forInit}. - * @param ctx the parse tree - */ - void enterForInit(Java8Parser.ForInitContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#forInit}. - * @param ctx the parse tree - */ - void exitForInit(Java8Parser.ForInitContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#forUpdate}. - * @param ctx the parse tree - */ - void enterForUpdate(Java8Parser.ForUpdateContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#forUpdate}. - * @param ctx the parse tree - */ - void exitForUpdate(Java8Parser.ForUpdateContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#statementExpressionList}. - * @param ctx the parse tree - */ - void enterStatementExpressionList(Java8Parser.StatementExpressionListContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#statementExpressionList}. - * @param ctx the parse tree - */ - void exitStatementExpressionList(Java8Parser.StatementExpressionListContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#enhancedForStatement}. - * @param ctx the parse tree - */ - void enterEnhancedForStatement(Java8Parser.EnhancedForStatementContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#enhancedForStatement}. - * @param ctx the parse tree - */ - void exitEnhancedForStatement(Java8Parser.EnhancedForStatementContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#enhancedForStatementNoShortIf}. - * @param ctx the parse tree - */ - void enterEnhancedForStatementNoShortIf(Java8Parser.EnhancedForStatementNoShortIfContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#enhancedForStatementNoShortIf}. - * @param ctx the parse tree - */ - void exitEnhancedForStatementNoShortIf(Java8Parser.EnhancedForStatementNoShortIfContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#breakStatement}. - * @param ctx the parse tree - */ - void enterBreakStatement(Java8Parser.BreakStatementContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#breakStatement}. - * @param ctx the parse tree - */ - void exitBreakStatement(Java8Parser.BreakStatementContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#continueStatement}. - * @param ctx the parse tree - */ - void enterContinueStatement(Java8Parser.ContinueStatementContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#continueStatement}. - * @param ctx the parse tree - */ - void exitContinueStatement(Java8Parser.ContinueStatementContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#returnStatement}. - * @param ctx the parse tree - */ - void enterReturnStatement(Java8Parser.ReturnStatementContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#returnStatement}. - * @param ctx the parse tree - */ - void exitReturnStatement(Java8Parser.ReturnStatementContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#throwStatement}. - * @param ctx the parse tree - */ - void enterThrowStatement(Java8Parser.ThrowStatementContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#throwStatement}. - * @param ctx the parse tree - */ - void exitThrowStatement(Java8Parser.ThrowStatementContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#synchronizedStatement}. - * @param ctx the parse tree - */ - void enterSynchronizedStatement(Java8Parser.SynchronizedStatementContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#synchronizedStatement}. - * @param ctx the parse tree - */ - void exitSynchronizedStatement(Java8Parser.SynchronizedStatementContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#tryStatement}. - * @param ctx the parse tree - */ - void enterTryStatement(Java8Parser.TryStatementContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#tryStatement}. - * @param ctx the parse tree - */ - void exitTryStatement(Java8Parser.TryStatementContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#catches}. - * @param ctx the parse tree - */ - void enterCatches(Java8Parser.CatchesContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#catches}. - * @param ctx the parse tree - */ - void exitCatches(Java8Parser.CatchesContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#catchClause}. - * @param ctx the parse tree - */ - void enterCatchClause(Java8Parser.CatchClauseContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#catchClause}. - * @param ctx the parse tree - */ - void exitCatchClause(Java8Parser.CatchClauseContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#catchFormalParameter}. - * @param ctx the parse tree - */ - void enterCatchFormalParameter(Java8Parser.CatchFormalParameterContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#catchFormalParameter}. - * @param ctx the parse tree - */ - void exitCatchFormalParameter(Java8Parser.CatchFormalParameterContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#catchType}. - * @param ctx the parse tree - */ - void enterCatchType(Java8Parser.CatchTypeContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#catchType}. - * @param ctx the parse tree - */ - void exitCatchType(Java8Parser.CatchTypeContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#finally_}. - * @param ctx the parse tree - */ - void enterFinally_(Java8Parser.Finally_Context ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#finally_}. - * @param ctx the parse tree - */ - void exitFinally_(Java8Parser.Finally_Context ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#tryWithResourcesStatement}. - * @param ctx the parse tree - */ - void enterTryWithResourcesStatement(Java8Parser.TryWithResourcesStatementContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#tryWithResourcesStatement}. - * @param ctx the parse tree - */ - void exitTryWithResourcesStatement(Java8Parser.TryWithResourcesStatementContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#resourceSpecification}. - * @param ctx the parse tree - */ - void enterResourceSpecification(Java8Parser.ResourceSpecificationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#resourceSpecification}. - * @param ctx the parse tree - */ - void exitResourceSpecification(Java8Parser.ResourceSpecificationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#resourceList}. - * @param ctx the parse tree - */ - void enterResourceList(Java8Parser.ResourceListContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#resourceList}. - * @param ctx the parse tree - */ - void exitResourceList(Java8Parser.ResourceListContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#resource}. - * @param ctx the parse tree - */ - void enterResource(Java8Parser.ResourceContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#resource}. - * @param ctx the parse tree - */ - void exitResource(Java8Parser.ResourceContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#primary}. - * @param ctx the parse tree - */ - void enterPrimary(Java8Parser.PrimaryContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#primary}. - * @param ctx the parse tree - */ - void exitPrimary(Java8Parser.PrimaryContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#primaryNoNewArray}. - * @param ctx the parse tree - */ - void enterPrimaryNoNewArray(Java8Parser.PrimaryNoNewArrayContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#primaryNoNewArray}. - * @param ctx the parse tree - */ - void exitPrimaryNoNewArray(Java8Parser.PrimaryNoNewArrayContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#primaryNoNewArray_lf_arrayAccess}. - * @param ctx the parse tree - */ - void enterPrimaryNoNewArray_lf_arrayAccess(Java8Parser.PrimaryNoNewArray_lf_arrayAccessContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#primaryNoNewArray_lf_arrayAccess}. - * @param ctx the parse tree - */ - void exitPrimaryNoNewArray_lf_arrayAccess(Java8Parser.PrimaryNoNewArray_lf_arrayAccessContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#primaryNoNewArray_lfno_arrayAccess}. - * @param ctx the parse tree - */ - void enterPrimaryNoNewArray_lfno_arrayAccess(Java8Parser.PrimaryNoNewArray_lfno_arrayAccessContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#primaryNoNewArray_lfno_arrayAccess}. - * @param ctx the parse tree - */ - void exitPrimaryNoNewArray_lfno_arrayAccess(Java8Parser.PrimaryNoNewArray_lfno_arrayAccessContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#primaryNoNewArray_lf_primary}. - * @param ctx the parse tree - */ - void enterPrimaryNoNewArray_lf_primary(Java8Parser.PrimaryNoNewArray_lf_primaryContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#primaryNoNewArray_lf_primary}. - * @param ctx the parse tree - */ - void exitPrimaryNoNewArray_lf_primary(Java8Parser.PrimaryNoNewArray_lf_primaryContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary}. - * @param ctx the parse tree - */ - void enterPrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary(Java8Parser.PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary}. - * @param ctx the parse tree - */ - void exitPrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary(Java8Parser.PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary}. - * @param ctx the parse tree - */ - void enterPrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary(Java8Parser.PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary}. - * @param ctx the parse tree - */ - void exitPrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary(Java8Parser.PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#primaryNoNewArray_lfno_primary}. - * @param ctx the parse tree - */ - void enterPrimaryNoNewArray_lfno_primary(Java8Parser.PrimaryNoNewArray_lfno_primaryContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#primaryNoNewArray_lfno_primary}. - * @param ctx the parse tree - */ - void exitPrimaryNoNewArray_lfno_primary(Java8Parser.PrimaryNoNewArray_lfno_primaryContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary}. - * @param ctx the parse tree - */ - void enterPrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary(Java8Parser.PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary}. - * @param ctx the parse tree - */ - void exitPrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary(Java8Parser.PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary}. - * @param ctx the parse tree - */ - void enterPrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary(Java8Parser.PrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primaryContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary}. - * @param ctx the parse tree - */ - void exitPrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary(Java8Parser.PrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primaryContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#classInstanceCreationExpression}. - * @param ctx the parse tree - */ - void enterClassInstanceCreationExpression(Java8Parser.ClassInstanceCreationExpressionContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#classInstanceCreationExpression}. - * @param ctx the parse tree - */ - void exitClassInstanceCreationExpression(Java8Parser.ClassInstanceCreationExpressionContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#classInstanceCreationExpression_lf_primary}. - * @param ctx the parse tree - */ - void enterClassInstanceCreationExpression_lf_primary(Java8Parser.ClassInstanceCreationExpression_lf_primaryContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#classInstanceCreationExpression_lf_primary}. - * @param ctx the parse tree - */ - void exitClassInstanceCreationExpression_lf_primary(Java8Parser.ClassInstanceCreationExpression_lf_primaryContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#classInstanceCreationExpression_lfno_primary}. - * @param ctx the parse tree - */ - void enterClassInstanceCreationExpression_lfno_primary(Java8Parser.ClassInstanceCreationExpression_lfno_primaryContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#classInstanceCreationExpression_lfno_primary}. - * @param ctx the parse tree - */ - void exitClassInstanceCreationExpression_lfno_primary(Java8Parser.ClassInstanceCreationExpression_lfno_primaryContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#typeArgumentsOrDiamond}. - * @param ctx the parse tree - */ - void enterTypeArgumentsOrDiamond(Java8Parser.TypeArgumentsOrDiamondContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#typeArgumentsOrDiamond}. - * @param ctx the parse tree - */ - void exitTypeArgumentsOrDiamond(Java8Parser.TypeArgumentsOrDiamondContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#fieldAccess}. - * @param ctx the parse tree - */ - void enterFieldAccess(Java8Parser.FieldAccessContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#fieldAccess}. - * @param ctx the parse tree - */ - void exitFieldAccess(Java8Parser.FieldAccessContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#fieldAccess_lf_primary}. - * @param ctx the parse tree - */ - void enterFieldAccess_lf_primary(Java8Parser.FieldAccess_lf_primaryContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#fieldAccess_lf_primary}. - * @param ctx the parse tree - */ - void exitFieldAccess_lf_primary(Java8Parser.FieldAccess_lf_primaryContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#fieldAccess_lfno_primary}. - * @param ctx the parse tree - */ - void enterFieldAccess_lfno_primary(Java8Parser.FieldAccess_lfno_primaryContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#fieldAccess_lfno_primary}. - * @param ctx the parse tree - */ - void exitFieldAccess_lfno_primary(Java8Parser.FieldAccess_lfno_primaryContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#arrayAccess}. - * @param ctx the parse tree - */ - void enterArrayAccess(Java8Parser.ArrayAccessContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#arrayAccess}. - * @param ctx the parse tree - */ - void exitArrayAccess(Java8Parser.ArrayAccessContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#arrayAccess_lf_primary}. - * @param ctx the parse tree - */ - void enterArrayAccess_lf_primary(Java8Parser.ArrayAccess_lf_primaryContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#arrayAccess_lf_primary}. - * @param ctx the parse tree - */ - void exitArrayAccess_lf_primary(Java8Parser.ArrayAccess_lf_primaryContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#arrayAccess_lfno_primary}. - * @param ctx the parse tree - */ - void enterArrayAccess_lfno_primary(Java8Parser.ArrayAccess_lfno_primaryContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#arrayAccess_lfno_primary}. - * @param ctx the parse tree - */ - void exitArrayAccess_lfno_primary(Java8Parser.ArrayAccess_lfno_primaryContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#methodInvocation}. - * @param ctx the parse tree - */ - void enterMethodInvocation(Java8Parser.MethodInvocationContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#methodInvocation}. - * @param ctx the parse tree - */ - void exitMethodInvocation(Java8Parser.MethodInvocationContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#methodInvocation_lf_primary}. - * @param ctx the parse tree - */ - void enterMethodInvocation_lf_primary(Java8Parser.MethodInvocation_lf_primaryContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#methodInvocation_lf_primary}. - * @param ctx the parse tree - */ - void exitMethodInvocation_lf_primary(Java8Parser.MethodInvocation_lf_primaryContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#methodInvocation_lfno_primary}. - * @param ctx the parse tree - */ - void enterMethodInvocation_lfno_primary(Java8Parser.MethodInvocation_lfno_primaryContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#methodInvocation_lfno_primary}. - * @param ctx the parse tree - */ - void exitMethodInvocation_lfno_primary(Java8Parser.MethodInvocation_lfno_primaryContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#argumentList}. - * @param ctx the parse tree - */ - void enterArgumentList(Java8Parser.ArgumentListContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#argumentList}. - * @param ctx the parse tree - */ - void exitArgumentList(Java8Parser.ArgumentListContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#methodReference}. - * @param ctx the parse tree - */ - void enterMethodReference(Java8Parser.MethodReferenceContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#methodReference}. - * @param ctx the parse tree - */ - void exitMethodReference(Java8Parser.MethodReferenceContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#methodReference_lf_primary}. - * @param ctx the parse tree - */ - void enterMethodReference_lf_primary(Java8Parser.MethodReference_lf_primaryContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#methodReference_lf_primary}. - * @param ctx the parse tree - */ - void exitMethodReference_lf_primary(Java8Parser.MethodReference_lf_primaryContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#methodReference_lfno_primary}. - * @param ctx the parse tree - */ - void enterMethodReference_lfno_primary(Java8Parser.MethodReference_lfno_primaryContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#methodReference_lfno_primary}. - * @param ctx the parse tree - */ - void exitMethodReference_lfno_primary(Java8Parser.MethodReference_lfno_primaryContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#arrayCreationExpression}. - * @param ctx the parse tree - */ - void enterArrayCreationExpression(Java8Parser.ArrayCreationExpressionContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#arrayCreationExpression}. - * @param ctx the parse tree - */ - void exitArrayCreationExpression(Java8Parser.ArrayCreationExpressionContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#dimExprs}. - * @param ctx the parse tree - */ - void enterDimExprs(Java8Parser.DimExprsContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#dimExprs}. - * @param ctx the parse tree - */ - void exitDimExprs(Java8Parser.DimExprsContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#dimExpr}. - * @param ctx the parse tree - */ - void enterDimExpr(Java8Parser.DimExprContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#dimExpr}. - * @param ctx the parse tree - */ - void exitDimExpr(Java8Parser.DimExprContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#constantExpression}. - * @param ctx the parse tree - */ - void enterConstantExpression(Java8Parser.ConstantExpressionContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#constantExpression}. - * @param ctx the parse tree - */ - void exitConstantExpression(Java8Parser.ConstantExpressionContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#expression}. - * @param ctx the parse tree - */ - void enterExpression(Java8Parser.ExpressionContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#expression}. - * @param ctx the parse tree - */ - void exitExpression(Java8Parser.ExpressionContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#lambdaExpression}. - * @param ctx the parse tree - */ - void enterLambdaExpression(Java8Parser.LambdaExpressionContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#lambdaExpression}. - * @param ctx the parse tree - */ - void exitLambdaExpression(Java8Parser.LambdaExpressionContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#lambdaParameters}. - * @param ctx the parse tree - */ - void enterLambdaParameters(Java8Parser.LambdaParametersContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#lambdaParameters}. - * @param ctx the parse tree - */ - void exitLambdaParameters(Java8Parser.LambdaParametersContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#inferredFormalParameterList}. - * @param ctx the parse tree - */ - void enterInferredFormalParameterList(Java8Parser.InferredFormalParameterListContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#inferredFormalParameterList}. - * @param ctx the parse tree - */ - void exitInferredFormalParameterList(Java8Parser.InferredFormalParameterListContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#lambdaBody}. - * @param ctx the parse tree - */ - void enterLambdaBody(Java8Parser.LambdaBodyContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#lambdaBody}. - * @param ctx the parse tree - */ - void exitLambdaBody(Java8Parser.LambdaBodyContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#assignmentExpression}. - * @param ctx the parse tree - */ - void enterAssignmentExpression(Java8Parser.AssignmentExpressionContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#assignmentExpression}. - * @param ctx the parse tree - */ - void exitAssignmentExpression(Java8Parser.AssignmentExpressionContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#assignment}. - * @param ctx the parse tree - */ - void enterAssignment(Java8Parser.AssignmentContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#assignment}. - * @param ctx the parse tree - */ - void exitAssignment(Java8Parser.AssignmentContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#leftHandSide}. - * @param ctx the parse tree - */ - void enterLeftHandSide(Java8Parser.LeftHandSideContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#leftHandSide}. - * @param ctx the parse tree - */ - void exitLeftHandSide(Java8Parser.LeftHandSideContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#assignmentOperator}. - * @param ctx the parse tree - */ - void enterAssignmentOperator(Java8Parser.AssignmentOperatorContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#assignmentOperator}. - * @param ctx the parse tree - */ - void exitAssignmentOperator(Java8Parser.AssignmentOperatorContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#conditionalExpression}. - * @param ctx the parse tree - */ - void enterConditionalExpression(Java8Parser.ConditionalExpressionContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#conditionalExpression}. - * @param ctx the parse tree - */ - void exitConditionalExpression(Java8Parser.ConditionalExpressionContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#conditionalOrExpression}. - * @param ctx the parse tree - */ - void enterConditionalOrExpression(Java8Parser.ConditionalOrExpressionContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#conditionalOrExpression}. - * @param ctx the parse tree - */ - void exitConditionalOrExpression(Java8Parser.ConditionalOrExpressionContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#conditionalAndExpression}. - * @param ctx the parse tree - */ - void enterConditionalAndExpression(Java8Parser.ConditionalAndExpressionContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#conditionalAndExpression}. - * @param ctx the parse tree - */ - void exitConditionalAndExpression(Java8Parser.ConditionalAndExpressionContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#inclusiveOrExpression}. - * @param ctx the parse tree - */ - void enterInclusiveOrExpression(Java8Parser.InclusiveOrExpressionContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#inclusiveOrExpression}. - * @param ctx the parse tree - */ - void exitInclusiveOrExpression(Java8Parser.InclusiveOrExpressionContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#exclusiveOrExpression}. - * @param ctx the parse tree - */ - void enterExclusiveOrExpression(Java8Parser.ExclusiveOrExpressionContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#exclusiveOrExpression}. - * @param ctx the parse tree - */ - void exitExclusiveOrExpression(Java8Parser.ExclusiveOrExpressionContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#andExpression}. - * @param ctx the parse tree - */ - void enterAndExpression(Java8Parser.AndExpressionContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#andExpression}. - * @param ctx the parse tree - */ - void exitAndExpression(Java8Parser.AndExpressionContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#equalityExpression}. - * @param ctx the parse tree - */ - void enterEqualityExpression(Java8Parser.EqualityExpressionContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#equalityExpression}. - * @param ctx the parse tree - */ - void exitEqualityExpression(Java8Parser.EqualityExpressionContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#relationalExpression}. - * @param ctx the parse tree - */ - void enterRelationalExpression(Java8Parser.RelationalExpressionContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#relationalExpression}. - * @param ctx the parse tree - */ - void exitRelationalExpression(Java8Parser.RelationalExpressionContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#shiftExpression}. - * @param ctx the parse tree - */ - void enterShiftExpression(Java8Parser.ShiftExpressionContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#shiftExpression}. - * @param ctx the parse tree - */ - void exitShiftExpression(Java8Parser.ShiftExpressionContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#additiveExpression}. - * @param ctx the parse tree - */ - void enterAdditiveExpression(Java8Parser.AdditiveExpressionContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#additiveExpression}. - * @param ctx the parse tree - */ - void exitAdditiveExpression(Java8Parser.AdditiveExpressionContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#multiplicativeExpression}. - * @param ctx the parse tree - */ - void enterMultiplicativeExpression(Java8Parser.MultiplicativeExpressionContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#multiplicativeExpression}. - * @param ctx the parse tree - */ - void exitMultiplicativeExpression(Java8Parser.MultiplicativeExpressionContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#unaryExpression}. - * @param ctx the parse tree - */ - void enterUnaryExpression(Java8Parser.UnaryExpressionContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#unaryExpression}. - * @param ctx the parse tree - */ - void exitUnaryExpression(Java8Parser.UnaryExpressionContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#preIncrementExpression}. - * @param ctx the parse tree - */ - void enterPreIncrementExpression(Java8Parser.PreIncrementExpressionContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#preIncrementExpression}. - * @param ctx the parse tree - */ - void exitPreIncrementExpression(Java8Parser.PreIncrementExpressionContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#preDecrementExpression}. - * @param ctx the parse tree - */ - void enterPreDecrementExpression(Java8Parser.PreDecrementExpressionContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#preDecrementExpression}. - * @param ctx the parse tree - */ - void exitPreDecrementExpression(Java8Parser.PreDecrementExpressionContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#unaryExpressionNotPlusMinus}. - * @param ctx the parse tree - */ - void enterUnaryExpressionNotPlusMinus(Java8Parser.UnaryExpressionNotPlusMinusContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#unaryExpressionNotPlusMinus}. - * @param ctx the parse tree - */ - void exitUnaryExpressionNotPlusMinus(Java8Parser.UnaryExpressionNotPlusMinusContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#postfixExpression}. - * @param ctx the parse tree - */ - void enterPostfixExpression(Java8Parser.PostfixExpressionContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#postfixExpression}. - * @param ctx the parse tree - */ - void exitPostfixExpression(Java8Parser.PostfixExpressionContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#postIncrementExpression}. - * @param ctx the parse tree - */ - void enterPostIncrementExpression(Java8Parser.PostIncrementExpressionContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#postIncrementExpression}. - * @param ctx the parse tree - */ - void exitPostIncrementExpression(Java8Parser.PostIncrementExpressionContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#postIncrementExpression_lf_postfixExpression}. - * @param ctx the parse tree - */ - void enterPostIncrementExpression_lf_postfixExpression(Java8Parser.PostIncrementExpression_lf_postfixExpressionContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#postIncrementExpression_lf_postfixExpression}. - * @param ctx the parse tree - */ - void exitPostIncrementExpression_lf_postfixExpression(Java8Parser.PostIncrementExpression_lf_postfixExpressionContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#postDecrementExpression}. - * @param ctx the parse tree - */ - void enterPostDecrementExpression(Java8Parser.PostDecrementExpressionContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#postDecrementExpression}. - * @param ctx the parse tree - */ - void exitPostDecrementExpression(Java8Parser.PostDecrementExpressionContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#postDecrementExpression_lf_postfixExpression}. - * @param ctx the parse tree - */ - void enterPostDecrementExpression_lf_postfixExpression(Java8Parser.PostDecrementExpression_lf_postfixExpressionContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#postDecrementExpression_lf_postfixExpression}. - * @param ctx the parse tree - */ - void exitPostDecrementExpression_lf_postfixExpression(Java8Parser.PostDecrementExpression_lf_postfixExpressionContext ctx); - /** - * Enter a parse tree produced by {@link Java8Parser#castExpression}. - * @param ctx the parse tree - */ - void enterCastExpression(Java8Parser.CastExpressionContext ctx); - /** - * Exit a parse tree produced by {@link Java8Parser#castExpression}. - * @param ctx the parse tree - */ - void exitCastExpression(Java8Parser.CastExpressionContext ctx); -} \ No newline at end of file diff --git a/src/main/java/de/dhbwstuttgart/parser/antlr/Java8Parser.java b/src/main/java/de/dhbwstuttgart/parser/antlr/Java8Parser.java deleted file mode 100644 index 398dd5f81..000000000 --- a/src/main/java/de/dhbwstuttgart/parser/antlr/Java8Parser.java +++ /dev/null @@ -1,18764 +0,0 @@ -// Generated from Java8.g4 by ANTLR 4.7 -package de.dhbwstuttgart.parser.antlr; -import org.antlr.v4.runtime.atn.*; -import org.antlr.v4.runtime.dfa.DFA; -import org.antlr.v4.runtime.*; -import org.antlr.v4.runtime.misc.*; -import org.antlr.v4.runtime.tree.*; -import java.util.List; -import java.util.Iterator; -import java.util.ArrayList; - -@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) -public class Java8Parser extends Parser { - static { RuntimeMetaData.checkVersion("4.7", RuntimeMetaData.VERSION); } - - protected static final DFA[] _decisionToDFA; - protected static final PredictionContextCache _sharedContextCache = - new PredictionContextCache(); - public static final int - T__0=1, ABSTRACT=2, ASSERT=3, BOOLEAN=4, BREAK=5, BYTE=6, CASE=7, CATCH=8, - CHAR=9, CLASS=10, CONST=11, CONTINUE=12, DEFAULT=13, DO=14, DOUBLE=15, - ELSE=16, ENUM=17, EXTENDS=18, FINAL=19, FINALLY=20, FLOAT=21, FOR=22, - IF=23, GOTO=24, IMPLEMENTS=25, IMPORT=26, INSTANCEOF=27, INT=28, INTERFACE=29, - LONG=30, NATIVE=31, NEW=32, PACKAGE=33, PRIVATE=34, PROTECTED=35, PUBLIC=36, - RETURN=37, SHORT=38, STATIC=39, STRICTFP=40, SUPER=41, SWITCH=42, SYNCHRONIZED=43, - THIS=44, THROW=45, THROWS=46, TRANSIENT=47, TRY=48, VOID=49, VOLATILE=50, - WHILE=51, IntegerLiteral=52, FloatingPointLiteral=53, BooleanLiteral=54, - CharacterLiteral=55, StringLiteral=56, NullLiteral=57, LPAREN=58, RPAREN=59, - LBRACE=60, RBRACE=61, LBRACK=62, RBRACK=63, SEMI=64, COMMA=65, DOT=66, - ASSIGN=67, GT=68, LT=69, BANG=70, TILDE=71, QUESTION=72, COLON=73, EQUAL=74, - LE=75, GE=76, NOTEQUAL=77, AND=78, OR=79, INC=80, DEC=81, ADD=82, SUB=83, - MUL=84, DIV=85, BITAND=86, BITOR=87, CARET=88, MOD=89, ARROW=90, COLONCOLON=91, - ADD_ASSIGN=92, SUB_ASSIGN=93, MUL_ASSIGN=94, DIV_ASSIGN=95, AND_ASSIGN=96, - OR_ASSIGN=97, XOR_ASSIGN=98, MOD_ASSIGN=99, LSHIFT_ASSIGN=100, RSHIFT_ASSIGN=101, - URSHIFT_ASSIGN=102, Identifier=103, AT=104, ELLIPSIS=105, WS=106, COMMENT=107, - LINE_COMMENT=108; - public static final int - RULE_literal = 0, RULE_type = 1, RULE_primitiveType = 2, RULE_numericType = 3, - RULE_integralType = 4, RULE_floatingPointType = 5, RULE_referenceType = 6, - RULE_classOrInterfaceType = 7, RULE_classType = 8, RULE_classType_lf_classOrInterfaceType = 9, - RULE_classType_lfno_classOrInterfaceType = 10, RULE_interfaceType = 11, - RULE_interfaceType_lf_classOrInterfaceType = 12, RULE_interfaceType_lfno_classOrInterfaceType = 13, - RULE_typeVariable = 14, RULE_arrayType = 15, RULE_dims = 16, RULE_typeParameter = 17, - RULE_typeParameterModifier = 18, RULE_typeBound = 19, RULE_additionalBound = 20, - RULE_typeArguments = 21, RULE_typeArgumentList = 22, RULE_typeArgument = 23, - RULE_wildcard = 24, RULE_wildcardBounds = 25, RULE_packageName = 26, RULE_typeName = 27, - RULE_packageOrTypeName = 28, RULE_expressionName = 29, RULE_methodName = 30, - RULE_ambiguousName = 31, RULE_compilationUnit = 32, RULE_packageDeclaration = 33, - RULE_packageModifier = 34, RULE_importDeclaration = 35, RULE_singleTypeImportDeclaration = 36, - RULE_typeImportOnDemandDeclaration = 37, RULE_singleStaticImportDeclaration = 38, - RULE_staticImportOnDemandDeclaration = 39, RULE_typeDeclaration = 40, - RULE_classDeclaration = 41, RULE_normalClassDeclaration = 42, RULE_classModifier = 43, - RULE_typeParameters = 44, RULE_typeParameterList = 45, RULE_superclass = 46, - RULE_superinterfaces = 47, RULE_interfaceTypeList = 48, RULE_classBody = 49, - RULE_classBodyDeclaration = 50, RULE_classMemberDeclaration = 51, RULE_fieldDeclaration = 52, - RULE_fieldModifier = 53, RULE_variableDeclaratorList = 54, RULE_variableDeclarator = 55, - RULE_variableDeclaratorId = 56, RULE_variableInitializer = 57, RULE_unannType = 58, - RULE_unannPrimitiveType = 59, RULE_unannReferenceType = 60, RULE_unannClassOrInterfaceType = 61, - RULE_unannClassType = 62, RULE_unannClassType_lf_unannClassOrInterfaceType = 63, - RULE_unannClassType_lfno_unannClassOrInterfaceType = 64, RULE_unannInterfaceType = 65, - RULE_unannInterfaceType_lf_unannClassOrInterfaceType = 66, RULE_unannInterfaceType_lfno_unannClassOrInterfaceType = 67, - RULE_unannTypeVariable = 68, RULE_unannArrayType = 69, RULE_methodDeclaration = 70, - RULE_methodModifier = 71, RULE_methodHeader = 72, RULE_result = 73, RULE_methodDeclarator = 74, - RULE_formalParameterList = 75, RULE_formalParameters = 76, RULE_formalParameter = 77, - RULE_variableModifier = 78, RULE_lastFormalParameter = 79, RULE_receiverParameter = 80, - RULE_throws_ = 81, RULE_exceptionTypeList = 82, RULE_exceptionType = 83, - RULE_methodBody = 84, RULE_instanceInitializer = 85, RULE_staticInitializer = 86, - RULE_constructorDeclaration = 87, RULE_constructorModifier = 88, RULE_constructorDeclarator = 89, - RULE_simpleTypeName = 90, RULE_constructorBody = 91, RULE_explicitConstructorInvocation = 92, - RULE_enumDeclaration = 93, RULE_enumBody = 94, RULE_enumConstantList = 95, - RULE_enumConstant = 96, RULE_enumConstantModifier = 97, RULE_enumBodyDeclarations = 98, - RULE_interfaceDeclaration = 99, RULE_normalInterfaceDeclaration = 100, - RULE_interfaceModifier = 101, RULE_extendsInterfaces = 102, RULE_interfaceBody = 103, - RULE_interfaceMemberDeclaration = 104, RULE_constantDeclaration = 105, - RULE_constantModifier = 106, RULE_interfaceMethodDeclaration = 107, RULE_interfaceMethodModifier = 108, - RULE_annotationTypeDeclaration = 109, RULE_annotationTypeBody = 110, RULE_annotationTypeMemberDeclaration = 111, - RULE_annotationTypeElementDeclaration = 112, RULE_annotationTypeElementModifier = 113, - RULE_defaultValue = 114, RULE_annotation = 115, RULE_normalAnnotation = 116, - RULE_elementValuePairList = 117, RULE_elementValuePair = 118, RULE_elementValue = 119, - RULE_elementValueArrayInitializer = 120, RULE_elementValueList = 121, - RULE_markerAnnotation = 122, RULE_singleElementAnnotation = 123, RULE_arrayInitializer = 124, - RULE_variableInitializerList = 125, RULE_block = 126, RULE_blockStatements = 127, - RULE_blockStatement = 128, RULE_localVariableDeclarationStatement = 129, - RULE_unannTypeOrAuto = 130, RULE_localVariableDeclaration = 131, RULE_statement = 132, - RULE_statementNoShortIf = 133, RULE_statementWithoutTrailingSubstatement = 134, - RULE_emptyStatement = 135, RULE_labeledStatement = 136, RULE_labeledStatementNoShortIf = 137, - RULE_expressionStatement = 138, RULE_statementExpression = 139, RULE_ifThenStatement = 140, - RULE_ifThenElseStatement = 141, RULE_ifThenElseStatementNoShortIf = 142, - RULE_assertStatement = 143, RULE_switchStatement = 144, RULE_switchBlock = 145, - RULE_switchBlockStatementGroup = 146, RULE_switchLabels = 147, RULE_switchLabel = 148, - RULE_enumConstantName = 149, RULE_whileStatement = 150, RULE_whileStatementNoShortIf = 151, - RULE_doStatement = 152, RULE_forStatement = 153, RULE_forStatementNoShortIf = 154, - RULE_basicForStatement = 155, RULE_basicForStatementNoShortIf = 156, RULE_forInit = 157, - RULE_forUpdate = 158, RULE_statementExpressionList = 159, RULE_enhancedForStatement = 160, - RULE_enhancedForStatementNoShortIf = 161, RULE_breakStatement = 162, RULE_continueStatement = 163, - RULE_returnStatement = 164, RULE_throwStatement = 165, RULE_synchronizedStatement = 166, - RULE_tryStatement = 167, RULE_catches = 168, RULE_catchClause = 169, RULE_catchFormalParameter = 170, - RULE_catchType = 171, RULE_finally_ = 172, RULE_tryWithResourcesStatement = 173, - RULE_resourceSpecification = 174, RULE_resourceList = 175, RULE_resource = 176, - RULE_primary = 177, RULE_primaryNoNewArray = 178, RULE_primaryNoNewArray_lf_arrayAccess = 179, - RULE_primaryNoNewArray_lfno_arrayAccess = 180, RULE_primaryNoNewArray_lf_primary = 181, - RULE_primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary = 182, RULE_primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary = 183, - RULE_primaryNoNewArray_lfno_primary = 184, RULE_primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary = 185, - RULE_primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary = 186, - RULE_classInstanceCreationExpression = 187, RULE_classInstanceCreationExpression_lf_primary = 188, - RULE_classInstanceCreationExpression_lfno_primary = 189, RULE_typeArgumentsOrDiamond = 190, - RULE_fieldAccess = 191, RULE_fieldAccess_lf_primary = 192, RULE_fieldAccess_lfno_primary = 193, - RULE_arrayAccess = 194, RULE_arrayAccess_lf_primary = 195, RULE_arrayAccess_lfno_primary = 196, - RULE_methodInvocation = 197, RULE_methodInvocation_lf_primary = 198, RULE_methodInvocation_lfno_primary = 199, - RULE_argumentList = 200, RULE_methodReference = 201, RULE_methodReference_lf_primary = 202, - RULE_methodReference_lfno_primary = 203, RULE_arrayCreationExpression = 204, - RULE_dimExprs = 205, RULE_dimExpr = 206, RULE_constantExpression = 207, - RULE_expression = 208, RULE_lambdaExpression = 209, RULE_lambdaParameters = 210, - RULE_inferredFormalParameterList = 211, RULE_lambdaBody = 212, RULE_assignmentExpression = 213, - RULE_assignment = 214, RULE_leftHandSide = 215, RULE_assignmentOperator = 216, - RULE_conditionalExpression = 217, RULE_conditionalOrExpression = 218, - RULE_conditionalAndExpression = 219, RULE_inclusiveOrExpression = 220, - RULE_exclusiveOrExpression = 221, RULE_andExpression = 222, RULE_equalityExpression = 223, - RULE_relationalExpression = 224, RULE_shiftExpression = 225, RULE_additiveExpression = 226, - RULE_multiplicativeExpression = 227, RULE_unaryExpression = 228, RULE_preIncrementExpression = 229, - RULE_preDecrementExpression = 230, RULE_unaryExpressionNotPlusMinus = 231, - RULE_postfixExpression = 232, RULE_postIncrementExpression = 233, RULE_postIncrementExpression_lf_postfixExpression = 234, - RULE_postDecrementExpression = 235, RULE_postDecrementExpression_lf_postfixExpression = 236, - RULE_castExpression = 237; - public static final String[] ruleNames = { - "literal", "type", "primitiveType", "numericType", "integralType", "floatingPointType", - "referenceType", "classOrInterfaceType", "classType", "classType_lf_classOrInterfaceType", - "classType_lfno_classOrInterfaceType", "interfaceType", "interfaceType_lf_classOrInterfaceType", - "interfaceType_lfno_classOrInterfaceType", "typeVariable", "arrayType", - "dims", "typeParameter", "typeParameterModifier", "typeBound", "additionalBound", - "typeArguments", "typeArgumentList", "typeArgument", "wildcard", "wildcardBounds", - "packageName", "typeName", "packageOrTypeName", "expressionName", "methodName", - "ambiguousName", "compilationUnit", "packageDeclaration", "packageModifier", - "importDeclaration", "singleTypeImportDeclaration", "typeImportOnDemandDeclaration", - "singleStaticImportDeclaration", "staticImportOnDemandDeclaration", "typeDeclaration", - "classDeclaration", "normalClassDeclaration", "classModifier", "typeParameters", - "typeParameterList", "superclass", "superinterfaces", "interfaceTypeList", - "classBody", "classBodyDeclaration", "classMemberDeclaration", "fieldDeclaration", - "fieldModifier", "variableDeclaratorList", "variableDeclarator", "variableDeclaratorId", - "variableInitializer", "unannType", "unannPrimitiveType", "unannReferenceType", - "unannClassOrInterfaceType", "unannClassType", "unannClassType_lf_unannClassOrInterfaceType", - "unannClassType_lfno_unannClassOrInterfaceType", "unannInterfaceType", - "unannInterfaceType_lf_unannClassOrInterfaceType", "unannInterfaceType_lfno_unannClassOrInterfaceType", - "unannTypeVariable", "unannArrayType", "methodDeclaration", "methodModifier", - "methodHeader", "result", "methodDeclarator", "formalParameterList", "formalParameters", - "formalParameter", "variableModifier", "lastFormalParameter", "receiverParameter", - "throws_", "exceptionTypeList", "exceptionType", "methodBody", "instanceInitializer", - "staticInitializer", "constructorDeclaration", "constructorModifier", - "constructorDeclarator", "simpleTypeName", "constructorBody", "explicitConstructorInvocation", - "enumDeclaration", "enumBody", "enumConstantList", "enumConstant", "enumConstantModifier", - "enumBodyDeclarations", "interfaceDeclaration", "normalInterfaceDeclaration", - "interfaceModifier", "extendsInterfaces", "interfaceBody", "interfaceMemberDeclaration", - "constantDeclaration", "constantModifier", "interfaceMethodDeclaration", - "interfaceMethodModifier", "annotationTypeDeclaration", "annotationTypeBody", - "annotationTypeMemberDeclaration", "annotationTypeElementDeclaration", - "annotationTypeElementModifier", "defaultValue", "annotation", "normalAnnotation", - "elementValuePairList", "elementValuePair", "elementValue", "elementValueArrayInitializer", - "elementValueList", "markerAnnotation", "singleElementAnnotation", "arrayInitializer", - "variableInitializerList", "block", "blockStatements", "blockStatement", - "localVariableDeclarationStatement", "unannTypeOrAuto", "localVariableDeclaration", - "statement", "statementNoShortIf", "statementWithoutTrailingSubstatement", - "emptyStatement", "labeledStatement", "labeledStatementNoShortIf", "expressionStatement", - "statementExpression", "ifThenStatement", "ifThenElseStatement", "ifThenElseStatementNoShortIf", - "assertStatement", "switchStatement", "switchBlock", "switchBlockStatementGroup", - "switchLabels", "switchLabel", "enumConstantName", "whileStatement", "whileStatementNoShortIf", - "doStatement", "forStatement", "forStatementNoShortIf", "basicForStatement", - "basicForStatementNoShortIf", "forInit", "forUpdate", "statementExpressionList", - "enhancedForStatement", "enhancedForStatementNoShortIf", "breakStatement", - "continueStatement", "returnStatement", "throwStatement", "synchronizedStatement", - "tryStatement", "catches", "catchClause", "catchFormalParameter", "catchType", - "finally_", "tryWithResourcesStatement", "resourceSpecification", "resourceList", - "resource", "primary", "primaryNoNewArray", "primaryNoNewArray_lf_arrayAccess", - "primaryNoNewArray_lfno_arrayAccess", "primaryNoNewArray_lf_primary", - "primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary", "primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary", - "primaryNoNewArray_lfno_primary", "primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary", - "primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary", "classInstanceCreationExpression", - "classInstanceCreationExpression_lf_primary", "classInstanceCreationExpression_lfno_primary", - "typeArgumentsOrDiamond", "fieldAccess", "fieldAccess_lf_primary", "fieldAccess_lfno_primary", - "arrayAccess", "arrayAccess_lf_primary", "arrayAccess_lfno_primary", "methodInvocation", - "methodInvocation_lf_primary", "methodInvocation_lfno_primary", "argumentList", - "methodReference", "methodReference_lf_primary", "methodReference_lfno_primary", - "arrayCreationExpression", "dimExprs", "dimExpr", "constantExpression", - "expression", "lambdaExpression", "lambdaParameters", "inferredFormalParameterList", - "lambdaBody", "assignmentExpression", "assignment", "leftHandSide", "assignmentOperator", - "conditionalExpression", "conditionalOrExpression", "conditionalAndExpression", - "inclusiveOrExpression", "exclusiveOrExpression", "andExpression", "equalityExpression", - "relationalExpression", "shiftExpression", "additiveExpression", "multiplicativeExpression", - "unaryExpression", "preIncrementExpression", "preDecrementExpression", - "unaryExpressionNotPlusMinus", "postfixExpression", "postIncrementExpression", - "postIncrementExpression_lf_postfixExpression", "postDecrementExpression", - "postDecrementExpression_lf_postfixExpression", "castExpression" - }; - - private static final String[] _LITERAL_NAMES = { - null, "'var'", "'abstract'", "'assert'", "'boolean'", "'break'", "'byte'", - "'case'", "'catch'", "'char'", "'class'", "'const'", "'continue'", "'default'", - "'do'", "'double'", "'else'", "'enum'", "'extends'", "'final'", "'finally'", - "'float'", "'for'", "'if'", "'goto'", "'implements'", "'import'", "'instanceof'", - "'int'", "'interface'", "'long'", "'native'", "'new'", "'package'", "'private'", - "'protected'", "'public'", "'return'", "'short'", "'static'", "'strictfp'", - "'super'", "'switch'", "'synchronized'", "'this'", "'throw'", "'throws'", - "'transient'", "'try'", "'void'", "'volatile'", "'while'", null, null, - null, null, null, "'null'", "'('", "')'", "'{'", "'}'", "'['", "']'", - "';'", "','", "'.'", "'='", "'>'", "'<'", "'!'", "'~'", "'?'", "':'", - "'=='", "'<='", "'>='", "'!='", "'&&'", "'||'", "'++'", "'--'", "'+'", - "'-'", "'*'", "'/'", "'&'", "'|'", "'^'", "'%'", "'->'", "'::'", "'+='", - "'-='", "'*='", "'/='", "'&='", "'|='", "'^='", "'%='", "'<<='", "'>>='", - "'>>>='", null, "'@'", "'...'" - }; - private static final String[] _SYMBOLIC_NAMES = { - null, null, "ABSTRACT", "ASSERT", "BOOLEAN", "BREAK", "BYTE", "CASE", - "CATCH", "CHAR", "CLASS", "CONST", "CONTINUE", "DEFAULT", "DO", "DOUBLE", - "ELSE", "ENUM", "EXTENDS", "FINAL", "FINALLY", "FLOAT", "FOR", "IF", "GOTO", - "IMPLEMENTS", "IMPORT", "INSTANCEOF", "INT", "INTERFACE", "LONG", "NATIVE", - "NEW", "PACKAGE", "PRIVATE", "PROTECTED", "PUBLIC", "RETURN", "SHORT", - "STATIC", "STRICTFP", "SUPER", "SWITCH", "SYNCHRONIZED", "THIS", "THROW", - "THROWS", "TRANSIENT", "TRY", "VOID", "VOLATILE", "WHILE", "IntegerLiteral", - "FloatingPointLiteral", "BooleanLiteral", "CharacterLiteral", "StringLiteral", - "NullLiteral", "LPAREN", "RPAREN", "LBRACE", "RBRACE", "LBRACK", "RBRACK", - "SEMI", "COMMA", "DOT", "ASSIGN", "GT", "LT", "BANG", "TILDE", "QUESTION", - "COLON", "EQUAL", "LE", "GE", "NOTEQUAL", "AND", "OR", "INC", "DEC", "ADD", - "SUB", "MUL", "DIV", "BITAND", "BITOR", "CARET", "MOD", "ARROW", "COLONCOLON", - "ADD_ASSIGN", "SUB_ASSIGN", "MUL_ASSIGN", "DIV_ASSIGN", "AND_ASSIGN", - "OR_ASSIGN", "XOR_ASSIGN", "MOD_ASSIGN", "LSHIFT_ASSIGN", "RSHIFT_ASSIGN", - "URSHIFT_ASSIGN", "Identifier", "AT", "ELLIPSIS", "WS", "COMMENT", "LINE_COMMENT" - }; - public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); - - /** - * @deprecated Use {@link #VOCABULARY} instead. - */ - @Deprecated - public static final String[] tokenNames; - static { - tokenNames = new String[_SYMBOLIC_NAMES.length]; - for (int i = 0; i < tokenNames.length; i++) { - tokenNames[i] = VOCABULARY.getLiteralName(i); - if (tokenNames[i] == null) { - tokenNames[i] = VOCABULARY.getSymbolicName(i); - } - - if (tokenNames[i] == null) { - tokenNames[i] = ""; - } - } - } - - @Override - @Deprecated - public String[] getTokenNames() { - return tokenNames; - } - - @Override - - public Vocabulary getVocabulary() { - return VOCABULARY; - } - - @Override - public String getGrammarFileName() { return "Java8.g4"; } - - @Override - public String[] getRuleNames() { return ruleNames; } - - @Override - public String getSerializedATN() { return _serializedATN; } - - @Override - public ATN getATN() { return _ATN; } - - public Java8Parser(TokenStream input) { - super(input); - _interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); - } - public static class LiteralContext extends ParserRuleContext { - public TerminalNode IntegerLiteral() { return getToken(Java8Parser.IntegerLiteral, 0); } - public TerminalNode FloatingPointLiteral() { return getToken(Java8Parser.FloatingPointLiteral, 0); } - public TerminalNode BooleanLiteral() { return getToken(Java8Parser.BooleanLiteral, 0); } - public TerminalNode CharacterLiteral() { return getToken(Java8Parser.CharacterLiteral, 0); } - public TerminalNode StringLiteral() { return getToken(Java8Parser.StringLiteral, 0); } - public TerminalNode NullLiteral() { return getToken(Java8Parser.NullLiteral, 0); } - public LiteralContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_literal; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterLiteral(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLiteral(this); - } - } - - public final LiteralContext literal() throws RecognitionException { - LiteralContext _localctx = new LiteralContext(_ctx, getState()); - enterRule(_localctx, 0, RULE_literal); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(476); - _la = _input.LA(1); - if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral))) != 0)) ) { - _errHandler.recoverInline(this); - } - else { - if ( _input.LA(1)==Token.EOF ) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class TypeContext extends ParserRuleContext { - public PrimitiveTypeContext primitiveType() { - return getRuleContext(PrimitiveTypeContext.class,0); - } - public ReferenceTypeContext referenceType() { - return getRuleContext(ReferenceTypeContext.class,0); - } - public TypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_type; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitType(this); - } - } - - public final TypeContext type() throws RecognitionException { - TypeContext _localctx = new TypeContext(_ctx, getState()); - enterRule(_localctx, 2, RULE_type); - try { - setState(480); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,0,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(478); - primitiveType(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(479); - referenceType(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class PrimitiveTypeContext extends ParserRuleContext { - public NumericTypeContext numericType() { - return getRuleContext(NumericTypeContext.class,0); - } - public List annotation() { - return getRuleContexts(AnnotationContext.class); - } - public AnnotationContext annotation(int i) { - return getRuleContext(AnnotationContext.class,i); - } - public PrimitiveTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_primitiveType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimitiveType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimitiveType(this); - } - } - - public final PrimitiveTypeContext primitiveType() throws RecognitionException { - PrimitiveTypeContext _localctx = new PrimitiveTypeContext(_ctx, getState()); - enterRule(_localctx, 4, RULE_primitiveType); - int _la; - try { - setState(496); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,3,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(485); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==AT) { - { - { - setState(482); - annotation(); - } - } - setState(487); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(488); - numericType(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(492); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==AT) { - { - { - setState(489); - annotation(); - } - } - setState(494); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(495); - match(BOOLEAN); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class NumericTypeContext extends ParserRuleContext { - public IntegralTypeContext integralType() { - return getRuleContext(IntegralTypeContext.class,0); - } - public FloatingPointTypeContext floatingPointType() { - return getRuleContext(FloatingPointTypeContext.class,0); - } - public NumericTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_numericType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterNumericType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitNumericType(this); - } - } - - public final NumericTypeContext numericType() throws RecognitionException { - NumericTypeContext _localctx = new NumericTypeContext(_ctx, getState()); - enterRule(_localctx, 6, RULE_numericType); - try { - setState(500); - _errHandler.sync(this); - switch (_input.LA(1)) { - case BYTE: - case CHAR: - case INT: - case LONG: - case SHORT: - enterOuterAlt(_localctx, 1); - { - setState(498); - integralType(); - } - break; - case DOUBLE: - case FLOAT: - enterOuterAlt(_localctx, 2); - { - setState(499); - floatingPointType(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class IntegralTypeContext extends ParserRuleContext { - public IntegralTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_integralType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterIntegralType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitIntegralType(this); - } - } - - public final IntegralTypeContext integralType() throws RecognitionException { - IntegralTypeContext _localctx = new IntegralTypeContext(_ctx, getState()); - enterRule(_localctx, 8, RULE_integralType); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(502); - _la = _input.LA(1); - if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BYTE) | (1L << CHAR) | (1L << INT) | (1L << LONG) | (1L << SHORT))) != 0)) ) { - _errHandler.recoverInline(this); - } - else { - if ( _input.LA(1)==Token.EOF ) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class FloatingPointTypeContext extends ParserRuleContext { - public FloatingPointTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_floatingPointType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterFloatingPointType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFloatingPointType(this); - } - } - - public final FloatingPointTypeContext floatingPointType() throws RecognitionException { - FloatingPointTypeContext _localctx = new FloatingPointTypeContext(_ctx, getState()); - enterRule(_localctx, 10, RULE_floatingPointType); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(504); - _la = _input.LA(1); - if ( !(_la==DOUBLE || _la==FLOAT) ) { - _errHandler.recoverInline(this); - } - else { - if ( _input.LA(1)==Token.EOF ) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ReferenceTypeContext extends ParserRuleContext { - public ClassOrInterfaceTypeContext classOrInterfaceType() { - return getRuleContext(ClassOrInterfaceTypeContext.class,0); - } - public TypeVariableContext typeVariable() { - return getRuleContext(TypeVariableContext.class,0); - } - public ArrayTypeContext arrayType() { - return getRuleContext(ArrayTypeContext.class,0); - } - public ReferenceTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_referenceType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterReferenceType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitReferenceType(this); - } - } - - public final ReferenceTypeContext referenceType() throws RecognitionException { - ReferenceTypeContext _localctx = new ReferenceTypeContext(_ctx, getState()); - enterRule(_localctx, 12, RULE_referenceType); - try { - setState(509); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,5,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(506); - classOrInterfaceType(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(507); - typeVariable(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(508); - arrayType(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ClassOrInterfaceTypeContext extends ParserRuleContext { - public ClassType_lfno_classOrInterfaceTypeContext classType_lfno_classOrInterfaceType() { - return getRuleContext(ClassType_lfno_classOrInterfaceTypeContext.class,0); - } - public InterfaceType_lfno_classOrInterfaceTypeContext interfaceType_lfno_classOrInterfaceType() { - return getRuleContext(InterfaceType_lfno_classOrInterfaceTypeContext.class,0); - } - public List classType_lf_classOrInterfaceType() { - return getRuleContexts(ClassType_lf_classOrInterfaceTypeContext.class); - } - public ClassType_lf_classOrInterfaceTypeContext classType_lf_classOrInterfaceType(int i) { - return getRuleContext(ClassType_lf_classOrInterfaceTypeContext.class,i); - } - public ClassOrInterfaceTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_classOrInterfaceType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassOrInterfaceType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassOrInterfaceType(this); - } - } - - public final ClassOrInterfaceTypeContext classOrInterfaceType() throws RecognitionException { - ClassOrInterfaceTypeContext _localctx = new ClassOrInterfaceTypeContext(_ctx, getState()); - enterRule(_localctx, 14, RULE_classOrInterfaceType); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(513); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,6,_ctx) ) { - case 1: - { - setState(511); - classType_lfno_classOrInterfaceType(); - } - break; - case 2: - { - setState(512); - interfaceType_lfno_classOrInterfaceType(); - } - break; - } - setState(518); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,7,_ctx); - while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(515); - classType_lf_classOrInterfaceType(); - } - } - } - setState(520); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,7,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ClassTypeContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public List annotation() { - return getRuleContexts(AnnotationContext.class); - } - public AnnotationContext annotation(int i) { - return getRuleContext(AnnotationContext.class,i); - } - public TypeArgumentsContext typeArguments() { - return getRuleContext(TypeArgumentsContext.class,0); - } - public ClassOrInterfaceTypeContext classOrInterfaceType() { - return getRuleContext(ClassOrInterfaceTypeContext.class,0); - } - public ClassTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_classType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassType(this); - } - } - - public final ClassTypeContext classType() throws RecognitionException { - ClassTypeContext _localctx = new ClassTypeContext(_ctx, getState()); - enterRule(_localctx, 16, RULE_classType); - int _la; - try { - setState(543); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,12,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(524); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==AT) { - { - { - setState(521); - annotation(); - } - } - setState(526); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(527); - match(Identifier); - setState(529); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(528); - typeArguments(); - } - } - - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(531); - classOrInterfaceType(); - setState(532); - match(DOT); - setState(536); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==AT) { - { - { - setState(533); - annotation(); - } - } - setState(538); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(539); - match(Identifier); - setState(541); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(540); - typeArguments(); - } - } - - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ClassType_lf_classOrInterfaceTypeContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public List annotation() { - return getRuleContexts(AnnotationContext.class); - } - public AnnotationContext annotation(int i) { - return getRuleContext(AnnotationContext.class,i); - } - public TypeArgumentsContext typeArguments() { - return getRuleContext(TypeArgumentsContext.class,0); - } - public ClassType_lf_classOrInterfaceTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_classType_lf_classOrInterfaceType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassType_lf_classOrInterfaceType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassType_lf_classOrInterfaceType(this); - } - } - - public final ClassType_lf_classOrInterfaceTypeContext classType_lf_classOrInterfaceType() throws RecognitionException { - ClassType_lf_classOrInterfaceTypeContext _localctx = new ClassType_lf_classOrInterfaceTypeContext(_ctx, getState()); - enterRule(_localctx, 18, RULE_classType_lf_classOrInterfaceType); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(545); - match(DOT); - setState(549); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==AT) { - { - { - setState(546); - annotation(); - } - } - setState(551); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(552); - match(Identifier); - setState(554); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,14,_ctx) ) { - case 1: - { - setState(553); - typeArguments(); - } - break; - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ClassType_lfno_classOrInterfaceTypeContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public List annotation() { - return getRuleContexts(AnnotationContext.class); - } - public AnnotationContext annotation(int i) { - return getRuleContext(AnnotationContext.class,i); - } - public TypeArgumentsContext typeArguments() { - return getRuleContext(TypeArgumentsContext.class,0); - } - public ClassType_lfno_classOrInterfaceTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_classType_lfno_classOrInterfaceType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassType_lfno_classOrInterfaceType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassType_lfno_classOrInterfaceType(this); - } - } - - public final ClassType_lfno_classOrInterfaceTypeContext classType_lfno_classOrInterfaceType() throws RecognitionException { - ClassType_lfno_classOrInterfaceTypeContext _localctx = new ClassType_lfno_classOrInterfaceTypeContext(_ctx, getState()); - enterRule(_localctx, 20, RULE_classType_lfno_classOrInterfaceType); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(559); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==AT) { - { - { - setState(556); - annotation(); - } - } - setState(561); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(562); - match(Identifier); - setState(564); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,16,_ctx) ) { - case 1: - { - setState(563); - typeArguments(); - } - break; - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class InterfaceTypeContext extends ParserRuleContext { - public ClassTypeContext classType() { - return getRuleContext(ClassTypeContext.class,0); - } - public InterfaceTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_interfaceType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInterfaceType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceType(this); - } - } - - public final InterfaceTypeContext interfaceType() throws RecognitionException { - InterfaceTypeContext _localctx = new InterfaceTypeContext(_ctx, getState()); - enterRule(_localctx, 22, RULE_interfaceType); - try { - enterOuterAlt(_localctx, 1); - { - setState(566); - classType(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class InterfaceType_lf_classOrInterfaceTypeContext extends ParserRuleContext { - public ClassType_lf_classOrInterfaceTypeContext classType_lf_classOrInterfaceType() { - return getRuleContext(ClassType_lf_classOrInterfaceTypeContext.class,0); - } - public InterfaceType_lf_classOrInterfaceTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_interfaceType_lf_classOrInterfaceType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInterfaceType_lf_classOrInterfaceType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceType_lf_classOrInterfaceType(this); - } - } - - public final InterfaceType_lf_classOrInterfaceTypeContext interfaceType_lf_classOrInterfaceType() throws RecognitionException { - InterfaceType_lf_classOrInterfaceTypeContext _localctx = new InterfaceType_lf_classOrInterfaceTypeContext(_ctx, getState()); - enterRule(_localctx, 24, RULE_interfaceType_lf_classOrInterfaceType); - try { - enterOuterAlt(_localctx, 1); - { - setState(568); - classType_lf_classOrInterfaceType(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class InterfaceType_lfno_classOrInterfaceTypeContext extends ParserRuleContext { - public ClassType_lfno_classOrInterfaceTypeContext classType_lfno_classOrInterfaceType() { - return getRuleContext(ClassType_lfno_classOrInterfaceTypeContext.class,0); - } - public InterfaceType_lfno_classOrInterfaceTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_interfaceType_lfno_classOrInterfaceType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInterfaceType_lfno_classOrInterfaceType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceType_lfno_classOrInterfaceType(this); - } - } - - public final InterfaceType_lfno_classOrInterfaceTypeContext interfaceType_lfno_classOrInterfaceType() throws RecognitionException { - InterfaceType_lfno_classOrInterfaceTypeContext _localctx = new InterfaceType_lfno_classOrInterfaceTypeContext(_ctx, getState()); - enterRule(_localctx, 26, RULE_interfaceType_lfno_classOrInterfaceType); - try { - enterOuterAlt(_localctx, 1); - { - setState(570); - classType_lfno_classOrInterfaceType(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class TypeVariableContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public List annotation() { - return getRuleContexts(AnnotationContext.class); - } - public AnnotationContext annotation(int i) { - return getRuleContext(AnnotationContext.class,i); - } - public TypeVariableContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_typeVariable; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeVariable(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeVariable(this); - } - } - - public final TypeVariableContext typeVariable() throws RecognitionException { - TypeVariableContext _localctx = new TypeVariableContext(_ctx, getState()); - enterRule(_localctx, 28, RULE_typeVariable); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(575); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==AT) { - { - { - setState(572); - annotation(); - } - } - setState(577); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(578); - match(Identifier); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ArrayTypeContext extends ParserRuleContext { - public PrimitiveTypeContext primitiveType() { - return getRuleContext(PrimitiveTypeContext.class,0); - } - public DimsContext dims() { - return getRuleContext(DimsContext.class,0); - } - public ClassOrInterfaceTypeContext classOrInterfaceType() { - return getRuleContext(ClassOrInterfaceTypeContext.class,0); - } - public TypeVariableContext typeVariable() { - return getRuleContext(TypeVariableContext.class,0); - } - public ArrayTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_arrayType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterArrayType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitArrayType(this); - } - } - - public final ArrayTypeContext arrayType() throws RecognitionException { - ArrayTypeContext _localctx = new ArrayTypeContext(_ctx, getState()); - enterRule(_localctx, 30, RULE_arrayType); - try { - setState(589); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,18,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(580); - primitiveType(); - setState(581); - dims(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(583); - classOrInterfaceType(); - setState(584); - dims(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(586); - typeVariable(); - setState(587); - dims(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class DimsContext extends ParserRuleContext { - public List annotation() { - return getRuleContexts(AnnotationContext.class); - } - public AnnotationContext annotation(int i) { - return getRuleContext(AnnotationContext.class,i); - } - public DimsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_dims; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterDims(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitDims(this); - } - } - - public final DimsContext dims() throws RecognitionException { - DimsContext _localctx = new DimsContext(_ctx, getState()); - enterRule(_localctx, 32, RULE_dims); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(594); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==AT) { - { - { - setState(591); - annotation(); - } - } - setState(596); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(597); - match(LBRACK); - setState(598); - match(RBRACK); - setState(609); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,21,_ctx); - while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(602); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==AT) { - { - { - setState(599); - annotation(); - } - } - setState(604); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(605); - match(LBRACK); - setState(606); - match(RBRACK); - } - } - } - setState(611); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,21,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class TypeParameterContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public List typeParameterModifier() { - return getRuleContexts(TypeParameterModifierContext.class); - } - public TypeParameterModifierContext typeParameterModifier(int i) { - return getRuleContext(TypeParameterModifierContext.class,i); - } - public TypeBoundContext typeBound() { - return getRuleContext(TypeBoundContext.class,0); - } - public TypeParameterContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_typeParameter; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeParameter(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeParameter(this); - } - } - - public final TypeParameterContext typeParameter() throws RecognitionException { - TypeParameterContext _localctx = new TypeParameterContext(_ctx, getState()); - enterRule(_localctx, 34, RULE_typeParameter); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(615); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==AT) { - { - { - setState(612); - typeParameterModifier(); - } - } - setState(617); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(618); - match(Identifier); - setState(620); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==EXTENDS) { - { - setState(619); - typeBound(); - } - } - - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class TypeParameterModifierContext extends ParserRuleContext { - public AnnotationContext annotation() { - return getRuleContext(AnnotationContext.class,0); - } - public TypeParameterModifierContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_typeParameterModifier; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeParameterModifier(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeParameterModifier(this); - } - } - - public final TypeParameterModifierContext typeParameterModifier() throws RecognitionException { - TypeParameterModifierContext _localctx = new TypeParameterModifierContext(_ctx, getState()); - enterRule(_localctx, 36, RULE_typeParameterModifier); - try { - enterOuterAlt(_localctx, 1); - { - setState(622); - annotation(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class TypeBoundContext extends ParserRuleContext { - public TypeVariableContext typeVariable() { - return getRuleContext(TypeVariableContext.class,0); - } - public ClassOrInterfaceTypeContext classOrInterfaceType() { - return getRuleContext(ClassOrInterfaceTypeContext.class,0); - } - public List additionalBound() { - return getRuleContexts(AdditionalBoundContext.class); - } - public AdditionalBoundContext additionalBound(int i) { - return getRuleContext(AdditionalBoundContext.class,i); - } - public TypeBoundContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_typeBound; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeBound(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeBound(this); - } - } - - public final TypeBoundContext typeBound() throws RecognitionException { - TypeBoundContext _localctx = new TypeBoundContext(_ctx, getState()); - enterRule(_localctx, 38, RULE_typeBound); - int _la; - try { - setState(634); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,25,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(624); - match(EXTENDS); - setState(625); - typeVariable(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(626); - match(EXTENDS); - setState(627); - classOrInterfaceType(); - setState(631); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==BITAND) { - { - { - setState(628); - additionalBound(); - } - } - setState(633); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class AdditionalBoundContext extends ParserRuleContext { - public InterfaceTypeContext interfaceType() { - return getRuleContext(InterfaceTypeContext.class,0); - } - public AdditionalBoundContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_additionalBound; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAdditionalBound(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAdditionalBound(this); - } - } - - public final AdditionalBoundContext additionalBound() throws RecognitionException { - AdditionalBoundContext _localctx = new AdditionalBoundContext(_ctx, getState()); - enterRule(_localctx, 40, RULE_additionalBound); - try { - enterOuterAlt(_localctx, 1); - { - setState(636); - match(BITAND); - setState(637); - interfaceType(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class TypeArgumentsContext extends ParserRuleContext { - public TypeArgumentListContext typeArgumentList() { - return getRuleContext(TypeArgumentListContext.class,0); - } - public TypeArgumentsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_typeArguments; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeArguments(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeArguments(this); - } - } - - public final TypeArgumentsContext typeArguments() throws RecognitionException { - TypeArgumentsContext _localctx = new TypeArgumentsContext(_ctx, getState()); - enterRule(_localctx, 42, RULE_typeArguments); - try { - enterOuterAlt(_localctx, 1); - { - setState(639); - match(LT); - setState(640); - typeArgumentList(); - setState(641); - match(GT); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class TypeArgumentListContext extends ParserRuleContext { - public List typeArgument() { - return getRuleContexts(TypeArgumentContext.class); - } - public TypeArgumentContext typeArgument(int i) { - return getRuleContext(TypeArgumentContext.class,i); - } - public TypeArgumentListContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_typeArgumentList; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeArgumentList(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeArgumentList(this); - } - } - - public final TypeArgumentListContext typeArgumentList() throws RecognitionException { - TypeArgumentListContext _localctx = new TypeArgumentListContext(_ctx, getState()); - enterRule(_localctx, 44, RULE_typeArgumentList); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(643); - typeArgument(); - setState(648); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==COMMA) { - { - { - setState(644); - match(COMMA); - setState(645); - typeArgument(); - } - } - setState(650); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class TypeArgumentContext extends ParserRuleContext { - public ReferenceTypeContext referenceType() { - return getRuleContext(ReferenceTypeContext.class,0); - } - public WildcardContext wildcard() { - return getRuleContext(WildcardContext.class,0); - } - public TypeArgumentContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_typeArgument; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeArgument(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeArgument(this); - } - } - - public final TypeArgumentContext typeArgument() throws RecognitionException { - TypeArgumentContext _localctx = new TypeArgumentContext(_ctx, getState()); - enterRule(_localctx, 46, RULE_typeArgument); - try { - setState(653); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,27,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(651); - referenceType(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(652); - wildcard(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class WildcardContext extends ParserRuleContext { - public List annotation() { - return getRuleContexts(AnnotationContext.class); - } - public AnnotationContext annotation(int i) { - return getRuleContext(AnnotationContext.class,i); - } - public WildcardBoundsContext wildcardBounds() { - return getRuleContext(WildcardBoundsContext.class,0); - } - public WildcardContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_wildcard; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterWildcard(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitWildcard(this); - } - } - - public final WildcardContext wildcard() throws RecognitionException { - WildcardContext _localctx = new WildcardContext(_ctx, getState()); - enterRule(_localctx, 48, RULE_wildcard); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(658); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==AT) { - { - { - setState(655); - annotation(); - } - } - setState(660); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(661); - match(QUESTION); - setState(663); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==EXTENDS || _la==SUPER) { - { - setState(662); - wildcardBounds(); - } - } - - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class WildcardBoundsContext extends ParserRuleContext { - public ReferenceTypeContext referenceType() { - return getRuleContext(ReferenceTypeContext.class,0); - } - public WildcardBoundsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_wildcardBounds; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterWildcardBounds(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitWildcardBounds(this); - } - } - - public final WildcardBoundsContext wildcardBounds() throws RecognitionException { - WildcardBoundsContext _localctx = new WildcardBoundsContext(_ctx, getState()); - enterRule(_localctx, 50, RULE_wildcardBounds); - try { - setState(669); - _errHandler.sync(this); - switch (_input.LA(1)) { - case EXTENDS: - enterOuterAlt(_localctx, 1); - { - setState(665); - match(EXTENDS); - setState(666); - referenceType(); - } - break; - case SUPER: - enterOuterAlt(_localctx, 2); - { - setState(667); - match(SUPER); - setState(668); - referenceType(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class PackageNameContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public PackageNameContext packageName() { - return getRuleContext(PackageNameContext.class,0); - } - public PackageNameContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_packageName; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPackageName(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPackageName(this); - } - } - - public final PackageNameContext packageName() throws RecognitionException { - return packageName(0); - } - - private PackageNameContext packageName(int _p) throws RecognitionException { - ParserRuleContext _parentctx = _ctx; - int _parentState = getState(); - PackageNameContext _localctx = new PackageNameContext(_ctx, _parentState); - PackageNameContext _prevctx = _localctx; - int _startState = 52; - enterRecursionRule(_localctx, 52, RULE_packageName, _p); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - { - setState(672); - match(Identifier); - } - _ctx.stop = _input.LT(-1); - setState(679); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,31,_ctx); - while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - if ( _parseListeners!=null ) triggerExitRuleEvent(); - _prevctx = _localctx; - { - { - _localctx = new PackageNameContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_packageName); - setState(674); - if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(675); - match(DOT); - setState(676); - match(Identifier); - } - } - } - setState(681); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,31,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - unrollRecursionContexts(_parentctx); - } - return _localctx; - } - - public static class TypeNameContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public PackageOrTypeNameContext packageOrTypeName() { - return getRuleContext(PackageOrTypeNameContext.class,0); - } - public TypeNameContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_typeName; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeName(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeName(this); - } - } - - public final TypeNameContext typeName() throws RecognitionException { - TypeNameContext _localctx = new TypeNameContext(_ctx, getState()); - enterRule(_localctx, 54, RULE_typeName); - try { - setState(687); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,32,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(682); - match(Identifier); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(683); - packageOrTypeName(0); - setState(684); - match(DOT); - setState(685); - match(Identifier); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class PackageOrTypeNameContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public PackageOrTypeNameContext packageOrTypeName() { - return getRuleContext(PackageOrTypeNameContext.class,0); - } - public PackageOrTypeNameContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_packageOrTypeName; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPackageOrTypeName(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPackageOrTypeName(this); - } - } - - public final PackageOrTypeNameContext packageOrTypeName() throws RecognitionException { - return packageOrTypeName(0); - } - - private PackageOrTypeNameContext packageOrTypeName(int _p) throws RecognitionException { - ParserRuleContext _parentctx = _ctx; - int _parentState = getState(); - PackageOrTypeNameContext _localctx = new PackageOrTypeNameContext(_ctx, _parentState); - PackageOrTypeNameContext _prevctx = _localctx; - int _startState = 56; - enterRecursionRule(_localctx, 56, RULE_packageOrTypeName, _p); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - { - setState(690); - match(Identifier); - } - _ctx.stop = _input.LT(-1); - setState(697); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,33,_ctx); - while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - if ( _parseListeners!=null ) triggerExitRuleEvent(); - _prevctx = _localctx; - { - { - _localctx = new PackageOrTypeNameContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_packageOrTypeName); - setState(692); - if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(693); - match(DOT); - setState(694); - match(Identifier); - } - } - } - setState(699); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,33,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - unrollRecursionContexts(_parentctx); - } - return _localctx; - } - - public static class ExpressionNameContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public AmbiguousNameContext ambiguousName() { - return getRuleContext(AmbiguousNameContext.class,0); - } - public ExpressionNameContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_expressionName; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterExpressionName(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitExpressionName(this); - } - } - - public final ExpressionNameContext expressionName() throws RecognitionException { - ExpressionNameContext _localctx = new ExpressionNameContext(_ctx, getState()); - enterRule(_localctx, 58, RULE_expressionName); - try { - setState(705); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,34,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(700); - match(Identifier); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(701); - ambiguousName(0); - setState(702); - match(DOT); - setState(703); - match(Identifier); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class MethodNameContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public MethodNameContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_methodName; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodName(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodName(this); - } - } - - public final MethodNameContext methodName() throws RecognitionException { - MethodNameContext _localctx = new MethodNameContext(_ctx, getState()); - enterRule(_localctx, 60, RULE_methodName); - try { - enterOuterAlt(_localctx, 1); - { - setState(707); - match(Identifier); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class AmbiguousNameContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public AmbiguousNameContext ambiguousName() { - return getRuleContext(AmbiguousNameContext.class,0); - } - public AmbiguousNameContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_ambiguousName; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAmbiguousName(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAmbiguousName(this); - } - } - - public final AmbiguousNameContext ambiguousName() throws RecognitionException { - return ambiguousName(0); - } - - private AmbiguousNameContext ambiguousName(int _p) throws RecognitionException { - ParserRuleContext _parentctx = _ctx; - int _parentState = getState(); - AmbiguousNameContext _localctx = new AmbiguousNameContext(_ctx, _parentState); - AmbiguousNameContext _prevctx = _localctx; - int _startState = 62; - enterRecursionRule(_localctx, 62, RULE_ambiguousName, _p); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - { - setState(710); - match(Identifier); - } - _ctx.stop = _input.LT(-1); - setState(717); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,35,_ctx); - while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - if ( _parseListeners!=null ) triggerExitRuleEvent(); - _prevctx = _localctx; - { - { - _localctx = new AmbiguousNameContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_ambiguousName); - setState(712); - if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(713); - match(DOT); - setState(714); - match(Identifier); - } - } - } - setState(719); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,35,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - unrollRecursionContexts(_parentctx); - } - return _localctx; - } - - public static class CompilationUnitContext extends ParserRuleContext { - public TerminalNode EOF() { return getToken(Java8Parser.EOF, 0); } - public PackageDeclarationContext packageDeclaration() { - return getRuleContext(PackageDeclarationContext.class,0); - } - public List importDeclaration() { - return getRuleContexts(ImportDeclarationContext.class); - } - public ImportDeclarationContext importDeclaration(int i) { - return getRuleContext(ImportDeclarationContext.class,i); - } - public List typeDeclaration() { - return getRuleContexts(TypeDeclarationContext.class); - } - public TypeDeclarationContext typeDeclaration(int i) { - return getRuleContext(TypeDeclarationContext.class,i); - } - public CompilationUnitContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_compilationUnit; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterCompilationUnit(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitCompilationUnit(this); - } - } - - public final CompilationUnitContext compilationUnit() throws RecognitionException { - CompilationUnitContext _localctx = new CompilationUnitContext(_ctx, getState()); - enterRule(_localctx, 64, RULE_compilationUnit); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(721); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,36,_ctx) ) { - case 1: - { - setState(720); - packageDeclaration(); - } - break; - } - setState(726); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==IMPORT) { - { - { - setState(723); - importDeclaration(); - } - } - setState(728); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(732); - _errHandler.sync(this); - _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << CLASS) | (1L << ENUM) | (1L << FINAL) | (1L << INTERFACE) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << STATIC) | (1L << STRICTFP))) != 0) || _la==SEMI || _la==AT) { - { - { - setState(729); - typeDeclaration(); - } - } - setState(734); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(735); - match(EOF); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class PackageDeclarationContext extends ParserRuleContext { - public List Identifier() { return getTokens(Java8Parser.Identifier); } - public TerminalNode Identifier(int i) { - return getToken(Java8Parser.Identifier, i); - } - public List packageModifier() { - return getRuleContexts(PackageModifierContext.class); - } - public PackageModifierContext packageModifier(int i) { - return getRuleContext(PackageModifierContext.class,i); - } - public PackageDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_packageDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPackageDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPackageDeclaration(this); - } - } - - public final PackageDeclarationContext packageDeclaration() throws RecognitionException { - PackageDeclarationContext _localctx = new PackageDeclarationContext(_ctx, getState()); - enterRule(_localctx, 66, RULE_packageDeclaration); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(740); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==AT) { - { - { - setState(737); - packageModifier(); - } - } - setState(742); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(743); - match(PACKAGE); - setState(744); - match(Identifier); - setState(749); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==DOT) { - { - { - setState(745); - match(DOT); - setState(746); - match(Identifier); - } - } - setState(751); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(752); - match(SEMI); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class PackageModifierContext extends ParserRuleContext { - public AnnotationContext annotation() { - return getRuleContext(AnnotationContext.class,0); - } - public PackageModifierContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_packageModifier; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPackageModifier(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPackageModifier(this); - } - } - - public final PackageModifierContext packageModifier() throws RecognitionException { - PackageModifierContext _localctx = new PackageModifierContext(_ctx, getState()); - enterRule(_localctx, 68, RULE_packageModifier); - try { - enterOuterAlt(_localctx, 1); - { - setState(754); - annotation(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ImportDeclarationContext extends ParserRuleContext { - public SingleTypeImportDeclarationContext singleTypeImportDeclaration() { - return getRuleContext(SingleTypeImportDeclarationContext.class,0); - } - public TypeImportOnDemandDeclarationContext typeImportOnDemandDeclaration() { - return getRuleContext(TypeImportOnDemandDeclarationContext.class,0); - } - public SingleStaticImportDeclarationContext singleStaticImportDeclaration() { - return getRuleContext(SingleStaticImportDeclarationContext.class,0); - } - public StaticImportOnDemandDeclarationContext staticImportOnDemandDeclaration() { - return getRuleContext(StaticImportOnDemandDeclarationContext.class,0); - } - public ImportDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_importDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterImportDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitImportDeclaration(this); - } - } - - public final ImportDeclarationContext importDeclaration() throws RecognitionException { - ImportDeclarationContext _localctx = new ImportDeclarationContext(_ctx, getState()); - enterRule(_localctx, 70, RULE_importDeclaration); - try { - setState(760); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,41,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(756); - singleTypeImportDeclaration(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(757); - typeImportOnDemandDeclaration(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(758); - singleStaticImportDeclaration(); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(759); - staticImportOnDemandDeclaration(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class SingleTypeImportDeclarationContext extends ParserRuleContext { - public TypeNameContext typeName() { - return getRuleContext(TypeNameContext.class,0); - } - public SingleTypeImportDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_singleTypeImportDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSingleTypeImportDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSingleTypeImportDeclaration(this); - } - } - - public final SingleTypeImportDeclarationContext singleTypeImportDeclaration() throws RecognitionException { - SingleTypeImportDeclarationContext _localctx = new SingleTypeImportDeclarationContext(_ctx, getState()); - enterRule(_localctx, 72, RULE_singleTypeImportDeclaration); - try { - enterOuterAlt(_localctx, 1); - { - setState(762); - match(IMPORT); - setState(763); - typeName(); - setState(764); - match(SEMI); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class TypeImportOnDemandDeclarationContext extends ParserRuleContext { - public PackageOrTypeNameContext packageOrTypeName() { - return getRuleContext(PackageOrTypeNameContext.class,0); - } - public TypeImportOnDemandDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_typeImportOnDemandDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeImportOnDemandDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeImportOnDemandDeclaration(this); - } - } - - public final TypeImportOnDemandDeclarationContext typeImportOnDemandDeclaration() throws RecognitionException { - TypeImportOnDemandDeclarationContext _localctx = new TypeImportOnDemandDeclarationContext(_ctx, getState()); - enterRule(_localctx, 74, RULE_typeImportOnDemandDeclaration); - try { - enterOuterAlt(_localctx, 1); - { - setState(766); - match(IMPORT); - setState(767); - packageOrTypeName(0); - setState(768); - match(DOT); - setState(769); - match(MUL); - setState(770); - match(SEMI); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class SingleStaticImportDeclarationContext extends ParserRuleContext { - public TypeNameContext typeName() { - return getRuleContext(TypeNameContext.class,0); - } - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public SingleStaticImportDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_singleStaticImportDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSingleStaticImportDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSingleStaticImportDeclaration(this); - } - } - - public final SingleStaticImportDeclarationContext singleStaticImportDeclaration() throws RecognitionException { - SingleStaticImportDeclarationContext _localctx = new SingleStaticImportDeclarationContext(_ctx, getState()); - enterRule(_localctx, 76, RULE_singleStaticImportDeclaration); - try { - enterOuterAlt(_localctx, 1); - { - setState(772); - match(IMPORT); - setState(773); - match(STATIC); - setState(774); - typeName(); - setState(775); - match(DOT); - setState(776); - match(Identifier); - setState(777); - match(SEMI); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class StaticImportOnDemandDeclarationContext extends ParserRuleContext { - public TypeNameContext typeName() { - return getRuleContext(TypeNameContext.class,0); - } - public StaticImportOnDemandDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_staticImportOnDemandDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterStaticImportOnDemandDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitStaticImportOnDemandDeclaration(this); - } - } - - public final StaticImportOnDemandDeclarationContext staticImportOnDemandDeclaration() throws RecognitionException { - StaticImportOnDemandDeclarationContext _localctx = new StaticImportOnDemandDeclarationContext(_ctx, getState()); - enterRule(_localctx, 78, RULE_staticImportOnDemandDeclaration); - try { - enterOuterAlt(_localctx, 1); - { - setState(779); - match(IMPORT); - setState(780); - match(STATIC); - setState(781); - typeName(); - setState(782); - match(DOT); - setState(783); - match(MUL); - setState(784); - match(SEMI); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class TypeDeclarationContext extends ParserRuleContext { - public ClassDeclarationContext classDeclaration() { - return getRuleContext(ClassDeclarationContext.class,0); - } - public InterfaceDeclarationContext interfaceDeclaration() { - return getRuleContext(InterfaceDeclarationContext.class,0); - } - public TypeDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_typeDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeDeclaration(this); - } - } - - public final TypeDeclarationContext typeDeclaration() throws RecognitionException { - TypeDeclarationContext _localctx = new TypeDeclarationContext(_ctx, getState()); - enterRule(_localctx, 80, RULE_typeDeclaration); - try { - setState(789); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,42,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(786); - classDeclaration(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(787); - interfaceDeclaration(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(788); - match(SEMI); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ClassDeclarationContext extends ParserRuleContext { - public NormalClassDeclarationContext normalClassDeclaration() { - return getRuleContext(NormalClassDeclarationContext.class,0); - } - public EnumDeclarationContext enumDeclaration() { - return getRuleContext(EnumDeclarationContext.class,0); - } - public ClassDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_classDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassDeclaration(this); - } - } - - public final ClassDeclarationContext classDeclaration() throws RecognitionException { - ClassDeclarationContext _localctx = new ClassDeclarationContext(_ctx, getState()); - enterRule(_localctx, 82, RULE_classDeclaration); - try { - setState(793); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,43,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(791); - normalClassDeclaration(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(792); - enumDeclaration(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class NormalClassDeclarationContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public ClassBodyContext classBody() { - return getRuleContext(ClassBodyContext.class,0); - } - public List classModifier() { - return getRuleContexts(ClassModifierContext.class); - } - public ClassModifierContext classModifier(int i) { - return getRuleContext(ClassModifierContext.class,i); - } - public TypeParametersContext typeParameters() { - return getRuleContext(TypeParametersContext.class,0); - } - public SuperclassContext superclass() { - return getRuleContext(SuperclassContext.class,0); - } - public SuperinterfacesContext superinterfaces() { - return getRuleContext(SuperinterfacesContext.class,0); - } - public NormalClassDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_normalClassDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterNormalClassDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitNormalClassDeclaration(this); - } - } - - public final NormalClassDeclarationContext normalClassDeclaration() throws RecognitionException { - NormalClassDeclarationContext _localctx = new NormalClassDeclarationContext(_ctx, getState()); - enterRule(_localctx, 84, RULE_normalClassDeclaration); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(798); - _errHandler.sync(this); - _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << FINAL) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << STATIC) | (1L << STRICTFP))) != 0) || _la==AT) { - { - { - setState(795); - classModifier(); - } - } - setState(800); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(801); - match(CLASS); - setState(802); - match(Identifier); - setState(804); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(803); - typeParameters(); - } - } - - setState(807); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==EXTENDS) { - { - setState(806); - superclass(); - } - } - - setState(810); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==IMPLEMENTS) { - { - setState(809); - superinterfaces(); - } - } - - setState(812); - classBody(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ClassModifierContext extends ParserRuleContext { - public AnnotationContext annotation() { - return getRuleContext(AnnotationContext.class,0); - } - public ClassModifierContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_classModifier; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassModifier(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassModifier(this); - } - } - - public final ClassModifierContext classModifier() throws RecognitionException { - ClassModifierContext _localctx = new ClassModifierContext(_ctx, getState()); - enterRule(_localctx, 86, RULE_classModifier); - try { - setState(822); - _errHandler.sync(this); - switch (_input.LA(1)) { - case AT: - enterOuterAlt(_localctx, 1); - { - setState(814); - annotation(); - } - break; - case PUBLIC: - enterOuterAlt(_localctx, 2); - { - setState(815); - match(PUBLIC); - } - break; - case PROTECTED: - enterOuterAlt(_localctx, 3); - { - setState(816); - match(PROTECTED); - } - break; - case PRIVATE: - enterOuterAlt(_localctx, 4); - { - setState(817); - match(PRIVATE); - } - break; - case ABSTRACT: - enterOuterAlt(_localctx, 5); - { - setState(818); - match(ABSTRACT); - } - break; - case STATIC: - enterOuterAlt(_localctx, 6); - { - setState(819); - match(STATIC); - } - break; - case FINAL: - enterOuterAlt(_localctx, 7); - { - setState(820); - match(FINAL); - } - break; - case STRICTFP: - enterOuterAlt(_localctx, 8); - { - setState(821); - match(STRICTFP); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class TypeParametersContext extends ParserRuleContext { - public TypeParameterListContext typeParameterList() { - return getRuleContext(TypeParameterListContext.class,0); - } - public TypeParametersContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_typeParameters; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeParameters(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeParameters(this); - } - } - - public final TypeParametersContext typeParameters() throws RecognitionException { - TypeParametersContext _localctx = new TypeParametersContext(_ctx, getState()); - enterRule(_localctx, 88, RULE_typeParameters); - try { - enterOuterAlt(_localctx, 1); - { - setState(824); - match(LT); - setState(825); - typeParameterList(); - setState(826); - match(GT); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class TypeParameterListContext extends ParserRuleContext { - public List typeParameter() { - return getRuleContexts(TypeParameterContext.class); - } - public TypeParameterContext typeParameter(int i) { - return getRuleContext(TypeParameterContext.class,i); - } - public TypeParameterListContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_typeParameterList; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeParameterList(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeParameterList(this); - } - } - - public final TypeParameterListContext typeParameterList() throws RecognitionException { - TypeParameterListContext _localctx = new TypeParameterListContext(_ctx, getState()); - enterRule(_localctx, 90, RULE_typeParameterList); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(828); - typeParameter(); - setState(833); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==COMMA) { - { - { - setState(829); - match(COMMA); - setState(830); - typeParameter(); - } - } - setState(835); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class SuperclassContext extends ParserRuleContext { - public ClassTypeContext classType() { - return getRuleContext(ClassTypeContext.class,0); - } - public SuperclassContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_superclass; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSuperclass(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSuperclass(this); - } - } - - public final SuperclassContext superclass() throws RecognitionException { - SuperclassContext _localctx = new SuperclassContext(_ctx, getState()); - enterRule(_localctx, 92, RULE_superclass); - try { - enterOuterAlt(_localctx, 1); - { - setState(836); - match(EXTENDS); - setState(837); - classType(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class SuperinterfacesContext extends ParserRuleContext { - public InterfaceTypeListContext interfaceTypeList() { - return getRuleContext(InterfaceTypeListContext.class,0); - } - public SuperinterfacesContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_superinterfaces; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSuperinterfaces(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSuperinterfaces(this); - } - } - - public final SuperinterfacesContext superinterfaces() throws RecognitionException { - SuperinterfacesContext _localctx = new SuperinterfacesContext(_ctx, getState()); - enterRule(_localctx, 94, RULE_superinterfaces); - try { - enterOuterAlt(_localctx, 1); - { - setState(839); - match(IMPLEMENTS); - setState(840); - interfaceTypeList(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class InterfaceTypeListContext extends ParserRuleContext { - public List interfaceType() { - return getRuleContexts(InterfaceTypeContext.class); - } - public InterfaceTypeContext interfaceType(int i) { - return getRuleContext(InterfaceTypeContext.class,i); - } - public InterfaceTypeListContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_interfaceTypeList; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInterfaceTypeList(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceTypeList(this); - } - } - - public final InterfaceTypeListContext interfaceTypeList() throws RecognitionException { - InterfaceTypeListContext _localctx = new InterfaceTypeListContext(_ctx, getState()); - enterRule(_localctx, 96, RULE_interfaceTypeList); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(842); - interfaceType(); - setState(847); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==COMMA) { - { - { - setState(843); - match(COMMA); - setState(844); - interfaceType(); - } - } - setState(849); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ClassBodyContext extends ParserRuleContext { - public List classBodyDeclaration() { - return getRuleContexts(ClassBodyDeclarationContext.class); - } - public ClassBodyDeclarationContext classBodyDeclaration(int i) { - return getRuleContext(ClassBodyDeclarationContext.class,i); - } - public ClassBodyContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_classBody; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassBody(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassBody(this); - } - } - - public final ClassBodyContext classBody() throws RecognitionException { - ClassBodyContext _localctx = new ClassBodyContext(_ctx, getState()); - enterRule(_localctx, 98, RULE_classBody); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(850); - match(LBRACE); - setState(854); - _errHandler.sync(this); - _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (1L << ABSTRACT) | (1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << INTERFACE) | (1L << LONG) | (1L << NATIVE) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << SYNCHRONIZED) | (1L << TRANSIENT) | (1L << VOID) | (1L << VOLATILE) | (1L << LBRACE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (SEMI - 64)) | (1L << (LT - 64)) | (1L << (Identifier - 64)) | (1L << (AT - 64)))) != 0)) { - { - { - setState(851); - classBodyDeclaration(); - } - } - setState(856); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(857); - match(RBRACE); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ClassBodyDeclarationContext extends ParserRuleContext { - public ClassMemberDeclarationContext classMemberDeclaration() { - return getRuleContext(ClassMemberDeclarationContext.class,0); - } - public InstanceInitializerContext instanceInitializer() { - return getRuleContext(InstanceInitializerContext.class,0); - } - public StaticInitializerContext staticInitializer() { - return getRuleContext(StaticInitializerContext.class,0); - } - public ClassBodyDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_classBodyDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassBodyDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassBodyDeclaration(this); - } - } - - public final ClassBodyDeclarationContext classBodyDeclaration() throws RecognitionException { - ClassBodyDeclarationContext _localctx = new ClassBodyDeclarationContext(_ctx, getState()); - enterRule(_localctx, 100, RULE_classBodyDeclaration); - try { - setState(862); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,52,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(859); - classMemberDeclaration(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(860); - instanceInitializer(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(861); - staticInitializer(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ClassMemberDeclarationContext extends ParserRuleContext { - public FieldDeclarationContext fieldDeclaration() { - return getRuleContext(FieldDeclarationContext.class,0); - } - public MethodDeclarationContext methodDeclaration() { - return getRuleContext(MethodDeclarationContext.class,0); - } - public ClassDeclarationContext classDeclaration() { - return getRuleContext(ClassDeclarationContext.class,0); - } - public InterfaceDeclarationContext interfaceDeclaration() { - return getRuleContext(InterfaceDeclarationContext.class,0); - } - public ClassMemberDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_classMemberDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassMemberDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassMemberDeclaration(this); - } - } - - public final ClassMemberDeclarationContext classMemberDeclaration() throws RecognitionException { - ClassMemberDeclarationContext _localctx = new ClassMemberDeclarationContext(_ctx, getState()); - enterRule(_localctx, 102, RULE_classMemberDeclaration); - try { - setState(869); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,53,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(864); - fieldDeclaration(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(865); - methodDeclaration(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(866); - classDeclaration(); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(867); - interfaceDeclaration(); - } - break; - case 5: - enterOuterAlt(_localctx, 5); - { - setState(868); - match(SEMI); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class FieldDeclarationContext extends ParserRuleContext { - public VariableDeclaratorListContext variableDeclaratorList() { - return getRuleContext(VariableDeclaratorListContext.class,0); - } - public List fieldModifier() { - return getRuleContexts(FieldModifierContext.class); - } - public FieldModifierContext fieldModifier(int i) { - return getRuleContext(FieldModifierContext.class,i); - } - public UnannTypeOrAutoContext unannTypeOrAuto() { - return getRuleContext(UnannTypeOrAutoContext.class,0); - } - public FieldDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_fieldDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterFieldDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFieldDeclaration(this); - } - } - - public final FieldDeclarationContext fieldDeclaration() throws RecognitionException { - FieldDeclarationContext _localctx = new FieldDeclarationContext(_ctx, getState()); - enterRule(_localctx, 104, RULE_fieldDeclaration); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(874); - _errHandler.sync(this); - _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << FINAL) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << STATIC) | (1L << TRANSIENT) | (1L << VOLATILE))) != 0) || _la==AT) { - { - { - setState(871); - fieldModifier(); - } - } - setState(876); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(878); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,55,_ctx) ) { - case 1: - { - setState(877); - unannTypeOrAuto(); - } - break; - } - setState(880); - variableDeclaratorList(); - setState(881); - match(SEMI); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class FieldModifierContext extends ParserRuleContext { - public AnnotationContext annotation() { - return getRuleContext(AnnotationContext.class,0); - } - public FieldModifierContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_fieldModifier; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterFieldModifier(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFieldModifier(this); - } - } - - public final FieldModifierContext fieldModifier() throws RecognitionException { - FieldModifierContext _localctx = new FieldModifierContext(_ctx, getState()); - enterRule(_localctx, 106, RULE_fieldModifier); - try { - setState(891); - _errHandler.sync(this); - switch (_input.LA(1)) { - case AT: - enterOuterAlt(_localctx, 1); - { - setState(883); - annotation(); - } - break; - case PUBLIC: - enterOuterAlt(_localctx, 2); - { - setState(884); - match(PUBLIC); - } - break; - case PROTECTED: - enterOuterAlt(_localctx, 3); - { - setState(885); - match(PROTECTED); - } - break; - case PRIVATE: - enterOuterAlt(_localctx, 4); - { - setState(886); - match(PRIVATE); - } - break; - case STATIC: - enterOuterAlt(_localctx, 5); - { - setState(887); - match(STATIC); - } - break; - case FINAL: - enterOuterAlt(_localctx, 6); - { - setState(888); - match(FINAL); - } - break; - case TRANSIENT: - enterOuterAlt(_localctx, 7); - { - setState(889); - match(TRANSIENT); - } - break; - case VOLATILE: - enterOuterAlt(_localctx, 8); - { - setState(890); - match(VOLATILE); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class VariableDeclaratorListContext extends ParserRuleContext { - public List variableDeclarator() { - return getRuleContexts(VariableDeclaratorContext.class); - } - public VariableDeclaratorContext variableDeclarator(int i) { - return getRuleContext(VariableDeclaratorContext.class,i); - } - public VariableDeclaratorListContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_variableDeclaratorList; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterVariableDeclaratorList(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitVariableDeclaratorList(this); - } - } - - public final VariableDeclaratorListContext variableDeclaratorList() throws RecognitionException { - VariableDeclaratorListContext _localctx = new VariableDeclaratorListContext(_ctx, getState()); - enterRule(_localctx, 108, RULE_variableDeclaratorList); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(893); - variableDeclarator(); - setState(898); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==COMMA) { - { - { - setState(894); - match(COMMA); - setState(895); - variableDeclarator(); - } - } - setState(900); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class VariableDeclaratorContext extends ParserRuleContext { - public VariableDeclaratorIdContext variableDeclaratorId() { - return getRuleContext(VariableDeclaratorIdContext.class,0); - } - public VariableInitializerContext variableInitializer() { - return getRuleContext(VariableInitializerContext.class,0); - } - public VariableDeclaratorContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_variableDeclarator; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterVariableDeclarator(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitVariableDeclarator(this); - } - } - - public final VariableDeclaratorContext variableDeclarator() throws RecognitionException { - VariableDeclaratorContext _localctx = new VariableDeclaratorContext(_ctx, getState()); - enterRule(_localctx, 110, RULE_variableDeclarator); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(901); - variableDeclaratorId(); - setState(904); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==ASSIGN) { - { - setState(902); - match(ASSIGN); - setState(903); - variableInitializer(); - } - } - - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class VariableDeclaratorIdContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public DimsContext dims() { - return getRuleContext(DimsContext.class,0); - } - public VariableDeclaratorIdContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_variableDeclaratorId; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterVariableDeclaratorId(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitVariableDeclaratorId(this); - } - } - - public final VariableDeclaratorIdContext variableDeclaratorId() throws RecognitionException { - VariableDeclaratorIdContext _localctx = new VariableDeclaratorIdContext(_ctx, getState()); - enterRule(_localctx, 112, RULE_variableDeclaratorId); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(906); - match(Identifier); - setState(908); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LBRACK || _la==AT) { - { - setState(907); - dims(); - } - } - - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class VariableInitializerContext extends ParserRuleContext { - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public ArrayInitializerContext arrayInitializer() { - return getRuleContext(ArrayInitializerContext.class,0); - } - public VariableInitializerContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_variableInitializer; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterVariableInitializer(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitVariableInitializer(this); - } - } - - public final VariableInitializerContext variableInitializer() throws RecognitionException { - VariableInitializerContext _localctx = new VariableInitializerContext(_ctx, getState()); - enterRule(_localctx, 114, RULE_variableInitializer); - try { - setState(912); - _errHandler.sync(this); - switch (_input.LA(1)) { - case BOOLEAN: - case BYTE: - case CHAR: - case DOUBLE: - case FLOAT: - case INT: - case LONG: - case NEW: - case SHORT: - case SUPER: - case THIS: - case VOID: - case IntegerLiteral: - case FloatingPointLiteral: - case BooleanLiteral: - case CharacterLiteral: - case StringLiteral: - case NullLiteral: - case LPAREN: - case BANG: - case TILDE: - case INC: - case DEC: - case ADD: - case SUB: - case Identifier: - case AT: - enterOuterAlt(_localctx, 1); - { - setState(910); - expression(); - } - break; - case LBRACE: - enterOuterAlt(_localctx, 2); - { - setState(911); - arrayInitializer(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class UnannTypeContext extends ParserRuleContext { - public UnannPrimitiveTypeContext unannPrimitiveType() { - return getRuleContext(UnannPrimitiveTypeContext.class,0); - } - public UnannReferenceTypeContext unannReferenceType() { - return getRuleContext(UnannReferenceTypeContext.class,0); - } - public UnannTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_unannType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannType(this); - } - } - - public final UnannTypeContext unannType() throws RecognitionException { - UnannTypeContext _localctx = new UnannTypeContext(_ctx, getState()); - enterRule(_localctx, 116, RULE_unannType); - try { - setState(916); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,61,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(914); - unannPrimitiveType(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(915); - unannReferenceType(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class UnannPrimitiveTypeContext extends ParserRuleContext { - public NumericTypeContext numericType() { - return getRuleContext(NumericTypeContext.class,0); - } - public UnannPrimitiveTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_unannPrimitiveType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannPrimitiveType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannPrimitiveType(this); - } - } - - public final UnannPrimitiveTypeContext unannPrimitiveType() throws RecognitionException { - UnannPrimitiveTypeContext _localctx = new UnannPrimitiveTypeContext(_ctx, getState()); - enterRule(_localctx, 118, RULE_unannPrimitiveType); - try { - setState(920); - _errHandler.sync(this); - switch (_input.LA(1)) { - case BYTE: - case CHAR: - case DOUBLE: - case FLOAT: - case INT: - case LONG: - case SHORT: - enterOuterAlt(_localctx, 1); - { - setState(918); - numericType(); - } - break; - case BOOLEAN: - enterOuterAlt(_localctx, 2); - { - setState(919); - match(BOOLEAN); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class UnannReferenceTypeContext extends ParserRuleContext { - public UnannClassOrInterfaceTypeContext unannClassOrInterfaceType() { - return getRuleContext(UnannClassOrInterfaceTypeContext.class,0); - } - public UnannTypeVariableContext unannTypeVariable() { - return getRuleContext(UnannTypeVariableContext.class,0); - } - public UnannArrayTypeContext unannArrayType() { - return getRuleContext(UnannArrayTypeContext.class,0); - } - public UnannReferenceTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_unannReferenceType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannReferenceType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannReferenceType(this); - } - } - - public final UnannReferenceTypeContext unannReferenceType() throws RecognitionException { - UnannReferenceTypeContext _localctx = new UnannReferenceTypeContext(_ctx, getState()); - enterRule(_localctx, 120, RULE_unannReferenceType); - try { - setState(925); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,63,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(922); - unannClassOrInterfaceType(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(923); - unannTypeVariable(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(924); - unannArrayType(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class UnannClassOrInterfaceTypeContext extends ParserRuleContext { - public UnannClassType_lfno_unannClassOrInterfaceTypeContext unannClassType_lfno_unannClassOrInterfaceType() { - return getRuleContext(UnannClassType_lfno_unannClassOrInterfaceTypeContext.class,0); - } - public UnannInterfaceType_lfno_unannClassOrInterfaceTypeContext unannInterfaceType_lfno_unannClassOrInterfaceType() { - return getRuleContext(UnannInterfaceType_lfno_unannClassOrInterfaceTypeContext.class,0); - } - public List unannClassType_lf_unannClassOrInterfaceType() { - return getRuleContexts(UnannClassType_lf_unannClassOrInterfaceTypeContext.class); - } - public UnannClassType_lf_unannClassOrInterfaceTypeContext unannClassType_lf_unannClassOrInterfaceType(int i) { - return getRuleContext(UnannClassType_lf_unannClassOrInterfaceTypeContext.class,i); - } - public List unannInterfaceType_lf_unannClassOrInterfaceType() { - return getRuleContexts(UnannInterfaceType_lf_unannClassOrInterfaceTypeContext.class); - } - public UnannInterfaceType_lf_unannClassOrInterfaceTypeContext unannInterfaceType_lf_unannClassOrInterfaceType(int i) { - return getRuleContext(UnannInterfaceType_lf_unannClassOrInterfaceTypeContext.class,i); - } - public UnannClassOrInterfaceTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_unannClassOrInterfaceType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannClassOrInterfaceType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannClassOrInterfaceType(this); - } - } - - public final UnannClassOrInterfaceTypeContext unannClassOrInterfaceType() throws RecognitionException { - UnannClassOrInterfaceTypeContext _localctx = new UnannClassOrInterfaceTypeContext(_ctx, getState()); - enterRule(_localctx, 122, RULE_unannClassOrInterfaceType); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(929); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,64,_ctx) ) { - case 1: - { - setState(927); - unannClassType_lfno_unannClassOrInterfaceType(); - } - break; - case 2: - { - setState(928); - unannInterfaceType_lfno_unannClassOrInterfaceType(); - } - break; - } - setState(935); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,66,_ctx); - while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - setState(933); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,65,_ctx) ) { - case 1: - { - setState(931); - unannClassType_lf_unannClassOrInterfaceType(); - } - break; - case 2: - { - setState(932); - unannInterfaceType_lf_unannClassOrInterfaceType(); - } - break; - } - } - } - setState(937); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,66,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class UnannClassTypeContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public TypeArgumentsContext typeArguments() { - return getRuleContext(TypeArgumentsContext.class,0); - } - public UnannClassOrInterfaceTypeContext unannClassOrInterfaceType() { - return getRuleContext(UnannClassOrInterfaceTypeContext.class,0); - } - public List annotation() { - return getRuleContexts(AnnotationContext.class); - } - public AnnotationContext annotation(int i) { - return getRuleContext(AnnotationContext.class,i); - } - public UnannClassTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_unannClassType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannClassType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannClassType(this); - } - } - - public final UnannClassTypeContext unannClassType() throws RecognitionException { - UnannClassTypeContext _localctx = new UnannClassTypeContext(_ctx, getState()); - enterRule(_localctx, 124, RULE_unannClassType); - int _la; - try { - setState(954); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,70,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(938); - match(Identifier); - setState(940); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(939); - typeArguments(); - } - } - - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(942); - unannClassOrInterfaceType(); - setState(943); - match(DOT); - setState(947); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==AT) { - { - { - setState(944); - annotation(); - } - } - setState(949); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(950); - match(Identifier); - setState(952); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(951); - typeArguments(); - } - } - - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class UnannClassType_lf_unannClassOrInterfaceTypeContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public List annotation() { - return getRuleContexts(AnnotationContext.class); - } - public AnnotationContext annotation(int i) { - return getRuleContext(AnnotationContext.class,i); - } - public TypeArgumentsContext typeArguments() { - return getRuleContext(TypeArgumentsContext.class,0); - } - public UnannClassType_lf_unannClassOrInterfaceTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_unannClassType_lf_unannClassOrInterfaceType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannClassType_lf_unannClassOrInterfaceType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannClassType_lf_unannClassOrInterfaceType(this); - } - } - - public final UnannClassType_lf_unannClassOrInterfaceTypeContext unannClassType_lf_unannClassOrInterfaceType() throws RecognitionException { - UnannClassType_lf_unannClassOrInterfaceTypeContext _localctx = new UnannClassType_lf_unannClassOrInterfaceTypeContext(_ctx, getState()); - enterRule(_localctx, 126, RULE_unannClassType_lf_unannClassOrInterfaceType); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(956); - match(DOT); - setState(960); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==AT) { - { - { - setState(957); - annotation(); - } - } - setState(962); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(963); - match(Identifier); - setState(965); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(964); - typeArguments(); - } - } - - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class UnannClassType_lfno_unannClassOrInterfaceTypeContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public TypeArgumentsContext typeArguments() { - return getRuleContext(TypeArgumentsContext.class,0); - } - public UnannClassType_lfno_unannClassOrInterfaceTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_unannClassType_lfno_unannClassOrInterfaceType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannClassType_lfno_unannClassOrInterfaceType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannClassType_lfno_unannClassOrInterfaceType(this); - } - } - - public final UnannClassType_lfno_unannClassOrInterfaceTypeContext unannClassType_lfno_unannClassOrInterfaceType() throws RecognitionException { - UnannClassType_lfno_unannClassOrInterfaceTypeContext _localctx = new UnannClassType_lfno_unannClassOrInterfaceTypeContext(_ctx, getState()); - enterRule(_localctx, 128, RULE_unannClassType_lfno_unannClassOrInterfaceType); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(967); - match(Identifier); - setState(969); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(968); - typeArguments(); - } - } - - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class UnannInterfaceTypeContext extends ParserRuleContext { - public UnannClassTypeContext unannClassType() { - return getRuleContext(UnannClassTypeContext.class,0); - } - public UnannInterfaceTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_unannInterfaceType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannInterfaceType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannInterfaceType(this); - } - } - - public final UnannInterfaceTypeContext unannInterfaceType() throws RecognitionException { - UnannInterfaceTypeContext _localctx = new UnannInterfaceTypeContext(_ctx, getState()); - enterRule(_localctx, 130, RULE_unannInterfaceType); - try { - enterOuterAlt(_localctx, 1); - { - setState(971); - unannClassType(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class UnannInterfaceType_lf_unannClassOrInterfaceTypeContext extends ParserRuleContext { - public UnannClassType_lf_unannClassOrInterfaceTypeContext unannClassType_lf_unannClassOrInterfaceType() { - return getRuleContext(UnannClassType_lf_unannClassOrInterfaceTypeContext.class,0); - } - public UnannInterfaceType_lf_unannClassOrInterfaceTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_unannInterfaceType_lf_unannClassOrInterfaceType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannInterfaceType_lf_unannClassOrInterfaceType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannInterfaceType_lf_unannClassOrInterfaceType(this); - } - } - - public final UnannInterfaceType_lf_unannClassOrInterfaceTypeContext unannInterfaceType_lf_unannClassOrInterfaceType() throws RecognitionException { - UnannInterfaceType_lf_unannClassOrInterfaceTypeContext _localctx = new UnannInterfaceType_lf_unannClassOrInterfaceTypeContext(_ctx, getState()); - enterRule(_localctx, 132, RULE_unannInterfaceType_lf_unannClassOrInterfaceType); - try { - enterOuterAlt(_localctx, 1); - { - setState(973); - unannClassType_lf_unannClassOrInterfaceType(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class UnannInterfaceType_lfno_unannClassOrInterfaceTypeContext extends ParserRuleContext { - public UnannClassType_lfno_unannClassOrInterfaceTypeContext unannClassType_lfno_unannClassOrInterfaceType() { - return getRuleContext(UnannClassType_lfno_unannClassOrInterfaceTypeContext.class,0); - } - public UnannInterfaceType_lfno_unannClassOrInterfaceTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_unannInterfaceType_lfno_unannClassOrInterfaceType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannInterfaceType_lfno_unannClassOrInterfaceType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannInterfaceType_lfno_unannClassOrInterfaceType(this); - } - } - - public final UnannInterfaceType_lfno_unannClassOrInterfaceTypeContext unannInterfaceType_lfno_unannClassOrInterfaceType() throws RecognitionException { - UnannInterfaceType_lfno_unannClassOrInterfaceTypeContext _localctx = new UnannInterfaceType_lfno_unannClassOrInterfaceTypeContext(_ctx, getState()); - enterRule(_localctx, 134, RULE_unannInterfaceType_lfno_unannClassOrInterfaceType); - try { - enterOuterAlt(_localctx, 1); - { - setState(975); - unannClassType_lfno_unannClassOrInterfaceType(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class UnannTypeVariableContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public UnannTypeVariableContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_unannTypeVariable; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannTypeVariable(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannTypeVariable(this); - } - } - - public final UnannTypeVariableContext unannTypeVariable() throws RecognitionException { - UnannTypeVariableContext _localctx = new UnannTypeVariableContext(_ctx, getState()); - enterRule(_localctx, 136, RULE_unannTypeVariable); - try { - enterOuterAlt(_localctx, 1); - { - setState(977); - match(Identifier); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class UnannArrayTypeContext extends ParserRuleContext { - public UnannPrimitiveTypeContext unannPrimitiveType() { - return getRuleContext(UnannPrimitiveTypeContext.class,0); - } - public DimsContext dims() { - return getRuleContext(DimsContext.class,0); - } - public UnannClassOrInterfaceTypeContext unannClassOrInterfaceType() { - return getRuleContext(UnannClassOrInterfaceTypeContext.class,0); - } - public UnannTypeVariableContext unannTypeVariable() { - return getRuleContext(UnannTypeVariableContext.class,0); - } - public UnannArrayTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_unannArrayType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannArrayType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannArrayType(this); - } - } - - public final UnannArrayTypeContext unannArrayType() throws RecognitionException { - UnannArrayTypeContext _localctx = new UnannArrayTypeContext(_ctx, getState()); - enterRule(_localctx, 138, RULE_unannArrayType); - try { - setState(988); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,74,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(979); - unannPrimitiveType(); - setState(980); - dims(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(982); - unannClassOrInterfaceType(); - setState(983); - dims(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(985); - unannTypeVariable(); - setState(986); - dims(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class MethodDeclarationContext extends ParserRuleContext { - public MethodHeaderContext methodHeader() { - return getRuleContext(MethodHeaderContext.class,0); - } - public MethodBodyContext methodBody() { - return getRuleContext(MethodBodyContext.class,0); - } - public List methodModifier() { - return getRuleContexts(MethodModifierContext.class); - } - public MethodModifierContext methodModifier(int i) { - return getRuleContext(MethodModifierContext.class,i); - } - public MethodDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_methodDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodDeclaration(this); - } - } - - public final MethodDeclarationContext methodDeclaration() throws RecognitionException { - MethodDeclarationContext _localctx = new MethodDeclarationContext(_ctx, getState()); - enterRule(_localctx, 140, RULE_methodDeclaration); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(993); - _errHandler.sync(this); - _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << FINAL) | (1L << NATIVE) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << STATIC) | (1L << STRICTFP) | (1L << SYNCHRONIZED))) != 0) || _la==AT) { - { - { - setState(990); - methodModifier(); - } - } - setState(995); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(996); - methodHeader(); - setState(997); - methodBody(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class MethodModifierContext extends ParserRuleContext { - public AnnotationContext annotation() { - return getRuleContext(AnnotationContext.class,0); - } - public MethodModifierContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_methodModifier; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodModifier(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodModifier(this); - } - } - - public final MethodModifierContext methodModifier() throws RecognitionException { - MethodModifierContext _localctx = new MethodModifierContext(_ctx, getState()); - enterRule(_localctx, 142, RULE_methodModifier); - try { - setState(1009); - _errHandler.sync(this); - switch (_input.LA(1)) { - case AT: - enterOuterAlt(_localctx, 1); - { - setState(999); - annotation(); - } - break; - case PUBLIC: - enterOuterAlt(_localctx, 2); - { - setState(1000); - match(PUBLIC); - } - break; - case PROTECTED: - enterOuterAlt(_localctx, 3); - { - setState(1001); - match(PROTECTED); - } - break; - case PRIVATE: - enterOuterAlt(_localctx, 4); - { - setState(1002); - match(PRIVATE); - } - break; - case ABSTRACT: - enterOuterAlt(_localctx, 5); - { - setState(1003); - match(ABSTRACT); - } - break; - case STATIC: - enterOuterAlt(_localctx, 6); - { - setState(1004); - match(STATIC); - } - break; - case FINAL: - enterOuterAlt(_localctx, 7); - { - setState(1005); - match(FINAL); - } - break; - case SYNCHRONIZED: - enterOuterAlt(_localctx, 8); - { - setState(1006); - match(SYNCHRONIZED); - } - break; - case NATIVE: - enterOuterAlt(_localctx, 9); - { - setState(1007); - match(NATIVE); - } - break; - case STRICTFP: - enterOuterAlt(_localctx, 10); - { - setState(1008); - match(STRICTFP); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class MethodHeaderContext extends ParserRuleContext { - public MethodDeclaratorContext methodDeclarator() { - return getRuleContext(MethodDeclaratorContext.class,0); - } - public ResultContext result() { - return getRuleContext(ResultContext.class,0); - } - public Throws_Context throws_() { - return getRuleContext(Throws_Context.class,0); - } - public TypeParametersContext typeParameters() { - return getRuleContext(TypeParametersContext.class,0); - } - public List annotation() { - return getRuleContexts(AnnotationContext.class); - } - public AnnotationContext annotation(int i) { - return getRuleContext(AnnotationContext.class,i); - } - public MethodHeaderContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_methodHeader; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodHeader(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodHeader(this); - } - } - - public final MethodHeaderContext methodHeader() throws RecognitionException { - MethodHeaderContext _localctx = new MethodHeaderContext(_ctx, getState()); - enterRule(_localctx, 144, RULE_methodHeader); - int _la; - try { - setState(1032); - _errHandler.sync(this); - switch (_input.LA(1)) { - case BOOLEAN: - case BYTE: - case CHAR: - case DOUBLE: - case FLOAT: - case INT: - case LONG: - case SHORT: - case VOID: - case Identifier: - enterOuterAlt(_localctx, 1); - { - setState(1012); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,77,_ctx) ) { - case 1: - { - setState(1011); - result(); - } - break; - } - setState(1014); - methodDeclarator(); - setState(1016); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==THROWS) { - { - setState(1015); - throws_(); - } - } - - } - break; - case LT: - enterOuterAlt(_localctx, 2); - { - setState(1018); - typeParameters(); - setState(1022); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==AT) { - { - { - setState(1019); - annotation(); - } - } - setState(1024); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(1026); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,80,_ctx) ) { - case 1: - { - setState(1025); - result(); - } - break; - } - setState(1028); - methodDeclarator(); - setState(1030); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==THROWS) { - { - setState(1029); - throws_(); - } - } - - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ResultContext extends ParserRuleContext { - public UnannTypeContext unannType() { - return getRuleContext(UnannTypeContext.class,0); - } - public ResultContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_result; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterResult(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitResult(this); - } - } - - public final ResultContext result() throws RecognitionException { - ResultContext _localctx = new ResultContext(_ctx, getState()); - enterRule(_localctx, 146, RULE_result); - try { - setState(1036); - _errHandler.sync(this); - switch (_input.LA(1)) { - case BOOLEAN: - case BYTE: - case CHAR: - case DOUBLE: - case FLOAT: - case INT: - case LONG: - case SHORT: - case Identifier: - enterOuterAlt(_localctx, 1); - { - setState(1034); - unannType(); - } - break; - case VOID: - enterOuterAlt(_localctx, 2); - { - setState(1035); - match(VOID); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class MethodDeclaratorContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public FormalParameterListContext formalParameterList() { - return getRuleContext(FormalParameterListContext.class,0); - } - public DimsContext dims() { - return getRuleContext(DimsContext.class,0); - } - public MethodDeclaratorContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_methodDeclarator; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodDeclarator(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodDeclarator(this); - } - } - - public final MethodDeclaratorContext methodDeclarator() throws RecognitionException { - MethodDeclaratorContext _localctx = new MethodDeclaratorContext(_ctx, getState()); - enterRule(_localctx, 148, RULE_methodDeclarator); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1038); - match(Identifier); - setState(1039); - match(LPAREN); - setState(1041); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << SHORT))) != 0) || _la==Identifier || _la==AT) { - { - setState(1040); - formalParameterList(); - } - } - - setState(1043); - match(RPAREN); - setState(1045); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LBRACK || _la==AT) { - { - setState(1044); - dims(); - } - } - - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class FormalParameterListContext extends ParserRuleContext { - public FormalParametersContext formalParameters() { - return getRuleContext(FormalParametersContext.class,0); - } - public LastFormalParameterContext lastFormalParameter() { - return getRuleContext(LastFormalParameterContext.class,0); - } - public FormalParameterListContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_formalParameterList; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterFormalParameterList(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFormalParameterList(this); - } - } - - public final FormalParameterListContext formalParameterList() throws RecognitionException { - FormalParameterListContext _localctx = new FormalParameterListContext(_ctx, getState()); - enterRule(_localctx, 150, RULE_formalParameterList); - try { - setState(1052); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,86,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1047); - formalParameters(); - setState(1048); - match(COMMA); - setState(1049); - lastFormalParameter(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1051); - lastFormalParameter(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class FormalParametersContext extends ParserRuleContext { - public List formalParameter() { - return getRuleContexts(FormalParameterContext.class); - } - public FormalParameterContext formalParameter(int i) { - return getRuleContext(FormalParameterContext.class,i); - } - public ReceiverParameterContext receiverParameter() { - return getRuleContext(ReceiverParameterContext.class,0); - } - public FormalParametersContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_formalParameters; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterFormalParameters(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFormalParameters(this); - } - } - - public final FormalParametersContext formalParameters() throws RecognitionException { - FormalParametersContext _localctx = new FormalParametersContext(_ctx, getState()); - enterRule(_localctx, 152, RULE_formalParameters); - try { - int _alt; - setState(1070); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,89,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1054); - formalParameter(); - setState(1059); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,87,_ctx); - while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(1055); - match(COMMA); - setState(1056); - formalParameter(); - } - } - } - setState(1061); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,87,_ctx); - } - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1062); - receiverParameter(); - setState(1067); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,88,_ctx); - while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(1063); - match(COMMA); - setState(1064); - formalParameter(); - } - } - } - setState(1069); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,88,_ctx); - } - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class FormalParameterContext extends ParserRuleContext { - public VariableDeclaratorIdContext variableDeclaratorId() { - return getRuleContext(VariableDeclaratorIdContext.class,0); - } - public List variableModifier() { - return getRuleContexts(VariableModifierContext.class); - } - public VariableModifierContext variableModifier(int i) { - return getRuleContext(VariableModifierContext.class,i); - } - public UnannTypeContext unannType() { - return getRuleContext(UnannTypeContext.class,0); - } - public FormalParameterContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_formalParameter; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterFormalParameter(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFormalParameter(this); - } - } - - public final FormalParameterContext formalParameter() throws RecognitionException { - FormalParameterContext _localctx = new FormalParameterContext(_ctx, getState()); - enterRule(_localctx, 154, RULE_formalParameter); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1075); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==FINAL || _la==AT) { - { - { - setState(1072); - variableModifier(); - } - } - setState(1077); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(1079); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,91,_ctx) ) { - case 1: - { - setState(1078); - unannType(); - } - break; - } - setState(1081); - variableDeclaratorId(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class VariableModifierContext extends ParserRuleContext { - public AnnotationContext annotation() { - return getRuleContext(AnnotationContext.class,0); - } - public VariableModifierContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_variableModifier; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterVariableModifier(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitVariableModifier(this); - } - } - - public final VariableModifierContext variableModifier() throws RecognitionException { - VariableModifierContext _localctx = new VariableModifierContext(_ctx, getState()); - enterRule(_localctx, 156, RULE_variableModifier); - try { - setState(1085); - _errHandler.sync(this); - switch (_input.LA(1)) { - case AT: - enterOuterAlt(_localctx, 1); - { - setState(1083); - annotation(); - } - break; - case FINAL: - enterOuterAlt(_localctx, 2); - { - setState(1084); - match(FINAL); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class LastFormalParameterContext extends ParserRuleContext { - public UnannTypeContext unannType() { - return getRuleContext(UnannTypeContext.class,0); - } - public VariableDeclaratorIdContext variableDeclaratorId() { - return getRuleContext(VariableDeclaratorIdContext.class,0); - } - public List variableModifier() { - return getRuleContexts(VariableModifierContext.class); - } - public VariableModifierContext variableModifier(int i) { - return getRuleContext(VariableModifierContext.class,i); - } - public List annotation() { - return getRuleContexts(AnnotationContext.class); - } - public AnnotationContext annotation(int i) { - return getRuleContext(AnnotationContext.class,i); - } - public FormalParameterContext formalParameter() { - return getRuleContext(FormalParameterContext.class,0); - } - public LastFormalParameterContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_lastFormalParameter; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterLastFormalParameter(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLastFormalParameter(this); - } - } - - public final LastFormalParameterContext lastFormalParameter() throws RecognitionException { - LastFormalParameterContext _localctx = new LastFormalParameterContext(_ctx, getState()); - enterRule(_localctx, 158, RULE_lastFormalParameter); - int _la; - try { - setState(1104); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,95,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1090); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==FINAL || _la==AT) { - { - { - setState(1087); - variableModifier(); - } - } - setState(1092); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(1093); - unannType(); - setState(1097); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==AT) { - { - { - setState(1094); - annotation(); - } - } - setState(1099); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(1100); - match(ELLIPSIS); - setState(1101); - variableDeclaratorId(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1103); - formalParameter(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ReceiverParameterContext extends ParserRuleContext { - public UnannTypeContext unannType() { - return getRuleContext(UnannTypeContext.class,0); - } - public List annotation() { - return getRuleContexts(AnnotationContext.class); - } - public AnnotationContext annotation(int i) { - return getRuleContext(AnnotationContext.class,i); - } - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public ReceiverParameterContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_receiverParameter; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterReceiverParameter(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitReceiverParameter(this); - } - } - - public final ReceiverParameterContext receiverParameter() throws RecognitionException { - ReceiverParameterContext _localctx = new ReceiverParameterContext(_ctx, getState()); - enterRule(_localctx, 160, RULE_receiverParameter); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1109); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==AT) { - { - { - setState(1106); - annotation(); - } - } - setState(1111); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(1112); - unannType(); - setState(1115); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==Identifier) { - { - setState(1113); - match(Identifier); - setState(1114); - match(DOT); - } - } - - setState(1117); - match(THIS); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class Throws_Context extends ParserRuleContext { - public ExceptionTypeListContext exceptionTypeList() { - return getRuleContext(ExceptionTypeListContext.class,0); - } - public Throws_Context(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_throws_; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterThrows_(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitThrows_(this); - } - } - - public final Throws_Context throws_() throws RecognitionException { - Throws_Context _localctx = new Throws_Context(_ctx, getState()); - enterRule(_localctx, 162, RULE_throws_); - try { - enterOuterAlt(_localctx, 1); - { - setState(1119); - match(THROWS); - setState(1120); - exceptionTypeList(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ExceptionTypeListContext extends ParserRuleContext { - public List exceptionType() { - return getRuleContexts(ExceptionTypeContext.class); - } - public ExceptionTypeContext exceptionType(int i) { - return getRuleContext(ExceptionTypeContext.class,i); - } - public ExceptionTypeListContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_exceptionTypeList; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterExceptionTypeList(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitExceptionTypeList(this); - } - } - - public final ExceptionTypeListContext exceptionTypeList() throws RecognitionException { - ExceptionTypeListContext _localctx = new ExceptionTypeListContext(_ctx, getState()); - enterRule(_localctx, 164, RULE_exceptionTypeList); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1122); - exceptionType(); - setState(1127); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==COMMA) { - { - { - setState(1123); - match(COMMA); - setState(1124); - exceptionType(); - } - } - setState(1129); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ExceptionTypeContext extends ParserRuleContext { - public ClassTypeContext classType() { - return getRuleContext(ClassTypeContext.class,0); - } - public TypeVariableContext typeVariable() { - return getRuleContext(TypeVariableContext.class,0); - } - public ExceptionTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_exceptionType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterExceptionType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitExceptionType(this); - } - } - - public final ExceptionTypeContext exceptionType() throws RecognitionException { - ExceptionTypeContext _localctx = new ExceptionTypeContext(_ctx, getState()); - enterRule(_localctx, 166, RULE_exceptionType); - try { - setState(1132); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,99,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1130); - classType(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1131); - typeVariable(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class MethodBodyContext extends ParserRuleContext { - public BlockContext block() { - return getRuleContext(BlockContext.class,0); - } - public MethodBodyContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_methodBody; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodBody(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodBody(this); - } - } - - public final MethodBodyContext methodBody() throws RecognitionException { - MethodBodyContext _localctx = new MethodBodyContext(_ctx, getState()); - enterRule(_localctx, 168, RULE_methodBody); - try { - setState(1136); - _errHandler.sync(this); - switch (_input.LA(1)) { - case LBRACE: - enterOuterAlt(_localctx, 1); - { - setState(1134); - block(); - } - break; - case SEMI: - enterOuterAlt(_localctx, 2); - { - setState(1135); - match(SEMI); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class InstanceInitializerContext extends ParserRuleContext { - public BlockContext block() { - return getRuleContext(BlockContext.class,0); - } - public InstanceInitializerContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_instanceInitializer; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInstanceInitializer(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInstanceInitializer(this); - } - } - - public final InstanceInitializerContext instanceInitializer() throws RecognitionException { - InstanceInitializerContext _localctx = new InstanceInitializerContext(_ctx, getState()); - enterRule(_localctx, 170, RULE_instanceInitializer); - try { - enterOuterAlt(_localctx, 1); - { - setState(1138); - block(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class StaticInitializerContext extends ParserRuleContext { - public BlockContext block() { - return getRuleContext(BlockContext.class,0); - } - public StaticInitializerContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_staticInitializer; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterStaticInitializer(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitStaticInitializer(this); - } - } - - public final StaticInitializerContext staticInitializer() throws RecognitionException { - StaticInitializerContext _localctx = new StaticInitializerContext(_ctx, getState()); - enterRule(_localctx, 172, RULE_staticInitializer); - try { - enterOuterAlt(_localctx, 1); - { - setState(1140); - match(STATIC); - setState(1141); - block(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ConstructorDeclarationContext extends ParserRuleContext { - public ConstructorDeclaratorContext constructorDeclarator() { - return getRuleContext(ConstructorDeclaratorContext.class,0); - } - public ConstructorBodyContext constructorBody() { - return getRuleContext(ConstructorBodyContext.class,0); - } - public List constructorModifier() { - return getRuleContexts(ConstructorModifierContext.class); - } - public ConstructorModifierContext constructorModifier(int i) { - return getRuleContext(ConstructorModifierContext.class,i); - } - public Throws_Context throws_() { - return getRuleContext(Throws_Context.class,0); - } - public ConstructorDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_constructorDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConstructorDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConstructorDeclaration(this); - } - } - - public final ConstructorDeclarationContext constructorDeclaration() throws RecognitionException { - ConstructorDeclarationContext _localctx = new ConstructorDeclarationContext(_ctx, getState()); - enterRule(_localctx, 174, RULE_constructorDeclaration); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1146); - _errHandler.sync(this); - _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC))) != 0) || _la==AT) { - { - { - setState(1143); - constructorModifier(); - } - } - setState(1148); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(1149); - constructorDeclarator(); - setState(1151); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==THROWS) { - { - setState(1150); - throws_(); - } - } - - setState(1153); - constructorBody(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ConstructorModifierContext extends ParserRuleContext { - public AnnotationContext annotation() { - return getRuleContext(AnnotationContext.class,0); - } - public ConstructorModifierContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_constructorModifier; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConstructorModifier(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConstructorModifier(this); - } - } - - public final ConstructorModifierContext constructorModifier() throws RecognitionException { - ConstructorModifierContext _localctx = new ConstructorModifierContext(_ctx, getState()); - enterRule(_localctx, 176, RULE_constructorModifier); - try { - setState(1159); - _errHandler.sync(this); - switch (_input.LA(1)) { - case AT: - enterOuterAlt(_localctx, 1); - { - setState(1155); - annotation(); - } - break; - case PUBLIC: - enterOuterAlt(_localctx, 2); - { - setState(1156); - match(PUBLIC); - } - break; - case PROTECTED: - enterOuterAlt(_localctx, 3); - { - setState(1157); - match(PROTECTED); - } - break; - case PRIVATE: - enterOuterAlt(_localctx, 4); - { - setState(1158); - match(PRIVATE); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ConstructorDeclaratorContext extends ParserRuleContext { - public SimpleTypeNameContext simpleTypeName() { - return getRuleContext(SimpleTypeNameContext.class,0); - } - public TypeParametersContext typeParameters() { - return getRuleContext(TypeParametersContext.class,0); - } - public FormalParameterListContext formalParameterList() { - return getRuleContext(FormalParameterListContext.class,0); - } - public ConstructorDeclaratorContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_constructorDeclarator; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConstructorDeclarator(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConstructorDeclarator(this); - } - } - - public final ConstructorDeclaratorContext constructorDeclarator() throws RecognitionException { - ConstructorDeclaratorContext _localctx = new ConstructorDeclaratorContext(_ctx, getState()); - enterRule(_localctx, 178, RULE_constructorDeclarator); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1162); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(1161); - typeParameters(); - } - } - - setState(1164); - simpleTypeName(); - setState(1165); - match(LPAREN); - setState(1167); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << SHORT))) != 0) || _la==Identifier || _la==AT) { - { - setState(1166); - formalParameterList(); - } - } - - setState(1169); - match(RPAREN); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class SimpleTypeNameContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public SimpleTypeNameContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_simpleTypeName; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSimpleTypeName(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSimpleTypeName(this); - } - } - - public final SimpleTypeNameContext simpleTypeName() throws RecognitionException { - SimpleTypeNameContext _localctx = new SimpleTypeNameContext(_ctx, getState()); - enterRule(_localctx, 180, RULE_simpleTypeName); - try { - enterOuterAlt(_localctx, 1); - { - setState(1171); - match(Identifier); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ConstructorBodyContext extends ParserRuleContext { - public ExplicitConstructorInvocationContext explicitConstructorInvocation() { - return getRuleContext(ExplicitConstructorInvocationContext.class,0); - } - public BlockStatementsContext blockStatements() { - return getRuleContext(BlockStatementsContext.class,0); - } - public ConstructorBodyContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_constructorBody; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConstructorBody(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConstructorBody(this); - } - } - - public final ConstructorBodyContext constructorBody() throws RecognitionException { - ConstructorBodyContext _localctx = new ConstructorBodyContext(_ctx, getState()); - enterRule(_localctx, 182, RULE_constructorBody); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1173); - match(LBRACE); - setState(1175); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,106,_ctx) ) { - case 1: - { - setState(1174); - explicitConstructorInvocation(); - } - break; - } - setState(1178); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (1L << ABSTRACT) | (1L << ASSERT) | (1L << BOOLEAN) | (1L << BREAK) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << CONTINUE) | (1L << DO) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << FOR) | (1L << IF) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << RETURN) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << SUPER) | (1L << SWITCH) | (1L << SYNCHRONIZED) | (1L << THIS) | (1L << THROW) | (1L << TRY) | (1L << VOID) | (1L << WHILE) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN) | (1L << LBRACE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (SEMI - 64)) | (1L << (INC - 64)) | (1L << (DEC - 64)) | (1L << (Identifier - 64)) | (1L << (AT - 64)))) != 0)) { - { - setState(1177); - blockStatements(); - } - } - - setState(1180); - match(RBRACE); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ExplicitConstructorInvocationContext extends ParserRuleContext { - public TypeArgumentsContext typeArguments() { - return getRuleContext(TypeArgumentsContext.class,0); - } - public ArgumentListContext argumentList() { - return getRuleContext(ArgumentListContext.class,0); - } - public ExpressionNameContext expressionName() { - return getRuleContext(ExpressionNameContext.class,0); - } - public PrimaryContext primary() { - return getRuleContext(PrimaryContext.class,0); - } - public ExplicitConstructorInvocationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_explicitConstructorInvocation; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterExplicitConstructorInvocation(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitExplicitConstructorInvocation(this); - } - } - - public final ExplicitConstructorInvocationContext explicitConstructorInvocation() throws RecognitionException { - ExplicitConstructorInvocationContext _localctx = new ExplicitConstructorInvocationContext(_ctx, getState()); - enterRule(_localctx, 184, RULE_explicitConstructorInvocation); - int _la; - try { - setState(1228); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,116,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1183); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(1182); - typeArguments(); - } - } - - setState(1185); - match(THIS); - setState(1186); - match(LPAREN); - setState(1188); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { - { - setState(1187); - argumentList(); - } - } - - setState(1190); - match(RPAREN); - setState(1191); - match(SEMI); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1193); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(1192); - typeArguments(); - } - } - - setState(1195); - match(SUPER); - setState(1196); - match(LPAREN); - setState(1198); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { - { - setState(1197); - argumentList(); - } - } - - setState(1200); - match(RPAREN); - setState(1201); - match(SEMI); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(1202); - expressionName(); - setState(1203); - match(DOT); - setState(1205); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(1204); - typeArguments(); - } - } - - setState(1207); - match(SUPER); - setState(1208); - match(LPAREN); - setState(1210); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { - { - setState(1209); - argumentList(); - } - } - - setState(1212); - match(RPAREN); - setState(1213); - match(SEMI); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(1215); - primary(); - setState(1216); - match(DOT); - setState(1218); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(1217); - typeArguments(); - } - } - - setState(1220); - match(SUPER); - setState(1221); - match(LPAREN); - setState(1223); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { - { - setState(1222); - argumentList(); - } - } - - setState(1225); - match(RPAREN); - setState(1226); - match(SEMI); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class EnumDeclarationContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public EnumBodyContext enumBody() { - return getRuleContext(EnumBodyContext.class,0); - } - public List classModifier() { - return getRuleContexts(ClassModifierContext.class); - } - public ClassModifierContext classModifier(int i) { - return getRuleContext(ClassModifierContext.class,i); - } - public SuperinterfacesContext superinterfaces() { - return getRuleContext(SuperinterfacesContext.class,0); - } - public EnumDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_enumDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEnumDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnumDeclaration(this); - } - } - - public final EnumDeclarationContext enumDeclaration() throws RecognitionException { - EnumDeclarationContext _localctx = new EnumDeclarationContext(_ctx, getState()); - enterRule(_localctx, 186, RULE_enumDeclaration); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1233); - _errHandler.sync(this); - _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << FINAL) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << STATIC) | (1L << STRICTFP))) != 0) || _la==AT) { - { - { - setState(1230); - classModifier(); - } - } - setState(1235); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(1236); - match(ENUM); - setState(1237); - match(Identifier); - setState(1239); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==IMPLEMENTS) { - { - setState(1238); - superinterfaces(); - } - } - - setState(1241); - enumBody(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class EnumBodyContext extends ParserRuleContext { - public EnumConstantListContext enumConstantList() { - return getRuleContext(EnumConstantListContext.class,0); - } - public EnumBodyDeclarationsContext enumBodyDeclarations() { - return getRuleContext(EnumBodyDeclarationsContext.class,0); - } - public EnumBodyContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_enumBody; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEnumBody(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnumBody(this); - } - } - - public final EnumBodyContext enumBody() throws RecognitionException { - EnumBodyContext _localctx = new EnumBodyContext(_ctx, getState()); - enterRule(_localctx, 188, RULE_enumBody); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1243); - match(LBRACE); - setState(1245); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==Identifier || _la==AT) { - { - setState(1244); - enumConstantList(); - } - } - - setState(1248); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==COMMA) { - { - setState(1247); - match(COMMA); - } - } - - setState(1251); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==SEMI) { - { - setState(1250); - enumBodyDeclarations(); - } - } - - setState(1253); - match(RBRACE); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class EnumConstantListContext extends ParserRuleContext { - public List enumConstant() { - return getRuleContexts(EnumConstantContext.class); - } - public EnumConstantContext enumConstant(int i) { - return getRuleContext(EnumConstantContext.class,i); - } - public EnumConstantListContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_enumConstantList; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEnumConstantList(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnumConstantList(this); - } - } - - public final EnumConstantListContext enumConstantList() throws RecognitionException { - EnumConstantListContext _localctx = new EnumConstantListContext(_ctx, getState()); - enterRule(_localctx, 190, RULE_enumConstantList); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(1255); - enumConstant(); - setState(1260); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,122,_ctx); - while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(1256); - match(COMMA); - setState(1257); - enumConstant(); - } - } - } - setState(1262); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,122,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class EnumConstantContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public List enumConstantModifier() { - return getRuleContexts(EnumConstantModifierContext.class); - } - public EnumConstantModifierContext enumConstantModifier(int i) { - return getRuleContext(EnumConstantModifierContext.class,i); - } - public ClassBodyContext classBody() { - return getRuleContext(ClassBodyContext.class,0); - } - public ArgumentListContext argumentList() { - return getRuleContext(ArgumentListContext.class,0); - } - public EnumConstantContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_enumConstant; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEnumConstant(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnumConstant(this); - } - } - - public final EnumConstantContext enumConstant() throws RecognitionException { - EnumConstantContext _localctx = new EnumConstantContext(_ctx, getState()); - enterRule(_localctx, 192, RULE_enumConstant); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1266); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==AT) { - { - { - setState(1263); - enumConstantModifier(); - } - } - setState(1268); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(1269); - match(Identifier); - setState(1275); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LPAREN) { - { - setState(1270); - match(LPAREN); - setState(1272); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { - { - setState(1271); - argumentList(); - } - } - - setState(1274); - match(RPAREN); - } - } - - setState(1278); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LBRACE) { - { - setState(1277); - classBody(); - } - } - - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class EnumConstantModifierContext extends ParserRuleContext { - public AnnotationContext annotation() { - return getRuleContext(AnnotationContext.class,0); - } - public EnumConstantModifierContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_enumConstantModifier; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEnumConstantModifier(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnumConstantModifier(this); - } - } - - public final EnumConstantModifierContext enumConstantModifier() throws RecognitionException { - EnumConstantModifierContext _localctx = new EnumConstantModifierContext(_ctx, getState()); - enterRule(_localctx, 194, RULE_enumConstantModifier); - try { - enterOuterAlt(_localctx, 1); - { - setState(1280); - annotation(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class EnumBodyDeclarationsContext extends ParserRuleContext { - public List classBodyDeclaration() { - return getRuleContexts(ClassBodyDeclarationContext.class); - } - public ClassBodyDeclarationContext classBodyDeclaration(int i) { - return getRuleContext(ClassBodyDeclarationContext.class,i); - } - public EnumBodyDeclarationsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_enumBodyDeclarations; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEnumBodyDeclarations(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnumBodyDeclarations(this); - } - } - - public final EnumBodyDeclarationsContext enumBodyDeclarations() throws RecognitionException { - EnumBodyDeclarationsContext _localctx = new EnumBodyDeclarationsContext(_ctx, getState()); - enterRule(_localctx, 196, RULE_enumBodyDeclarations); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1282); - match(SEMI); - setState(1286); - _errHandler.sync(this); - _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (1L << ABSTRACT) | (1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << INTERFACE) | (1L << LONG) | (1L << NATIVE) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << SYNCHRONIZED) | (1L << TRANSIENT) | (1L << VOID) | (1L << VOLATILE) | (1L << LBRACE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (SEMI - 64)) | (1L << (LT - 64)) | (1L << (Identifier - 64)) | (1L << (AT - 64)))) != 0)) { - { - { - setState(1283); - classBodyDeclaration(); - } - } - setState(1288); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class InterfaceDeclarationContext extends ParserRuleContext { - public NormalInterfaceDeclarationContext normalInterfaceDeclaration() { - return getRuleContext(NormalInterfaceDeclarationContext.class,0); - } - public AnnotationTypeDeclarationContext annotationTypeDeclaration() { - return getRuleContext(AnnotationTypeDeclarationContext.class,0); - } - public InterfaceDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_interfaceDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInterfaceDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceDeclaration(this); - } - } - - public final InterfaceDeclarationContext interfaceDeclaration() throws RecognitionException { - InterfaceDeclarationContext _localctx = new InterfaceDeclarationContext(_ctx, getState()); - enterRule(_localctx, 198, RULE_interfaceDeclaration); - try { - setState(1291); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,128,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1289); - normalInterfaceDeclaration(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1290); - annotationTypeDeclaration(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class NormalInterfaceDeclarationContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public InterfaceBodyContext interfaceBody() { - return getRuleContext(InterfaceBodyContext.class,0); - } - public List interfaceModifier() { - return getRuleContexts(InterfaceModifierContext.class); - } - public InterfaceModifierContext interfaceModifier(int i) { - return getRuleContext(InterfaceModifierContext.class,i); - } - public TypeParametersContext typeParameters() { - return getRuleContext(TypeParametersContext.class,0); - } - public ExtendsInterfacesContext extendsInterfaces() { - return getRuleContext(ExtendsInterfacesContext.class,0); - } - public NormalInterfaceDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_normalInterfaceDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterNormalInterfaceDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitNormalInterfaceDeclaration(this); - } - } - - public final NormalInterfaceDeclarationContext normalInterfaceDeclaration() throws RecognitionException { - NormalInterfaceDeclarationContext _localctx = new NormalInterfaceDeclarationContext(_ctx, getState()); - enterRule(_localctx, 200, RULE_normalInterfaceDeclaration); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1296); - _errHandler.sync(this); - _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << STATIC) | (1L << STRICTFP))) != 0) || _la==AT) { - { - { - setState(1293); - interfaceModifier(); - } - } - setState(1298); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(1299); - match(INTERFACE); - setState(1300); - match(Identifier); - setState(1302); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(1301); - typeParameters(); - } - } - - setState(1305); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==EXTENDS) { - { - setState(1304); - extendsInterfaces(); - } - } - - setState(1307); - interfaceBody(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class InterfaceModifierContext extends ParserRuleContext { - public AnnotationContext annotation() { - return getRuleContext(AnnotationContext.class,0); - } - public InterfaceModifierContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_interfaceModifier; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInterfaceModifier(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceModifier(this); - } - } - - public final InterfaceModifierContext interfaceModifier() throws RecognitionException { - InterfaceModifierContext _localctx = new InterfaceModifierContext(_ctx, getState()); - enterRule(_localctx, 202, RULE_interfaceModifier); - try { - setState(1316); - _errHandler.sync(this); - switch (_input.LA(1)) { - case AT: - enterOuterAlt(_localctx, 1); - { - setState(1309); - annotation(); - } - break; - case PUBLIC: - enterOuterAlt(_localctx, 2); - { - setState(1310); - match(PUBLIC); - } - break; - case PROTECTED: - enterOuterAlt(_localctx, 3); - { - setState(1311); - match(PROTECTED); - } - break; - case PRIVATE: - enterOuterAlt(_localctx, 4); - { - setState(1312); - match(PRIVATE); - } - break; - case ABSTRACT: - enterOuterAlt(_localctx, 5); - { - setState(1313); - match(ABSTRACT); - } - break; - case STATIC: - enterOuterAlt(_localctx, 6); - { - setState(1314); - match(STATIC); - } - break; - case STRICTFP: - enterOuterAlt(_localctx, 7); - { - setState(1315); - match(STRICTFP); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ExtendsInterfacesContext extends ParserRuleContext { - public InterfaceTypeListContext interfaceTypeList() { - return getRuleContext(InterfaceTypeListContext.class,0); - } - public ExtendsInterfacesContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_extendsInterfaces; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterExtendsInterfaces(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitExtendsInterfaces(this); - } - } - - public final ExtendsInterfacesContext extendsInterfaces() throws RecognitionException { - ExtendsInterfacesContext _localctx = new ExtendsInterfacesContext(_ctx, getState()); - enterRule(_localctx, 204, RULE_extendsInterfaces); - try { - enterOuterAlt(_localctx, 1); - { - setState(1318); - match(EXTENDS); - setState(1319); - interfaceTypeList(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class InterfaceBodyContext extends ParserRuleContext { - public List interfaceMemberDeclaration() { - return getRuleContexts(InterfaceMemberDeclarationContext.class); - } - public InterfaceMemberDeclarationContext interfaceMemberDeclaration(int i) { - return getRuleContext(InterfaceMemberDeclarationContext.class,i); - } - public InterfaceBodyContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_interfaceBody; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInterfaceBody(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceBody(this); - } - } - - public final InterfaceBodyContext interfaceBody() throws RecognitionException { - InterfaceBodyContext _localctx = new InterfaceBodyContext(_ctx, getState()); - enterRule(_localctx, 206, RULE_interfaceBody); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1321); - match(LBRACE); - setState(1325); - _errHandler.sync(this); - _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << DEFAULT) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << INTERFACE) | (1L << LONG) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << VOID))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (SEMI - 64)) | (1L << (LT - 64)) | (1L << (Identifier - 64)) | (1L << (AT - 64)))) != 0)) { - { - { - setState(1322); - interfaceMemberDeclaration(); - } - } - setState(1327); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(1328); - match(RBRACE); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class InterfaceMemberDeclarationContext extends ParserRuleContext { - public ConstantDeclarationContext constantDeclaration() { - return getRuleContext(ConstantDeclarationContext.class,0); - } - public InterfaceMethodDeclarationContext interfaceMethodDeclaration() { - return getRuleContext(InterfaceMethodDeclarationContext.class,0); - } - public ClassDeclarationContext classDeclaration() { - return getRuleContext(ClassDeclarationContext.class,0); - } - public InterfaceDeclarationContext interfaceDeclaration() { - return getRuleContext(InterfaceDeclarationContext.class,0); - } - public InterfaceMemberDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_interfaceMemberDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInterfaceMemberDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceMemberDeclaration(this); - } - } - - public final InterfaceMemberDeclarationContext interfaceMemberDeclaration() throws RecognitionException { - InterfaceMemberDeclarationContext _localctx = new InterfaceMemberDeclarationContext(_ctx, getState()); - enterRule(_localctx, 208, RULE_interfaceMemberDeclaration); - try { - setState(1335); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,134,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1330); - constantDeclaration(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1331); - interfaceMethodDeclaration(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(1332); - classDeclaration(); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(1333); - interfaceDeclaration(); - } - break; - case 5: - enterOuterAlt(_localctx, 5); - { - setState(1334); - match(SEMI); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ConstantDeclarationContext extends ParserRuleContext { - public UnannTypeContext unannType() { - return getRuleContext(UnannTypeContext.class,0); - } - public VariableDeclaratorListContext variableDeclaratorList() { - return getRuleContext(VariableDeclaratorListContext.class,0); - } - public List constantModifier() { - return getRuleContexts(ConstantModifierContext.class); - } - public ConstantModifierContext constantModifier(int i) { - return getRuleContext(ConstantModifierContext.class,i); - } - public ConstantDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_constantDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConstantDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConstantDeclaration(this); - } - } - - public final ConstantDeclarationContext constantDeclaration() throws RecognitionException { - ConstantDeclarationContext _localctx = new ConstantDeclarationContext(_ctx, getState()); - enterRule(_localctx, 210, RULE_constantDeclaration); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1340); - _errHandler.sync(this); - _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << FINAL) | (1L << PUBLIC) | (1L << STATIC))) != 0) || _la==AT) { - { - { - setState(1337); - constantModifier(); - } - } - setState(1342); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(1343); - unannType(); - setState(1344); - variableDeclaratorList(); - setState(1345); - match(SEMI); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ConstantModifierContext extends ParserRuleContext { - public AnnotationContext annotation() { - return getRuleContext(AnnotationContext.class,0); - } - public ConstantModifierContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_constantModifier; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConstantModifier(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConstantModifier(this); - } - } - - public final ConstantModifierContext constantModifier() throws RecognitionException { - ConstantModifierContext _localctx = new ConstantModifierContext(_ctx, getState()); - enterRule(_localctx, 212, RULE_constantModifier); - try { - setState(1351); - _errHandler.sync(this); - switch (_input.LA(1)) { - case AT: - enterOuterAlt(_localctx, 1); - { - setState(1347); - annotation(); - } - break; - case PUBLIC: - enterOuterAlt(_localctx, 2); - { - setState(1348); - match(PUBLIC); - } - break; - case STATIC: - enterOuterAlt(_localctx, 3); - { - setState(1349); - match(STATIC); - } - break; - case FINAL: - enterOuterAlt(_localctx, 4); - { - setState(1350); - match(FINAL); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class InterfaceMethodDeclarationContext extends ParserRuleContext { - public MethodHeaderContext methodHeader() { - return getRuleContext(MethodHeaderContext.class,0); - } - public MethodBodyContext methodBody() { - return getRuleContext(MethodBodyContext.class,0); - } - public List interfaceMethodModifier() { - return getRuleContexts(InterfaceMethodModifierContext.class); - } - public InterfaceMethodModifierContext interfaceMethodModifier(int i) { - return getRuleContext(InterfaceMethodModifierContext.class,i); - } - public InterfaceMethodDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_interfaceMethodDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInterfaceMethodDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceMethodDeclaration(this); - } - } - - public final InterfaceMethodDeclarationContext interfaceMethodDeclaration() throws RecognitionException { - InterfaceMethodDeclarationContext _localctx = new InterfaceMethodDeclarationContext(_ctx, getState()); - enterRule(_localctx, 214, RULE_interfaceMethodDeclaration); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1356); - _errHandler.sync(this); - _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << DEFAULT) | (1L << PUBLIC) | (1L << STATIC) | (1L << STRICTFP))) != 0) || _la==AT) { - { - { - setState(1353); - interfaceMethodModifier(); - } - } - setState(1358); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(1359); - methodHeader(); - setState(1360); - methodBody(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class InterfaceMethodModifierContext extends ParserRuleContext { - public AnnotationContext annotation() { - return getRuleContext(AnnotationContext.class,0); - } - public InterfaceMethodModifierContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_interfaceMethodModifier; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInterfaceMethodModifier(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInterfaceMethodModifier(this); - } - } - - public final InterfaceMethodModifierContext interfaceMethodModifier() throws RecognitionException { - InterfaceMethodModifierContext _localctx = new InterfaceMethodModifierContext(_ctx, getState()); - enterRule(_localctx, 216, RULE_interfaceMethodModifier); - try { - setState(1368); - _errHandler.sync(this); - switch (_input.LA(1)) { - case AT: - enterOuterAlt(_localctx, 1); - { - setState(1362); - annotation(); - } - break; - case PUBLIC: - enterOuterAlt(_localctx, 2); - { - setState(1363); - match(PUBLIC); - } - break; - case ABSTRACT: - enterOuterAlt(_localctx, 3); - { - setState(1364); - match(ABSTRACT); - } - break; - case DEFAULT: - enterOuterAlt(_localctx, 4); - { - setState(1365); - match(DEFAULT); - } - break; - case STATIC: - enterOuterAlt(_localctx, 5); - { - setState(1366); - match(STATIC); - } - break; - case STRICTFP: - enterOuterAlt(_localctx, 6); - { - setState(1367); - match(STRICTFP); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class AnnotationTypeDeclarationContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public AnnotationTypeBodyContext annotationTypeBody() { - return getRuleContext(AnnotationTypeBodyContext.class,0); - } - public List interfaceModifier() { - return getRuleContexts(InterfaceModifierContext.class); - } - public InterfaceModifierContext interfaceModifier(int i) { - return getRuleContext(InterfaceModifierContext.class,i); - } - public AnnotationTypeDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_annotationTypeDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAnnotationTypeDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAnnotationTypeDeclaration(this); - } - } - - public final AnnotationTypeDeclarationContext annotationTypeDeclaration() throws RecognitionException { - AnnotationTypeDeclarationContext _localctx = new AnnotationTypeDeclarationContext(_ctx, getState()); - enterRule(_localctx, 218, RULE_annotationTypeDeclaration); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(1373); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,139,_ctx); - while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(1370); - interfaceModifier(); - } - } - } - setState(1375); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,139,_ctx); - } - setState(1376); - match(AT); - setState(1377); - match(INTERFACE); - setState(1378); - match(Identifier); - setState(1379); - annotationTypeBody(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class AnnotationTypeBodyContext extends ParserRuleContext { - public List annotationTypeMemberDeclaration() { - return getRuleContexts(AnnotationTypeMemberDeclarationContext.class); - } - public AnnotationTypeMemberDeclarationContext annotationTypeMemberDeclaration(int i) { - return getRuleContext(AnnotationTypeMemberDeclarationContext.class,i); - } - public AnnotationTypeBodyContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_annotationTypeBody; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAnnotationTypeBody(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAnnotationTypeBody(this); - } - } - - public final AnnotationTypeBodyContext annotationTypeBody() throws RecognitionException { - AnnotationTypeBodyContext _localctx = new AnnotationTypeBodyContext(_ctx, getState()); - enterRule(_localctx, 220, RULE_annotationTypeBody); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1381); - match(LBRACE); - setState(1385); - _errHandler.sync(this); - _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << INTERFACE) | (1L << LONG) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (SEMI - 64)) | (1L << (Identifier - 64)) | (1L << (AT - 64)))) != 0)) { - { - { - setState(1382); - annotationTypeMemberDeclaration(); - } - } - setState(1387); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(1388); - match(RBRACE); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class AnnotationTypeMemberDeclarationContext extends ParserRuleContext { - public AnnotationTypeElementDeclarationContext annotationTypeElementDeclaration() { - return getRuleContext(AnnotationTypeElementDeclarationContext.class,0); - } - public ConstantDeclarationContext constantDeclaration() { - return getRuleContext(ConstantDeclarationContext.class,0); - } - public ClassDeclarationContext classDeclaration() { - return getRuleContext(ClassDeclarationContext.class,0); - } - public InterfaceDeclarationContext interfaceDeclaration() { - return getRuleContext(InterfaceDeclarationContext.class,0); - } - public AnnotationTypeMemberDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_annotationTypeMemberDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAnnotationTypeMemberDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAnnotationTypeMemberDeclaration(this); - } - } - - public final AnnotationTypeMemberDeclarationContext annotationTypeMemberDeclaration() throws RecognitionException { - AnnotationTypeMemberDeclarationContext _localctx = new AnnotationTypeMemberDeclarationContext(_ctx, getState()); - enterRule(_localctx, 222, RULE_annotationTypeMemberDeclaration); - try { - setState(1395); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,141,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1390); - annotationTypeElementDeclaration(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1391); - constantDeclaration(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(1392); - classDeclaration(); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(1393); - interfaceDeclaration(); - } - break; - case 5: - enterOuterAlt(_localctx, 5); - { - setState(1394); - match(SEMI); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class AnnotationTypeElementDeclarationContext extends ParserRuleContext { - public UnannTypeContext unannType() { - return getRuleContext(UnannTypeContext.class,0); - } - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public List annotationTypeElementModifier() { - return getRuleContexts(AnnotationTypeElementModifierContext.class); - } - public AnnotationTypeElementModifierContext annotationTypeElementModifier(int i) { - return getRuleContext(AnnotationTypeElementModifierContext.class,i); - } - public DimsContext dims() { - return getRuleContext(DimsContext.class,0); - } - public DefaultValueContext defaultValue() { - return getRuleContext(DefaultValueContext.class,0); - } - public AnnotationTypeElementDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_annotationTypeElementDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAnnotationTypeElementDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAnnotationTypeElementDeclaration(this); - } - } - - public final AnnotationTypeElementDeclarationContext annotationTypeElementDeclaration() throws RecognitionException { - AnnotationTypeElementDeclarationContext _localctx = new AnnotationTypeElementDeclarationContext(_ctx, getState()); - enterRule(_localctx, 224, RULE_annotationTypeElementDeclaration); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1400); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==ABSTRACT || _la==PUBLIC || _la==AT) { - { - { - setState(1397); - annotationTypeElementModifier(); - } - } - setState(1402); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(1403); - unannType(); - setState(1404); - match(Identifier); - setState(1405); - match(LPAREN); - setState(1406); - match(RPAREN); - setState(1408); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LBRACK || _la==AT) { - { - setState(1407); - dims(); - } - } - - setState(1411); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==DEFAULT) { - { - setState(1410); - defaultValue(); - } - } - - setState(1413); - match(SEMI); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class AnnotationTypeElementModifierContext extends ParserRuleContext { - public AnnotationContext annotation() { - return getRuleContext(AnnotationContext.class,0); - } - public AnnotationTypeElementModifierContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_annotationTypeElementModifier; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAnnotationTypeElementModifier(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAnnotationTypeElementModifier(this); - } - } - - public final AnnotationTypeElementModifierContext annotationTypeElementModifier() throws RecognitionException { - AnnotationTypeElementModifierContext _localctx = new AnnotationTypeElementModifierContext(_ctx, getState()); - enterRule(_localctx, 226, RULE_annotationTypeElementModifier); - try { - setState(1418); - _errHandler.sync(this); - switch (_input.LA(1)) { - case AT: - enterOuterAlt(_localctx, 1); - { - setState(1415); - annotation(); - } - break; - case PUBLIC: - enterOuterAlt(_localctx, 2); - { - setState(1416); - match(PUBLIC); - } - break; - case ABSTRACT: - enterOuterAlt(_localctx, 3); - { - setState(1417); - match(ABSTRACT); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class DefaultValueContext extends ParserRuleContext { - public ElementValueContext elementValue() { - return getRuleContext(ElementValueContext.class,0); - } - public DefaultValueContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_defaultValue; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterDefaultValue(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitDefaultValue(this); - } - } - - public final DefaultValueContext defaultValue() throws RecognitionException { - DefaultValueContext _localctx = new DefaultValueContext(_ctx, getState()); - enterRule(_localctx, 228, RULE_defaultValue); - try { - enterOuterAlt(_localctx, 1); - { - setState(1420); - match(DEFAULT); - setState(1421); - elementValue(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class AnnotationContext extends ParserRuleContext { - public NormalAnnotationContext normalAnnotation() { - return getRuleContext(NormalAnnotationContext.class,0); - } - public MarkerAnnotationContext markerAnnotation() { - return getRuleContext(MarkerAnnotationContext.class,0); - } - public SingleElementAnnotationContext singleElementAnnotation() { - return getRuleContext(SingleElementAnnotationContext.class,0); - } - public AnnotationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_annotation; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAnnotation(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAnnotation(this); - } - } - - public final AnnotationContext annotation() throws RecognitionException { - AnnotationContext _localctx = new AnnotationContext(_ctx, getState()); - enterRule(_localctx, 230, RULE_annotation); - try { - setState(1426); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,146,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1423); - normalAnnotation(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1424); - markerAnnotation(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(1425); - singleElementAnnotation(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class NormalAnnotationContext extends ParserRuleContext { - public TypeNameContext typeName() { - return getRuleContext(TypeNameContext.class,0); - } - public ElementValuePairListContext elementValuePairList() { - return getRuleContext(ElementValuePairListContext.class,0); - } - public NormalAnnotationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_normalAnnotation; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterNormalAnnotation(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitNormalAnnotation(this); - } - } - - public final NormalAnnotationContext normalAnnotation() throws RecognitionException { - NormalAnnotationContext _localctx = new NormalAnnotationContext(_ctx, getState()); - enterRule(_localctx, 232, RULE_normalAnnotation); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1428); - match(AT); - setState(1429); - typeName(); - setState(1430); - match(LPAREN); - setState(1432); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==Identifier) { - { - setState(1431); - elementValuePairList(); - } - } - - setState(1434); - match(RPAREN); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ElementValuePairListContext extends ParserRuleContext { - public List elementValuePair() { - return getRuleContexts(ElementValuePairContext.class); - } - public ElementValuePairContext elementValuePair(int i) { - return getRuleContext(ElementValuePairContext.class,i); - } - public ElementValuePairListContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_elementValuePairList; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterElementValuePairList(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitElementValuePairList(this); - } - } - - public final ElementValuePairListContext elementValuePairList() throws RecognitionException { - ElementValuePairListContext _localctx = new ElementValuePairListContext(_ctx, getState()); - enterRule(_localctx, 234, RULE_elementValuePairList); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1436); - elementValuePair(); - setState(1441); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==COMMA) { - { - { - setState(1437); - match(COMMA); - setState(1438); - elementValuePair(); - } - } - setState(1443); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ElementValuePairContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public ElementValueContext elementValue() { - return getRuleContext(ElementValueContext.class,0); - } - public ElementValuePairContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_elementValuePair; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterElementValuePair(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitElementValuePair(this); - } - } - - public final ElementValuePairContext elementValuePair() throws RecognitionException { - ElementValuePairContext _localctx = new ElementValuePairContext(_ctx, getState()); - enterRule(_localctx, 236, RULE_elementValuePair); - try { - enterOuterAlt(_localctx, 1); - { - setState(1444); - match(Identifier); - setState(1445); - match(ASSIGN); - setState(1446); - elementValue(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ElementValueContext extends ParserRuleContext { - public ConditionalExpressionContext conditionalExpression() { - return getRuleContext(ConditionalExpressionContext.class,0); - } - public ElementValueArrayInitializerContext elementValueArrayInitializer() { - return getRuleContext(ElementValueArrayInitializerContext.class,0); - } - public AnnotationContext annotation() { - return getRuleContext(AnnotationContext.class,0); - } - public ElementValueContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_elementValue; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterElementValue(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitElementValue(this); - } - } - - public final ElementValueContext elementValue() throws RecognitionException { - ElementValueContext _localctx = new ElementValueContext(_ctx, getState()); - enterRule(_localctx, 238, RULE_elementValue); - try { - setState(1451); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,149,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1448); - conditionalExpression(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1449); - elementValueArrayInitializer(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(1450); - annotation(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ElementValueArrayInitializerContext extends ParserRuleContext { - public ElementValueListContext elementValueList() { - return getRuleContext(ElementValueListContext.class,0); - } - public ElementValueArrayInitializerContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_elementValueArrayInitializer; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterElementValueArrayInitializer(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitElementValueArrayInitializer(this); - } - } - - public final ElementValueArrayInitializerContext elementValueArrayInitializer() throws RecognitionException { - ElementValueArrayInitializerContext _localctx = new ElementValueArrayInitializerContext(_ctx, getState()); - enterRule(_localctx, 240, RULE_elementValueArrayInitializer); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1453); - match(LBRACE); - setState(1455); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN) | (1L << LBRACE))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { - { - setState(1454); - elementValueList(); - } - } - - setState(1458); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==COMMA) { - { - setState(1457); - match(COMMA); - } - } - - setState(1460); - match(RBRACE); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ElementValueListContext extends ParserRuleContext { - public List elementValue() { - return getRuleContexts(ElementValueContext.class); - } - public ElementValueContext elementValue(int i) { - return getRuleContext(ElementValueContext.class,i); - } - public ElementValueListContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_elementValueList; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterElementValueList(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitElementValueList(this); - } - } - - public final ElementValueListContext elementValueList() throws RecognitionException { - ElementValueListContext _localctx = new ElementValueListContext(_ctx, getState()); - enterRule(_localctx, 242, RULE_elementValueList); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(1462); - elementValue(); - setState(1467); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,152,_ctx); - while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(1463); - match(COMMA); - setState(1464); - elementValue(); - } - } - } - setState(1469); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,152,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class MarkerAnnotationContext extends ParserRuleContext { - public TypeNameContext typeName() { - return getRuleContext(TypeNameContext.class,0); - } - public MarkerAnnotationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_markerAnnotation; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMarkerAnnotation(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMarkerAnnotation(this); - } - } - - public final MarkerAnnotationContext markerAnnotation() throws RecognitionException { - MarkerAnnotationContext _localctx = new MarkerAnnotationContext(_ctx, getState()); - enterRule(_localctx, 244, RULE_markerAnnotation); - try { - enterOuterAlt(_localctx, 1); - { - setState(1470); - match(AT); - setState(1471); - typeName(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class SingleElementAnnotationContext extends ParserRuleContext { - public TypeNameContext typeName() { - return getRuleContext(TypeNameContext.class,0); - } - public ElementValueContext elementValue() { - return getRuleContext(ElementValueContext.class,0); - } - public SingleElementAnnotationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_singleElementAnnotation; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSingleElementAnnotation(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSingleElementAnnotation(this); - } - } - - public final SingleElementAnnotationContext singleElementAnnotation() throws RecognitionException { - SingleElementAnnotationContext _localctx = new SingleElementAnnotationContext(_ctx, getState()); - enterRule(_localctx, 246, RULE_singleElementAnnotation); - try { - enterOuterAlt(_localctx, 1); - { - setState(1473); - match(AT); - setState(1474); - typeName(); - setState(1475); - match(LPAREN); - setState(1476); - elementValue(); - setState(1477); - match(RPAREN); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ArrayInitializerContext extends ParserRuleContext { - public VariableInitializerListContext variableInitializerList() { - return getRuleContext(VariableInitializerListContext.class,0); - } - public ArrayInitializerContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_arrayInitializer; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterArrayInitializer(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitArrayInitializer(this); - } - } - - public final ArrayInitializerContext arrayInitializer() throws RecognitionException { - ArrayInitializerContext _localctx = new ArrayInitializerContext(_ctx, getState()); - enterRule(_localctx, 248, RULE_arrayInitializer); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1479); - match(LBRACE); - setState(1481); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN) | (1L << LBRACE))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { - { - setState(1480); - variableInitializerList(); - } - } - - setState(1484); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==COMMA) { - { - setState(1483); - match(COMMA); - } - } - - setState(1486); - match(RBRACE); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class VariableInitializerListContext extends ParserRuleContext { - public List variableInitializer() { - return getRuleContexts(VariableInitializerContext.class); - } - public VariableInitializerContext variableInitializer(int i) { - return getRuleContext(VariableInitializerContext.class,i); - } - public VariableInitializerListContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_variableInitializerList; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterVariableInitializerList(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitVariableInitializerList(this); - } - } - - public final VariableInitializerListContext variableInitializerList() throws RecognitionException { - VariableInitializerListContext _localctx = new VariableInitializerListContext(_ctx, getState()); - enterRule(_localctx, 250, RULE_variableInitializerList); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(1488); - variableInitializer(); - setState(1493); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,155,_ctx); - while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(1489); - match(COMMA); - setState(1490); - variableInitializer(); - } - } - } - setState(1495); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,155,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class BlockContext extends ParserRuleContext { - public BlockStatementsContext blockStatements() { - return getRuleContext(BlockStatementsContext.class,0); - } - public BlockContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_block; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterBlock(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitBlock(this); - } - } - - public final BlockContext block() throws RecognitionException { - BlockContext _localctx = new BlockContext(_ctx, getState()); - enterRule(_localctx, 252, RULE_block); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1496); - match(LBRACE); - setState(1498); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (1L << ABSTRACT) | (1L << ASSERT) | (1L << BOOLEAN) | (1L << BREAK) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << CONTINUE) | (1L << DO) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << FOR) | (1L << IF) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << RETURN) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << SUPER) | (1L << SWITCH) | (1L << SYNCHRONIZED) | (1L << THIS) | (1L << THROW) | (1L << TRY) | (1L << VOID) | (1L << WHILE) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN) | (1L << LBRACE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (SEMI - 64)) | (1L << (INC - 64)) | (1L << (DEC - 64)) | (1L << (Identifier - 64)) | (1L << (AT - 64)))) != 0)) { - { - setState(1497); - blockStatements(); - } - } - - setState(1500); - match(RBRACE); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class BlockStatementsContext extends ParserRuleContext { - public List blockStatement() { - return getRuleContexts(BlockStatementContext.class); - } - public BlockStatementContext blockStatement(int i) { - return getRuleContext(BlockStatementContext.class,i); - } - public BlockStatementsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_blockStatements; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterBlockStatements(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitBlockStatements(this); - } - } - - public final BlockStatementsContext blockStatements() throws RecognitionException { - BlockStatementsContext _localctx = new BlockStatementsContext(_ctx, getState()); - enterRule(_localctx, 254, RULE_blockStatements); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1502); - blockStatement(); - setState(1506); - _errHandler.sync(this); - _la = _input.LA(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (1L << ABSTRACT) | (1L << ASSERT) | (1L << BOOLEAN) | (1L << BREAK) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << CONTINUE) | (1L << DO) | (1L << DOUBLE) | (1L << ENUM) | (1L << FINAL) | (1L << FLOAT) | (1L << FOR) | (1L << IF) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << PRIVATE) | (1L << PROTECTED) | (1L << PUBLIC) | (1L << RETURN) | (1L << SHORT) | (1L << STATIC) | (1L << STRICTFP) | (1L << SUPER) | (1L << SWITCH) | (1L << SYNCHRONIZED) | (1L << THIS) | (1L << THROW) | (1L << TRY) | (1L << VOID) | (1L << WHILE) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN) | (1L << LBRACE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (SEMI - 64)) | (1L << (INC - 64)) | (1L << (DEC - 64)) | (1L << (Identifier - 64)) | (1L << (AT - 64)))) != 0)) { - { - { - setState(1503); - blockStatement(); - } - } - setState(1508); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class BlockStatementContext extends ParserRuleContext { - public LocalVariableDeclarationStatementContext localVariableDeclarationStatement() { - return getRuleContext(LocalVariableDeclarationStatementContext.class,0); - } - public ClassDeclarationContext classDeclaration() { - return getRuleContext(ClassDeclarationContext.class,0); - } - public StatementContext statement() { - return getRuleContext(StatementContext.class,0); - } - public BlockStatementContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_blockStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterBlockStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitBlockStatement(this); - } - } - - public final BlockStatementContext blockStatement() throws RecognitionException { - BlockStatementContext _localctx = new BlockStatementContext(_ctx, getState()); - enterRule(_localctx, 256, RULE_blockStatement); - try { - setState(1512); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,158,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1509); - localVariableDeclarationStatement(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1510); - classDeclaration(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(1511); - statement(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class LocalVariableDeclarationStatementContext extends ParserRuleContext { - public LocalVariableDeclarationContext localVariableDeclaration() { - return getRuleContext(LocalVariableDeclarationContext.class,0); - } - public LocalVariableDeclarationStatementContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_localVariableDeclarationStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterLocalVariableDeclarationStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLocalVariableDeclarationStatement(this); - } - } - - public final LocalVariableDeclarationStatementContext localVariableDeclarationStatement() throws RecognitionException { - LocalVariableDeclarationStatementContext _localctx = new LocalVariableDeclarationStatementContext(_ctx, getState()); - enterRule(_localctx, 258, RULE_localVariableDeclarationStatement); - try { - enterOuterAlt(_localctx, 1); - { - setState(1514); - localVariableDeclaration(); - setState(1515); - match(SEMI); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class UnannTypeOrAutoContext extends ParserRuleContext { - public UnannTypeContext unannType() { - return getRuleContext(UnannTypeContext.class,0); - } - public UnannTypeOrAutoContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_unannTypeOrAuto; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnannTypeOrAuto(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnannTypeOrAuto(this); - } - } - - public final UnannTypeOrAutoContext unannTypeOrAuto() throws RecognitionException { - UnannTypeOrAutoContext _localctx = new UnannTypeOrAutoContext(_ctx, getState()); - enterRule(_localctx, 260, RULE_unannTypeOrAuto); - try { - setState(1519); - _errHandler.sync(this); - switch (_input.LA(1)) { - case BOOLEAN: - case BYTE: - case CHAR: - case DOUBLE: - case FLOAT: - case INT: - case LONG: - case SHORT: - case Identifier: - enterOuterAlt(_localctx, 1); - { - setState(1517); - unannType(); - } - break; - case T__0: - enterOuterAlt(_localctx, 2); - { - setState(1518); - match(T__0); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class LocalVariableDeclarationContext extends ParserRuleContext { - public UnannTypeOrAutoContext unannTypeOrAuto() { - return getRuleContext(UnannTypeOrAutoContext.class,0); - } - public VariableDeclaratorListContext variableDeclaratorList() { - return getRuleContext(VariableDeclaratorListContext.class,0); - } - public List variableModifier() { - return getRuleContexts(VariableModifierContext.class); - } - public VariableModifierContext variableModifier(int i) { - return getRuleContext(VariableModifierContext.class,i); - } - public LocalVariableDeclarationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_localVariableDeclaration; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterLocalVariableDeclaration(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLocalVariableDeclaration(this); - } - } - - public final LocalVariableDeclarationContext localVariableDeclaration() throws RecognitionException { - LocalVariableDeclarationContext _localctx = new LocalVariableDeclarationContext(_ctx, getState()); - enterRule(_localctx, 262, RULE_localVariableDeclaration); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1524); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==FINAL || _la==AT) { - { - { - setState(1521); - variableModifier(); - } - } - setState(1526); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(1527); - unannTypeOrAuto(); - setState(1528); - variableDeclaratorList(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class StatementContext extends ParserRuleContext { - public StatementWithoutTrailingSubstatementContext statementWithoutTrailingSubstatement() { - return getRuleContext(StatementWithoutTrailingSubstatementContext.class,0); - } - public LabeledStatementContext labeledStatement() { - return getRuleContext(LabeledStatementContext.class,0); - } - public IfThenStatementContext ifThenStatement() { - return getRuleContext(IfThenStatementContext.class,0); - } - public IfThenElseStatementContext ifThenElseStatement() { - return getRuleContext(IfThenElseStatementContext.class,0); - } - public WhileStatementContext whileStatement() { - return getRuleContext(WhileStatementContext.class,0); - } - public ForStatementContext forStatement() { - return getRuleContext(ForStatementContext.class,0); - } - public StatementContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_statement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitStatement(this); - } - } - - public final StatementContext statement() throws RecognitionException { - StatementContext _localctx = new StatementContext(_ctx, getState()); - enterRule(_localctx, 264, RULE_statement); - try { - setState(1536); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,161,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1530); - statementWithoutTrailingSubstatement(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1531); - labeledStatement(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(1532); - ifThenStatement(); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(1533); - ifThenElseStatement(); - } - break; - case 5: - enterOuterAlt(_localctx, 5); - { - setState(1534); - whileStatement(); - } - break; - case 6: - enterOuterAlt(_localctx, 6); - { - setState(1535); - forStatement(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class StatementNoShortIfContext extends ParserRuleContext { - public StatementWithoutTrailingSubstatementContext statementWithoutTrailingSubstatement() { - return getRuleContext(StatementWithoutTrailingSubstatementContext.class,0); - } - public LabeledStatementNoShortIfContext labeledStatementNoShortIf() { - return getRuleContext(LabeledStatementNoShortIfContext.class,0); - } - public IfThenElseStatementNoShortIfContext ifThenElseStatementNoShortIf() { - return getRuleContext(IfThenElseStatementNoShortIfContext.class,0); - } - public WhileStatementNoShortIfContext whileStatementNoShortIf() { - return getRuleContext(WhileStatementNoShortIfContext.class,0); - } - public ForStatementNoShortIfContext forStatementNoShortIf() { - return getRuleContext(ForStatementNoShortIfContext.class,0); - } - public StatementNoShortIfContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_statementNoShortIf; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterStatementNoShortIf(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitStatementNoShortIf(this); - } - } - - public final StatementNoShortIfContext statementNoShortIf() throws RecognitionException { - StatementNoShortIfContext _localctx = new StatementNoShortIfContext(_ctx, getState()); - enterRule(_localctx, 266, RULE_statementNoShortIf); - try { - setState(1543); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,162,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1538); - statementWithoutTrailingSubstatement(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1539); - labeledStatementNoShortIf(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(1540); - ifThenElseStatementNoShortIf(); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(1541); - whileStatementNoShortIf(); - } - break; - case 5: - enterOuterAlt(_localctx, 5); - { - setState(1542); - forStatementNoShortIf(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class StatementWithoutTrailingSubstatementContext extends ParserRuleContext { - public BlockContext block() { - return getRuleContext(BlockContext.class,0); - } - public EmptyStatementContext emptyStatement() { - return getRuleContext(EmptyStatementContext.class,0); - } - public ExpressionStatementContext expressionStatement() { - return getRuleContext(ExpressionStatementContext.class,0); - } - public AssertStatementContext assertStatement() { - return getRuleContext(AssertStatementContext.class,0); - } - public SwitchStatementContext switchStatement() { - return getRuleContext(SwitchStatementContext.class,0); - } - public DoStatementContext doStatement() { - return getRuleContext(DoStatementContext.class,0); - } - public BreakStatementContext breakStatement() { - return getRuleContext(BreakStatementContext.class,0); - } - public ContinueStatementContext continueStatement() { - return getRuleContext(ContinueStatementContext.class,0); - } - public ReturnStatementContext returnStatement() { - return getRuleContext(ReturnStatementContext.class,0); - } - public SynchronizedStatementContext synchronizedStatement() { - return getRuleContext(SynchronizedStatementContext.class,0); - } - public ThrowStatementContext throwStatement() { - return getRuleContext(ThrowStatementContext.class,0); - } - public TryStatementContext tryStatement() { - return getRuleContext(TryStatementContext.class,0); - } - public StatementWithoutTrailingSubstatementContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_statementWithoutTrailingSubstatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterStatementWithoutTrailingSubstatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitStatementWithoutTrailingSubstatement(this); - } - } - - public final StatementWithoutTrailingSubstatementContext statementWithoutTrailingSubstatement() throws RecognitionException { - StatementWithoutTrailingSubstatementContext _localctx = new StatementWithoutTrailingSubstatementContext(_ctx, getState()); - enterRule(_localctx, 268, RULE_statementWithoutTrailingSubstatement); - try { - setState(1557); - _errHandler.sync(this); - switch (_input.LA(1)) { - case LBRACE: - enterOuterAlt(_localctx, 1); - { - setState(1545); - block(); - } - break; - case SEMI: - enterOuterAlt(_localctx, 2); - { - setState(1546); - emptyStatement(); - } - break; - case BOOLEAN: - case BYTE: - case CHAR: - case DOUBLE: - case FLOAT: - case INT: - case LONG: - case NEW: - case SHORT: - case SUPER: - case THIS: - case VOID: - case IntegerLiteral: - case FloatingPointLiteral: - case BooleanLiteral: - case CharacterLiteral: - case StringLiteral: - case NullLiteral: - case LPAREN: - case INC: - case DEC: - case Identifier: - case AT: - enterOuterAlt(_localctx, 3); - { - setState(1547); - expressionStatement(); - } - break; - case ASSERT: - enterOuterAlt(_localctx, 4); - { - setState(1548); - assertStatement(); - } - break; - case SWITCH: - enterOuterAlt(_localctx, 5); - { - setState(1549); - switchStatement(); - } - break; - case DO: - enterOuterAlt(_localctx, 6); - { - setState(1550); - doStatement(); - } - break; - case BREAK: - enterOuterAlt(_localctx, 7); - { - setState(1551); - breakStatement(); - } - break; - case CONTINUE: - enterOuterAlt(_localctx, 8); - { - setState(1552); - continueStatement(); - } - break; - case RETURN: - enterOuterAlt(_localctx, 9); - { - setState(1553); - returnStatement(); - } - break; - case SYNCHRONIZED: - enterOuterAlt(_localctx, 10); - { - setState(1554); - synchronizedStatement(); - } - break; - case THROW: - enterOuterAlt(_localctx, 11); - { - setState(1555); - throwStatement(); - } - break; - case TRY: - enterOuterAlt(_localctx, 12); - { - setState(1556); - tryStatement(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class EmptyStatementContext extends ParserRuleContext { - public EmptyStatementContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_emptyStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEmptyStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEmptyStatement(this); - } - } - - public final EmptyStatementContext emptyStatement() throws RecognitionException { - EmptyStatementContext _localctx = new EmptyStatementContext(_ctx, getState()); - enterRule(_localctx, 270, RULE_emptyStatement); - try { - enterOuterAlt(_localctx, 1); - { - setState(1559); - match(SEMI); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class LabeledStatementContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public StatementContext statement() { - return getRuleContext(StatementContext.class,0); - } - public LabeledStatementContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_labeledStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterLabeledStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLabeledStatement(this); - } - } - - public final LabeledStatementContext labeledStatement() throws RecognitionException { - LabeledStatementContext _localctx = new LabeledStatementContext(_ctx, getState()); - enterRule(_localctx, 272, RULE_labeledStatement); - try { - enterOuterAlt(_localctx, 1); - { - setState(1561); - match(Identifier); - setState(1562); - match(COLON); - setState(1563); - statement(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class LabeledStatementNoShortIfContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public StatementNoShortIfContext statementNoShortIf() { - return getRuleContext(StatementNoShortIfContext.class,0); - } - public LabeledStatementNoShortIfContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_labeledStatementNoShortIf; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterLabeledStatementNoShortIf(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLabeledStatementNoShortIf(this); - } - } - - public final LabeledStatementNoShortIfContext labeledStatementNoShortIf() throws RecognitionException { - LabeledStatementNoShortIfContext _localctx = new LabeledStatementNoShortIfContext(_ctx, getState()); - enterRule(_localctx, 274, RULE_labeledStatementNoShortIf); - try { - enterOuterAlt(_localctx, 1); - { - setState(1565); - match(Identifier); - setState(1566); - match(COLON); - setState(1567); - statementNoShortIf(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ExpressionStatementContext extends ParserRuleContext { - public StatementExpressionContext statementExpression() { - return getRuleContext(StatementExpressionContext.class,0); - } - public ExpressionStatementContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_expressionStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterExpressionStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitExpressionStatement(this); - } - } - - public final ExpressionStatementContext expressionStatement() throws RecognitionException { - ExpressionStatementContext _localctx = new ExpressionStatementContext(_ctx, getState()); - enterRule(_localctx, 276, RULE_expressionStatement); - try { - enterOuterAlt(_localctx, 1); - { - setState(1569); - statementExpression(); - setState(1570); - match(SEMI); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class StatementExpressionContext extends ParserRuleContext { - public AssignmentContext assignment() { - return getRuleContext(AssignmentContext.class,0); - } - public PreIncrementExpressionContext preIncrementExpression() { - return getRuleContext(PreIncrementExpressionContext.class,0); - } - public PreDecrementExpressionContext preDecrementExpression() { - return getRuleContext(PreDecrementExpressionContext.class,0); - } - public PostIncrementExpressionContext postIncrementExpression() { - return getRuleContext(PostIncrementExpressionContext.class,0); - } - public PostDecrementExpressionContext postDecrementExpression() { - return getRuleContext(PostDecrementExpressionContext.class,0); - } - public MethodInvocationContext methodInvocation() { - return getRuleContext(MethodInvocationContext.class,0); - } - public ClassInstanceCreationExpressionContext classInstanceCreationExpression() { - return getRuleContext(ClassInstanceCreationExpressionContext.class,0); - } - public StatementExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_statementExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterStatementExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitStatementExpression(this); - } - } - - public final StatementExpressionContext statementExpression() throws RecognitionException { - StatementExpressionContext _localctx = new StatementExpressionContext(_ctx, getState()); - enterRule(_localctx, 278, RULE_statementExpression); - try { - setState(1579); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,164,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1572); - assignment(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1573); - preIncrementExpression(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(1574); - preDecrementExpression(); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(1575); - postIncrementExpression(); - } - break; - case 5: - enterOuterAlt(_localctx, 5); - { - setState(1576); - postDecrementExpression(); - } - break; - case 6: - enterOuterAlt(_localctx, 6); - { - setState(1577); - methodInvocation(); - } - break; - case 7: - enterOuterAlt(_localctx, 7); - { - setState(1578); - classInstanceCreationExpression(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class IfThenStatementContext extends ParserRuleContext { - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public StatementContext statement() { - return getRuleContext(StatementContext.class,0); - } - public IfThenStatementContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_ifThenStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterIfThenStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitIfThenStatement(this); - } - } - - public final IfThenStatementContext ifThenStatement() throws RecognitionException { - IfThenStatementContext _localctx = new IfThenStatementContext(_ctx, getState()); - enterRule(_localctx, 280, RULE_ifThenStatement); - try { - enterOuterAlt(_localctx, 1); - { - setState(1581); - match(IF); - setState(1582); - match(LPAREN); - setState(1583); - expression(); - setState(1584); - match(RPAREN); - setState(1585); - statement(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class IfThenElseStatementContext extends ParserRuleContext { - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public StatementNoShortIfContext statementNoShortIf() { - return getRuleContext(StatementNoShortIfContext.class,0); - } - public StatementContext statement() { - return getRuleContext(StatementContext.class,0); - } - public IfThenElseStatementContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_ifThenElseStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterIfThenElseStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitIfThenElseStatement(this); - } - } - - public final IfThenElseStatementContext ifThenElseStatement() throws RecognitionException { - IfThenElseStatementContext _localctx = new IfThenElseStatementContext(_ctx, getState()); - enterRule(_localctx, 282, RULE_ifThenElseStatement); - try { - enterOuterAlt(_localctx, 1); - { - setState(1587); - match(IF); - setState(1588); - match(LPAREN); - setState(1589); - expression(); - setState(1590); - match(RPAREN); - setState(1591); - statementNoShortIf(); - setState(1592); - match(ELSE); - setState(1593); - statement(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class IfThenElseStatementNoShortIfContext extends ParserRuleContext { - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public List statementNoShortIf() { - return getRuleContexts(StatementNoShortIfContext.class); - } - public StatementNoShortIfContext statementNoShortIf(int i) { - return getRuleContext(StatementNoShortIfContext.class,i); - } - public IfThenElseStatementNoShortIfContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_ifThenElseStatementNoShortIf; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterIfThenElseStatementNoShortIf(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitIfThenElseStatementNoShortIf(this); - } - } - - public final IfThenElseStatementNoShortIfContext ifThenElseStatementNoShortIf() throws RecognitionException { - IfThenElseStatementNoShortIfContext _localctx = new IfThenElseStatementNoShortIfContext(_ctx, getState()); - enterRule(_localctx, 284, RULE_ifThenElseStatementNoShortIf); - try { - enterOuterAlt(_localctx, 1); - { - setState(1595); - match(IF); - setState(1596); - match(LPAREN); - setState(1597); - expression(); - setState(1598); - match(RPAREN); - setState(1599); - statementNoShortIf(); - setState(1600); - match(ELSE); - setState(1601); - statementNoShortIf(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class AssertStatementContext extends ParserRuleContext { - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public AssertStatementContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_assertStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAssertStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAssertStatement(this); - } - } - - public final AssertStatementContext assertStatement() throws RecognitionException { - AssertStatementContext _localctx = new AssertStatementContext(_ctx, getState()); - enterRule(_localctx, 286, RULE_assertStatement); - try { - setState(1613); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,165,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1603); - match(ASSERT); - setState(1604); - expression(); - setState(1605); - match(SEMI); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1607); - match(ASSERT); - setState(1608); - expression(); - setState(1609); - match(COLON); - setState(1610); - expression(); - setState(1611); - match(SEMI); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class SwitchStatementContext extends ParserRuleContext { - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public SwitchBlockContext switchBlock() { - return getRuleContext(SwitchBlockContext.class,0); - } - public SwitchStatementContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_switchStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSwitchStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSwitchStatement(this); - } - } - - public final SwitchStatementContext switchStatement() throws RecognitionException { - SwitchStatementContext _localctx = new SwitchStatementContext(_ctx, getState()); - enterRule(_localctx, 288, RULE_switchStatement); - try { - enterOuterAlt(_localctx, 1); - { - setState(1615); - match(SWITCH); - setState(1616); - match(LPAREN); - setState(1617); - expression(); - setState(1618); - match(RPAREN); - setState(1619); - switchBlock(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class SwitchBlockContext extends ParserRuleContext { - public List switchBlockStatementGroup() { - return getRuleContexts(SwitchBlockStatementGroupContext.class); - } - public SwitchBlockStatementGroupContext switchBlockStatementGroup(int i) { - return getRuleContext(SwitchBlockStatementGroupContext.class,i); - } - public List switchLabel() { - return getRuleContexts(SwitchLabelContext.class); - } - public SwitchLabelContext switchLabel(int i) { - return getRuleContext(SwitchLabelContext.class,i); - } - public SwitchBlockContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_switchBlock; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSwitchBlock(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSwitchBlock(this); - } - } - - public final SwitchBlockContext switchBlock() throws RecognitionException { - SwitchBlockContext _localctx = new SwitchBlockContext(_ctx, getState()); - enterRule(_localctx, 290, RULE_switchBlock); - int _la; - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(1621); - match(LBRACE); - setState(1625); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,166,_ctx); - while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(1622); - switchBlockStatementGroup(); - } - } - } - setState(1627); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,166,_ctx); - } - setState(1631); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==CASE || _la==DEFAULT) { - { - { - setState(1628); - switchLabel(); - } - } - setState(1633); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(1634); - match(RBRACE); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class SwitchBlockStatementGroupContext extends ParserRuleContext { - public SwitchLabelsContext switchLabels() { - return getRuleContext(SwitchLabelsContext.class,0); - } - public BlockStatementsContext blockStatements() { - return getRuleContext(BlockStatementsContext.class,0); - } - public SwitchBlockStatementGroupContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_switchBlockStatementGroup; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSwitchBlockStatementGroup(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSwitchBlockStatementGroup(this); - } - } - - public final SwitchBlockStatementGroupContext switchBlockStatementGroup() throws RecognitionException { - SwitchBlockStatementGroupContext _localctx = new SwitchBlockStatementGroupContext(_ctx, getState()); - enterRule(_localctx, 292, RULE_switchBlockStatementGroup); - try { - enterOuterAlt(_localctx, 1); - { - setState(1636); - switchLabels(); - setState(1637); - blockStatements(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class SwitchLabelsContext extends ParserRuleContext { - public List switchLabel() { - return getRuleContexts(SwitchLabelContext.class); - } - public SwitchLabelContext switchLabel(int i) { - return getRuleContext(SwitchLabelContext.class,i); - } - public SwitchLabelsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_switchLabels; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSwitchLabels(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSwitchLabels(this); - } - } - - public final SwitchLabelsContext switchLabels() throws RecognitionException { - SwitchLabelsContext _localctx = new SwitchLabelsContext(_ctx, getState()); - enterRule(_localctx, 294, RULE_switchLabels); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1639); - switchLabel(); - setState(1643); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==CASE || _la==DEFAULT) { - { - { - setState(1640); - switchLabel(); - } - } - setState(1645); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class SwitchLabelContext extends ParserRuleContext { - public ConstantExpressionContext constantExpression() { - return getRuleContext(ConstantExpressionContext.class,0); - } - public EnumConstantNameContext enumConstantName() { - return getRuleContext(EnumConstantNameContext.class,0); - } - public SwitchLabelContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_switchLabel; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSwitchLabel(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSwitchLabel(this); - } - } - - public final SwitchLabelContext switchLabel() throws RecognitionException { - SwitchLabelContext _localctx = new SwitchLabelContext(_ctx, getState()); - enterRule(_localctx, 296, RULE_switchLabel); - try { - setState(1656); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,169,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1646); - match(CASE); - setState(1647); - constantExpression(); - setState(1648); - match(COLON); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1650); - match(CASE); - setState(1651); - enumConstantName(); - setState(1652); - match(COLON); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(1654); - match(DEFAULT); - setState(1655); - match(COLON); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class EnumConstantNameContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public EnumConstantNameContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_enumConstantName; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEnumConstantName(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnumConstantName(this); - } - } - - public final EnumConstantNameContext enumConstantName() throws RecognitionException { - EnumConstantNameContext _localctx = new EnumConstantNameContext(_ctx, getState()); - enterRule(_localctx, 298, RULE_enumConstantName); - try { - enterOuterAlt(_localctx, 1); - { - setState(1658); - match(Identifier); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class WhileStatementContext extends ParserRuleContext { - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public StatementContext statement() { - return getRuleContext(StatementContext.class,0); - } - public WhileStatementContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_whileStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterWhileStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitWhileStatement(this); - } - } - - public final WhileStatementContext whileStatement() throws RecognitionException { - WhileStatementContext _localctx = new WhileStatementContext(_ctx, getState()); - enterRule(_localctx, 300, RULE_whileStatement); - try { - enterOuterAlt(_localctx, 1); - { - setState(1660); - match(WHILE); - setState(1661); - match(LPAREN); - setState(1662); - expression(); - setState(1663); - match(RPAREN); - setState(1664); - statement(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class WhileStatementNoShortIfContext extends ParserRuleContext { - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public StatementNoShortIfContext statementNoShortIf() { - return getRuleContext(StatementNoShortIfContext.class,0); - } - public WhileStatementNoShortIfContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_whileStatementNoShortIf; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterWhileStatementNoShortIf(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitWhileStatementNoShortIf(this); - } - } - - public final WhileStatementNoShortIfContext whileStatementNoShortIf() throws RecognitionException { - WhileStatementNoShortIfContext _localctx = new WhileStatementNoShortIfContext(_ctx, getState()); - enterRule(_localctx, 302, RULE_whileStatementNoShortIf); - try { - enterOuterAlt(_localctx, 1); - { - setState(1666); - match(WHILE); - setState(1667); - match(LPAREN); - setState(1668); - expression(); - setState(1669); - match(RPAREN); - setState(1670); - statementNoShortIf(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class DoStatementContext extends ParserRuleContext { - public StatementContext statement() { - return getRuleContext(StatementContext.class,0); - } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public DoStatementContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_doStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterDoStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitDoStatement(this); - } - } - - public final DoStatementContext doStatement() throws RecognitionException { - DoStatementContext _localctx = new DoStatementContext(_ctx, getState()); - enterRule(_localctx, 304, RULE_doStatement); - try { - enterOuterAlt(_localctx, 1); - { - setState(1672); - match(DO); - setState(1673); - statement(); - setState(1674); - match(WHILE); - setState(1675); - match(LPAREN); - setState(1676); - expression(); - setState(1677); - match(RPAREN); - setState(1678); - match(SEMI); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ForStatementContext extends ParserRuleContext { - public BasicForStatementContext basicForStatement() { - return getRuleContext(BasicForStatementContext.class,0); - } - public EnhancedForStatementContext enhancedForStatement() { - return getRuleContext(EnhancedForStatementContext.class,0); - } - public ForStatementContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_forStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterForStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitForStatement(this); - } - } - - public final ForStatementContext forStatement() throws RecognitionException { - ForStatementContext _localctx = new ForStatementContext(_ctx, getState()); - enterRule(_localctx, 306, RULE_forStatement); - try { - setState(1682); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,170,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1680); - basicForStatement(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1681); - enhancedForStatement(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ForStatementNoShortIfContext extends ParserRuleContext { - public BasicForStatementNoShortIfContext basicForStatementNoShortIf() { - return getRuleContext(BasicForStatementNoShortIfContext.class,0); - } - public EnhancedForStatementNoShortIfContext enhancedForStatementNoShortIf() { - return getRuleContext(EnhancedForStatementNoShortIfContext.class,0); - } - public ForStatementNoShortIfContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_forStatementNoShortIf; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterForStatementNoShortIf(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitForStatementNoShortIf(this); - } - } - - public final ForStatementNoShortIfContext forStatementNoShortIf() throws RecognitionException { - ForStatementNoShortIfContext _localctx = new ForStatementNoShortIfContext(_ctx, getState()); - enterRule(_localctx, 308, RULE_forStatementNoShortIf); - try { - setState(1686); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,171,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1684); - basicForStatementNoShortIf(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1685); - enhancedForStatementNoShortIf(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class BasicForStatementContext extends ParserRuleContext { - public StatementContext statement() { - return getRuleContext(StatementContext.class,0); - } - public ForInitContext forInit() { - return getRuleContext(ForInitContext.class,0); - } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public ForUpdateContext forUpdate() { - return getRuleContext(ForUpdateContext.class,0); - } - public BasicForStatementContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_basicForStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterBasicForStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitBasicForStatement(this); - } - } - - public final BasicForStatementContext basicForStatement() throws RecognitionException { - BasicForStatementContext _localctx = new BasicForStatementContext(_ctx, getState()); - enterRule(_localctx, 310, RULE_basicForStatement); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1688); - match(FOR); - setState(1689); - match(LPAREN); - setState(1691); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 80)) & ~0x3f) == 0 && ((1L << (_la - 80)) & ((1L << (INC - 80)) | (1L << (DEC - 80)) | (1L << (Identifier - 80)) | (1L << (AT - 80)))) != 0)) { - { - setState(1690); - forInit(); - } - } - - setState(1693); - match(SEMI); - setState(1695); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { - { - setState(1694); - expression(); - } - } - - setState(1697); - match(SEMI); - setState(1699); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 80)) & ~0x3f) == 0 && ((1L << (_la - 80)) & ((1L << (INC - 80)) | (1L << (DEC - 80)) | (1L << (Identifier - 80)) | (1L << (AT - 80)))) != 0)) { - { - setState(1698); - forUpdate(); - } - } - - setState(1701); - match(RPAREN); - setState(1702); - statement(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class BasicForStatementNoShortIfContext extends ParserRuleContext { - public StatementNoShortIfContext statementNoShortIf() { - return getRuleContext(StatementNoShortIfContext.class,0); - } - public ForInitContext forInit() { - return getRuleContext(ForInitContext.class,0); - } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public ForUpdateContext forUpdate() { - return getRuleContext(ForUpdateContext.class,0); - } - public BasicForStatementNoShortIfContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_basicForStatementNoShortIf; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterBasicForStatementNoShortIf(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitBasicForStatementNoShortIf(this); - } - } - - public final BasicForStatementNoShortIfContext basicForStatementNoShortIf() throws RecognitionException { - BasicForStatementNoShortIfContext _localctx = new BasicForStatementNoShortIfContext(_ctx, getState()); - enterRule(_localctx, 312, RULE_basicForStatementNoShortIf); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1704); - match(FOR); - setState(1705); - match(LPAREN); - setState(1707); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 80)) & ~0x3f) == 0 && ((1L << (_la - 80)) & ((1L << (INC - 80)) | (1L << (DEC - 80)) | (1L << (Identifier - 80)) | (1L << (AT - 80)))) != 0)) { - { - setState(1706); - forInit(); - } - } - - setState(1709); - match(SEMI); - setState(1711); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { - { - setState(1710); - expression(); - } - } - - setState(1713); - match(SEMI); - setState(1715); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 80)) & ~0x3f) == 0 && ((1L << (_la - 80)) & ((1L << (INC - 80)) | (1L << (DEC - 80)) | (1L << (Identifier - 80)) | (1L << (AT - 80)))) != 0)) { - { - setState(1714); - forUpdate(); - } - } - - setState(1717); - match(RPAREN); - setState(1718); - statementNoShortIf(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ForInitContext extends ParserRuleContext { - public StatementExpressionListContext statementExpressionList() { - return getRuleContext(StatementExpressionListContext.class,0); - } - public LocalVariableDeclarationContext localVariableDeclaration() { - return getRuleContext(LocalVariableDeclarationContext.class,0); - } - public ForInitContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_forInit; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterForInit(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitForInit(this); - } - } - - public final ForInitContext forInit() throws RecognitionException { - ForInitContext _localctx = new ForInitContext(_ctx, getState()); - enterRule(_localctx, 314, RULE_forInit); - try { - setState(1722); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,178,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1720); - statementExpressionList(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1721); - localVariableDeclaration(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ForUpdateContext extends ParserRuleContext { - public StatementExpressionListContext statementExpressionList() { - return getRuleContext(StatementExpressionListContext.class,0); - } - public ForUpdateContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_forUpdate; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterForUpdate(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitForUpdate(this); - } - } - - public final ForUpdateContext forUpdate() throws RecognitionException { - ForUpdateContext _localctx = new ForUpdateContext(_ctx, getState()); - enterRule(_localctx, 316, RULE_forUpdate); - try { - enterOuterAlt(_localctx, 1); - { - setState(1724); - statementExpressionList(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class StatementExpressionListContext extends ParserRuleContext { - public List statementExpression() { - return getRuleContexts(StatementExpressionContext.class); - } - public StatementExpressionContext statementExpression(int i) { - return getRuleContext(StatementExpressionContext.class,i); - } - public StatementExpressionListContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_statementExpressionList; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterStatementExpressionList(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitStatementExpressionList(this); - } - } - - public final StatementExpressionListContext statementExpressionList() throws RecognitionException { - StatementExpressionListContext _localctx = new StatementExpressionListContext(_ctx, getState()); - enterRule(_localctx, 318, RULE_statementExpressionList); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1726); - statementExpression(); - setState(1731); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==COMMA) { - { - { - setState(1727); - match(COMMA); - setState(1728); - statementExpression(); - } - } - setState(1733); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class EnhancedForStatementContext extends ParserRuleContext { - public UnannTypeContext unannType() { - return getRuleContext(UnannTypeContext.class,0); - } - public VariableDeclaratorIdContext variableDeclaratorId() { - return getRuleContext(VariableDeclaratorIdContext.class,0); - } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public StatementContext statement() { - return getRuleContext(StatementContext.class,0); - } - public List variableModifier() { - return getRuleContexts(VariableModifierContext.class); - } - public VariableModifierContext variableModifier(int i) { - return getRuleContext(VariableModifierContext.class,i); - } - public EnhancedForStatementContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_enhancedForStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEnhancedForStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnhancedForStatement(this); - } - } - - public final EnhancedForStatementContext enhancedForStatement() throws RecognitionException { - EnhancedForStatementContext _localctx = new EnhancedForStatementContext(_ctx, getState()); - enterRule(_localctx, 320, RULE_enhancedForStatement); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1734); - match(FOR); - setState(1735); - match(LPAREN); - setState(1739); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==FINAL || _la==AT) { - { - { - setState(1736); - variableModifier(); - } - } - setState(1741); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(1742); - unannType(); - setState(1743); - variableDeclaratorId(); - setState(1744); - match(COLON); - setState(1745); - expression(); - setState(1746); - match(RPAREN); - setState(1747); - statement(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class EnhancedForStatementNoShortIfContext extends ParserRuleContext { - public UnannTypeContext unannType() { - return getRuleContext(UnannTypeContext.class,0); - } - public VariableDeclaratorIdContext variableDeclaratorId() { - return getRuleContext(VariableDeclaratorIdContext.class,0); - } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public StatementNoShortIfContext statementNoShortIf() { - return getRuleContext(StatementNoShortIfContext.class,0); - } - public List variableModifier() { - return getRuleContexts(VariableModifierContext.class); - } - public VariableModifierContext variableModifier(int i) { - return getRuleContext(VariableModifierContext.class,i); - } - public EnhancedForStatementNoShortIfContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_enhancedForStatementNoShortIf; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEnhancedForStatementNoShortIf(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEnhancedForStatementNoShortIf(this); - } - } - - public final EnhancedForStatementNoShortIfContext enhancedForStatementNoShortIf() throws RecognitionException { - EnhancedForStatementNoShortIfContext _localctx = new EnhancedForStatementNoShortIfContext(_ctx, getState()); - enterRule(_localctx, 322, RULE_enhancedForStatementNoShortIf); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1749); - match(FOR); - setState(1750); - match(LPAREN); - setState(1754); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==FINAL || _la==AT) { - { - { - setState(1751); - variableModifier(); - } - } - setState(1756); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(1757); - unannType(); - setState(1758); - variableDeclaratorId(); - setState(1759); - match(COLON); - setState(1760); - expression(); - setState(1761); - match(RPAREN); - setState(1762); - statementNoShortIf(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class BreakStatementContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public BreakStatementContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_breakStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterBreakStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitBreakStatement(this); - } - } - - public final BreakStatementContext breakStatement() throws RecognitionException { - BreakStatementContext _localctx = new BreakStatementContext(_ctx, getState()); - enterRule(_localctx, 324, RULE_breakStatement); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1764); - match(BREAK); - setState(1766); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==Identifier) { - { - setState(1765); - match(Identifier); - } - } - - setState(1768); - match(SEMI); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ContinueStatementContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public ContinueStatementContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_continueStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterContinueStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitContinueStatement(this); - } - } - - public final ContinueStatementContext continueStatement() throws RecognitionException { - ContinueStatementContext _localctx = new ContinueStatementContext(_ctx, getState()); - enterRule(_localctx, 326, RULE_continueStatement); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1770); - match(CONTINUE); - setState(1772); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==Identifier) { - { - setState(1771); - match(Identifier); - } - } - - setState(1774); - match(SEMI); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ReturnStatementContext extends ParserRuleContext { - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public ReturnStatementContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_returnStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterReturnStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitReturnStatement(this); - } - } - - public final ReturnStatementContext returnStatement() throws RecognitionException { - ReturnStatementContext _localctx = new ReturnStatementContext(_ctx, getState()); - enterRule(_localctx, 328, RULE_returnStatement); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1776); - match(RETURN); - setState(1778); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { - { - setState(1777); - expression(); - } - } - - setState(1780); - match(SEMI); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ThrowStatementContext extends ParserRuleContext { - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public ThrowStatementContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_throwStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterThrowStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitThrowStatement(this); - } - } - - public final ThrowStatementContext throwStatement() throws RecognitionException { - ThrowStatementContext _localctx = new ThrowStatementContext(_ctx, getState()); - enterRule(_localctx, 330, RULE_throwStatement); - try { - enterOuterAlt(_localctx, 1); - { - setState(1782); - match(THROW); - setState(1783); - expression(); - setState(1784); - match(SEMI); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class SynchronizedStatementContext extends ParserRuleContext { - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public BlockContext block() { - return getRuleContext(BlockContext.class,0); - } - public SynchronizedStatementContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_synchronizedStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterSynchronizedStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitSynchronizedStatement(this); - } - } - - public final SynchronizedStatementContext synchronizedStatement() throws RecognitionException { - SynchronizedStatementContext _localctx = new SynchronizedStatementContext(_ctx, getState()); - enterRule(_localctx, 332, RULE_synchronizedStatement); - try { - enterOuterAlt(_localctx, 1); - { - setState(1786); - match(SYNCHRONIZED); - setState(1787); - match(LPAREN); - setState(1788); - expression(); - setState(1789); - match(RPAREN); - setState(1790); - block(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class TryStatementContext extends ParserRuleContext { - public BlockContext block() { - return getRuleContext(BlockContext.class,0); - } - public CatchesContext catches() { - return getRuleContext(CatchesContext.class,0); - } - public Finally_Context finally_() { - return getRuleContext(Finally_Context.class,0); - } - public TryWithResourcesStatementContext tryWithResourcesStatement() { - return getRuleContext(TryWithResourcesStatementContext.class,0); - } - public TryStatementContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_tryStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTryStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTryStatement(this); - } - } - - public final TryStatementContext tryStatement() throws RecognitionException { - TryStatementContext _localctx = new TryStatementContext(_ctx, getState()); - enterRule(_localctx, 334, RULE_tryStatement); - int _la; - try { - setState(1804); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,186,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1792); - match(TRY); - setState(1793); - block(); - setState(1794); - catches(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1796); - match(TRY); - setState(1797); - block(); - setState(1799); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==CATCH) { - { - setState(1798); - catches(); - } - } - - setState(1801); - finally_(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(1803); - tryWithResourcesStatement(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class CatchesContext extends ParserRuleContext { - public List catchClause() { - return getRuleContexts(CatchClauseContext.class); - } - public CatchClauseContext catchClause(int i) { - return getRuleContext(CatchClauseContext.class,i); - } - public CatchesContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_catches; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterCatches(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitCatches(this); - } - } - - public final CatchesContext catches() throws RecognitionException { - CatchesContext _localctx = new CatchesContext(_ctx, getState()); - enterRule(_localctx, 336, RULE_catches); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1806); - catchClause(); - setState(1810); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==CATCH) { - { - { - setState(1807); - catchClause(); - } - } - setState(1812); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class CatchClauseContext extends ParserRuleContext { - public CatchFormalParameterContext catchFormalParameter() { - return getRuleContext(CatchFormalParameterContext.class,0); - } - public BlockContext block() { - return getRuleContext(BlockContext.class,0); - } - public CatchClauseContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_catchClause; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterCatchClause(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitCatchClause(this); - } - } - - public final CatchClauseContext catchClause() throws RecognitionException { - CatchClauseContext _localctx = new CatchClauseContext(_ctx, getState()); - enterRule(_localctx, 338, RULE_catchClause); - try { - enterOuterAlt(_localctx, 1); - { - setState(1813); - match(CATCH); - setState(1814); - match(LPAREN); - setState(1815); - catchFormalParameter(); - setState(1816); - match(RPAREN); - setState(1817); - block(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class CatchFormalParameterContext extends ParserRuleContext { - public CatchTypeContext catchType() { - return getRuleContext(CatchTypeContext.class,0); - } - public VariableDeclaratorIdContext variableDeclaratorId() { - return getRuleContext(VariableDeclaratorIdContext.class,0); - } - public List variableModifier() { - return getRuleContexts(VariableModifierContext.class); - } - public VariableModifierContext variableModifier(int i) { - return getRuleContext(VariableModifierContext.class,i); - } - public CatchFormalParameterContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_catchFormalParameter; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterCatchFormalParameter(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitCatchFormalParameter(this); - } - } - - public final CatchFormalParameterContext catchFormalParameter() throws RecognitionException { - CatchFormalParameterContext _localctx = new CatchFormalParameterContext(_ctx, getState()); - enterRule(_localctx, 340, RULE_catchFormalParameter); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1822); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==FINAL || _la==AT) { - { - { - setState(1819); - variableModifier(); - } - } - setState(1824); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(1825); - catchType(); - setState(1826); - variableDeclaratorId(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class CatchTypeContext extends ParserRuleContext { - public UnannClassTypeContext unannClassType() { - return getRuleContext(UnannClassTypeContext.class,0); - } - public List classType() { - return getRuleContexts(ClassTypeContext.class); - } - public ClassTypeContext classType(int i) { - return getRuleContext(ClassTypeContext.class,i); - } - public CatchTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_catchType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterCatchType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitCatchType(this); - } - } - - public final CatchTypeContext catchType() throws RecognitionException { - CatchTypeContext _localctx = new CatchTypeContext(_ctx, getState()); - enterRule(_localctx, 342, RULE_catchType); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1828); - unannClassType(); - setState(1833); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==BITOR) { - { - { - setState(1829); - match(BITOR); - setState(1830); - classType(); - } - } - setState(1835); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class Finally_Context extends ParserRuleContext { - public BlockContext block() { - return getRuleContext(BlockContext.class,0); - } - public Finally_Context(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_finally_; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterFinally_(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFinally_(this); - } - } - - public final Finally_Context finally_() throws RecognitionException { - Finally_Context _localctx = new Finally_Context(_ctx, getState()); - enterRule(_localctx, 344, RULE_finally_); - try { - enterOuterAlt(_localctx, 1); - { - setState(1836); - match(FINALLY); - setState(1837); - block(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class TryWithResourcesStatementContext extends ParserRuleContext { - public ResourceSpecificationContext resourceSpecification() { - return getRuleContext(ResourceSpecificationContext.class,0); - } - public BlockContext block() { - return getRuleContext(BlockContext.class,0); - } - public CatchesContext catches() { - return getRuleContext(CatchesContext.class,0); - } - public Finally_Context finally_() { - return getRuleContext(Finally_Context.class,0); - } - public TryWithResourcesStatementContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_tryWithResourcesStatement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTryWithResourcesStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTryWithResourcesStatement(this); - } - } - - public final TryWithResourcesStatementContext tryWithResourcesStatement() throws RecognitionException { - TryWithResourcesStatementContext _localctx = new TryWithResourcesStatementContext(_ctx, getState()); - enterRule(_localctx, 346, RULE_tryWithResourcesStatement); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1839); - match(TRY); - setState(1840); - resourceSpecification(); - setState(1841); - block(); - setState(1843); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==CATCH) { - { - setState(1842); - catches(); - } - } - - setState(1846); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==FINALLY) { - { - setState(1845); - finally_(); - } - } - - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ResourceSpecificationContext extends ParserRuleContext { - public ResourceListContext resourceList() { - return getRuleContext(ResourceListContext.class,0); - } - public ResourceSpecificationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_resourceSpecification; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterResourceSpecification(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitResourceSpecification(this); - } - } - - public final ResourceSpecificationContext resourceSpecification() throws RecognitionException { - ResourceSpecificationContext _localctx = new ResourceSpecificationContext(_ctx, getState()); - enterRule(_localctx, 348, RULE_resourceSpecification); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1848); - match(LPAREN); - setState(1849); - resourceList(); - setState(1851); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==SEMI) { - { - setState(1850); - match(SEMI); - } - } - - setState(1853); - match(RPAREN); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ResourceListContext extends ParserRuleContext { - public List resource() { - return getRuleContexts(ResourceContext.class); - } - public ResourceContext resource(int i) { - return getRuleContext(ResourceContext.class,i); - } - public ResourceListContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_resourceList; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterResourceList(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitResourceList(this); - } - } - - public final ResourceListContext resourceList() throws RecognitionException { - ResourceListContext _localctx = new ResourceListContext(_ctx, getState()); - enterRule(_localctx, 350, RULE_resourceList); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(1855); - resource(); - setState(1860); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,193,_ctx); - while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(1856); - match(SEMI); - setState(1857); - resource(); - } - } - } - setState(1862); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,193,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ResourceContext extends ParserRuleContext { - public UnannTypeContext unannType() { - return getRuleContext(UnannTypeContext.class,0); - } - public VariableDeclaratorIdContext variableDeclaratorId() { - return getRuleContext(VariableDeclaratorIdContext.class,0); - } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public List variableModifier() { - return getRuleContexts(VariableModifierContext.class); - } - public VariableModifierContext variableModifier(int i) { - return getRuleContext(VariableModifierContext.class,i); - } - public ResourceContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_resource; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterResource(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitResource(this); - } - } - - public final ResourceContext resource() throws RecognitionException { - ResourceContext _localctx = new ResourceContext(_ctx, getState()); - enterRule(_localctx, 352, RULE_resource); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(1866); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==FINAL || _la==AT) { - { - { - setState(1863); - variableModifier(); - } - } - setState(1868); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(1869); - unannType(); - setState(1870); - variableDeclaratorId(); - setState(1871); - match(ASSIGN); - setState(1872); - expression(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class PrimaryContext extends ParserRuleContext { - public PrimaryNoNewArray_lfno_primaryContext primaryNoNewArray_lfno_primary() { - return getRuleContext(PrimaryNoNewArray_lfno_primaryContext.class,0); - } - public ArrayCreationExpressionContext arrayCreationExpression() { - return getRuleContext(ArrayCreationExpressionContext.class,0); - } - public List primaryNoNewArray_lf_primary() { - return getRuleContexts(PrimaryNoNewArray_lf_primaryContext.class); - } - public PrimaryNoNewArray_lf_primaryContext primaryNoNewArray_lf_primary(int i) { - return getRuleContext(PrimaryNoNewArray_lf_primaryContext.class,i); - } - public PrimaryContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_primary; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimary(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimary(this); - } - } - - public final PrimaryContext primary() throws RecognitionException { - PrimaryContext _localctx = new PrimaryContext(_ctx, getState()); - enterRule(_localctx, 354, RULE_primary); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(1876); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,195,_ctx) ) { - case 1: - { - setState(1874); - primaryNoNewArray_lfno_primary(); - } - break; - case 2: - { - setState(1875); - arrayCreationExpression(); - } - break; - } - setState(1881); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,196,_ctx); - while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(1878); - primaryNoNewArray_lf_primary(); - } - } - } - setState(1883); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,196,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class PrimaryNoNewArrayContext extends ParserRuleContext { - public LiteralContext literal() { - return getRuleContext(LiteralContext.class,0); - } - public TypeNameContext typeName() { - return getRuleContext(TypeNameContext.class,0); - } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public ClassInstanceCreationExpressionContext classInstanceCreationExpression() { - return getRuleContext(ClassInstanceCreationExpressionContext.class,0); - } - public FieldAccessContext fieldAccess() { - return getRuleContext(FieldAccessContext.class,0); - } - public ArrayAccessContext arrayAccess() { - return getRuleContext(ArrayAccessContext.class,0); - } - public MethodInvocationContext methodInvocation() { - return getRuleContext(MethodInvocationContext.class,0); - } - public MethodReferenceContext methodReference() { - return getRuleContext(MethodReferenceContext.class,0); - } - public PrimaryNoNewArrayContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_primaryNoNewArray; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimaryNoNewArray(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimaryNoNewArray(this); - } - } - - public final PrimaryNoNewArrayContext primaryNoNewArray() throws RecognitionException { - PrimaryNoNewArrayContext _localctx = new PrimaryNoNewArrayContext(_ctx, getState()); - enterRule(_localctx, 356, RULE_primaryNoNewArray); - int _la; - try { - setState(1913); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,198,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1884); - literal(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1885); - typeName(); - setState(1890); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==LBRACK) { - { - { - setState(1886); - match(LBRACK); - setState(1887); - match(RBRACK); - } - } - setState(1892); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(1893); - match(DOT); - setState(1894); - match(CLASS); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(1896); - match(VOID); - setState(1897); - match(DOT); - setState(1898); - match(CLASS); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(1899); - match(THIS); - } - break; - case 5: - enterOuterAlt(_localctx, 5); - { - setState(1900); - typeName(); - setState(1901); - match(DOT); - setState(1902); - match(THIS); - } - break; - case 6: - enterOuterAlt(_localctx, 6); - { - setState(1904); - match(LPAREN); - setState(1905); - expression(); - setState(1906); - match(RPAREN); - } - break; - case 7: - enterOuterAlt(_localctx, 7); - { - setState(1908); - classInstanceCreationExpression(); - } - break; - case 8: - enterOuterAlt(_localctx, 8); - { - setState(1909); - fieldAccess(); - } - break; - case 9: - enterOuterAlt(_localctx, 9); - { - setState(1910); - arrayAccess(); - } - break; - case 10: - enterOuterAlt(_localctx, 10); - { - setState(1911); - methodInvocation(); - } - break; - case 11: - enterOuterAlt(_localctx, 11); - { - setState(1912); - methodReference(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class PrimaryNoNewArray_lf_arrayAccessContext extends ParserRuleContext { - public PrimaryNoNewArray_lf_arrayAccessContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_primaryNoNewArray_lf_arrayAccess; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimaryNoNewArray_lf_arrayAccess(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimaryNoNewArray_lf_arrayAccess(this); - } - } - - public final PrimaryNoNewArray_lf_arrayAccessContext primaryNoNewArray_lf_arrayAccess() throws RecognitionException { - PrimaryNoNewArray_lf_arrayAccessContext _localctx = new PrimaryNoNewArray_lf_arrayAccessContext(_ctx, getState()); - enterRule(_localctx, 358, RULE_primaryNoNewArray_lf_arrayAccess); - try { - enterOuterAlt(_localctx, 1); - { - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class PrimaryNoNewArray_lfno_arrayAccessContext extends ParserRuleContext { - public LiteralContext literal() { - return getRuleContext(LiteralContext.class,0); - } - public TypeNameContext typeName() { - return getRuleContext(TypeNameContext.class,0); - } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public ClassInstanceCreationExpressionContext classInstanceCreationExpression() { - return getRuleContext(ClassInstanceCreationExpressionContext.class,0); - } - public FieldAccessContext fieldAccess() { - return getRuleContext(FieldAccessContext.class,0); - } - public MethodInvocationContext methodInvocation() { - return getRuleContext(MethodInvocationContext.class,0); - } - public MethodReferenceContext methodReference() { - return getRuleContext(MethodReferenceContext.class,0); - } - public PrimaryNoNewArray_lfno_arrayAccessContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_primaryNoNewArray_lfno_arrayAccess; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimaryNoNewArray_lfno_arrayAccess(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimaryNoNewArray_lfno_arrayAccess(this); - } - } - - public final PrimaryNoNewArray_lfno_arrayAccessContext primaryNoNewArray_lfno_arrayAccess() throws RecognitionException { - PrimaryNoNewArray_lfno_arrayAccessContext _localctx = new PrimaryNoNewArray_lfno_arrayAccessContext(_ctx, getState()); - enterRule(_localctx, 360, RULE_primaryNoNewArray_lfno_arrayAccess); - int _la; - try { - setState(1945); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,200,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1917); - literal(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1918); - typeName(); - setState(1923); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==LBRACK) { - { - { - setState(1919); - match(LBRACK); - setState(1920); - match(RBRACK); - } - } - setState(1925); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(1926); - match(DOT); - setState(1927); - match(CLASS); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(1929); - match(VOID); - setState(1930); - match(DOT); - setState(1931); - match(CLASS); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(1932); - match(THIS); - } - break; - case 5: - enterOuterAlt(_localctx, 5); - { - setState(1933); - typeName(); - setState(1934); - match(DOT); - setState(1935); - match(THIS); - } - break; - case 6: - enterOuterAlt(_localctx, 6); - { - setState(1937); - match(LPAREN); - setState(1938); - expression(); - setState(1939); - match(RPAREN); - } - break; - case 7: - enterOuterAlt(_localctx, 7); - { - setState(1941); - classInstanceCreationExpression(); - } - break; - case 8: - enterOuterAlt(_localctx, 8); - { - setState(1942); - fieldAccess(); - } - break; - case 9: - enterOuterAlt(_localctx, 9); - { - setState(1943); - methodInvocation(); - } - break; - case 10: - enterOuterAlt(_localctx, 10); - { - setState(1944); - methodReference(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class PrimaryNoNewArray_lf_primaryContext extends ParserRuleContext { - public ClassInstanceCreationExpression_lf_primaryContext classInstanceCreationExpression_lf_primary() { - return getRuleContext(ClassInstanceCreationExpression_lf_primaryContext.class,0); - } - public FieldAccess_lf_primaryContext fieldAccess_lf_primary() { - return getRuleContext(FieldAccess_lf_primaryContext.class,0); - } - public ArrayAccess_lf_primaryContext arrayAccess_lf_primary() { - return getRuleContext(ArrayAccess_lf_primaryContext.class,0); - } - public MethodInvocation_lf_primaryContext methodInvocation_lf_primary() { - return getRuleContext(MethodInvocation_lf_primaryContext.class,0); - } - public MethodReference_lf_primaryContext methodReference_lf_primary() { - return getRuleContext(MethodReference_lf_primaryContext.class,0); - } - public PrimaryNoNewArray_lf_primaryContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_primaryNoNewArray_lf_primary; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimaryNoNewArray_lf_primary(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimaryNoNewArray_lf_primary(this); - } - } - - public final PrimaryNoNewArray_lf_primaryContext primaryNoNewArray_lf_primary() throws RecognitionException { - PrimaryNoNewArray_lf_primaryContext _localctx = new PrimaryNoNewArray_lf_primaryContext(_ctx, getState()); - enterRule(_localctx, 362, RULE_primaryNoNewArray_lf_primary); - try { - setState(1952); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,201,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1947); - classInstanceCreationExpression_lf_primary(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1948); - fieldAccess_lf_primary(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(1949); - arrayAccess_lf_primary(); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(1950); - methodInvocation_lf_primary(); - } - break; - case 5: - enterOuterAlt(_localctx, 5); - { - setState(1951); - methodReference_lf_primary(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext extends ParserRuleContext { - public PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary(this); - } - } - - public final PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary() throws RecognitionException { - PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext _localctx = new PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext(_ctx, getState()); - enterRule(_localctx, 364, RULE_primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary); - try { - enterOuterAlt(_localctx, 1); - { - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext extends ParserRuleContext { - public ClassInstanceCreationExpression_lf_primaryContext classInstanceCreationExpression_lf_primary() { - return getRuleContext(ClassInstanceCreationExpression_lf_primaryContext.class,0); - } - public FieldAccess_lf_primaryContext fieldAccess_lf_primary() { - return getRuleContext(FieldAccess_lf_primaryContext.class,0); - } - public MethodInvocation_lf_primaryContext methodInvocation_lf_primary() { - return getRuleContext(MethodInvocation_lf_primaryContext.class,0); - } - public MethodReference_lf_primaryContext methodReference_lf_primary() { - return getRuleContext(MethodReference_lf_primaryContext.class,0); - } - public PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary(this); - } - } - - public final PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary() throws RecognitionException { - PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext _localctx = new PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext(_ctx, getState()); - enterRule(_localctx, 366, RULE_primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary); - try { - setState(1960); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,202,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1956); - classInstanceCreationExpression_lf_primary(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1957); - fieldAccess_lf_primary(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(1958); - methodInvocation_lf_primary(); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(1959); - methodReference_lf_primary(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class PrimaryNoNewArray_lfno_primaryContext extends ParserRuleContext { - public LiteralContext literal() { - return getRuleContext(LiteralContext.class,0); - } - public TypeNameContext typeName() { - return getRuleContext(TypeNameContext.class,0); - } - public UnannPrimitiveTypeContext unannPrimitiveType() { - return getRuleContext(UnannPrimitiveTypeContext.class,0); - } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public ClassInstanceCreationExpression_lfno_primaryContext classInstanceCreationExpression_lfno_primary() { - return getRuleContext(ClassInstanceCreationExpression_lfno_primaryContext.class,0); - } - public FieldAccess_lfno_primaryContext fieldAccess_lfno_primary() { - return getRuleContext(FieldAccess_lfno_primaryContext.class,0); - } - public ArrayAccess_lfno_primaryContext arrayAccess_lfno_primary() { - return getRuleContext(ArrayAccess_lfno_primaryContext.class,0); - } - public MethodInvocation_lfno_primaryContext methodInvocation_lfno_primary() { - return getRuleContext(MethodInvocation_lfno_primaryContext.class,0); - } - public MethodReference_lfno_primaryContext methodReference_lfno_primary() { - return getRuleContext(MethodReference_lfno_primaryContext.class,0); - } - public PrimaryNoNewArray_lfno_primaryContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_primaryNoNewArray_lfno_primary; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimaryNoNewArray_lfno_primary(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimaryNoNewArray_lfno_primary(this); - } - } - - public final PrimaryNoNewArray_lfno_primaryContext primaryNoNewArray_lfno_primary() throws RecognitionException { - PrimaryNoNewArray_lfno_primaryContext _localctx = new PrimaryNoNewArray_lfno_primaryContext(_ctx, getState()); - enterRule(_localctx, 368, RULE_primaryNoNewArray_lfno_primary); - int _la; - try { - setState(2002); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,205,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(1962); - literal(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(1963); - typeName(); - setState(1968); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==LBRACK) { - { - { - setState(1964); - match(LBRACK); - setState(1965); - match(RBRACK); - } - } - setState(1970); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(1971); - match(DOT); - setState(1972); - match(CLASS); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(1974); - unannPrimitiveType(); - setState(1979); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==LBRACK) { - { - { - setState(1975); - match(LBRACK); - setState(1976); - match(RBRACK); - } - } - setState(1981); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(1982); - match(DOT); - setState(1983); - match(CLASS); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(1985); - match(VOID); - setState(1986); - match(DOT); - setState(1987); - match(CLASS); - } - break; - case 5: - enterOuterAlt(_localctx, 5); - { - setState(1988); - match(THIS); - } - break; - case 6: - enterOuterAlt(_localctx, 6); - { - setState(1989); - typeName(); - setState(1990); - match(DOT); - setState(1991); - match(THIS); - } - break; - case 7: - enterOuterAlt(_localctx, 7); - { - setState(1993); - match(LPAREN); - setState(1994); - expression(); - setState(1995); - match(RPAREN); - } - break; - case 8: - enterOuterAlt(_localctx, 8); - { - setState(1997); - classInstanceCreationExpression_lfno_primary(); - } - break; - case 9: - enterOuterAlt(_localctx, 9); - { - setState(1998); - fieldAccess_lfno_primary(); - } - break; - case 10: - enterOuterAlt(_localctx, 10); - { - setState(1999); - arrayAccess_lfno_primary(); - } - break; - case 11: - enterOuterAlt(_localctx, 11); - { - setState(2000); - methodInvocation_lfno_primary(); - } - break; - case 12: - enterOuterAlt(_localctx, 12); - { - setState(2001); - methodReference_lfno_primary(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext extends ParserRuleContext { - public PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary(this); - } - } - - public final PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary() throws RecognitionException { - PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext _localctx = new PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext(_ctx, getState()); - enterRule(_localctx, 370, RULE_primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary); - try { - enterOuterAlt(_localctx, 1); - { - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class PrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primaryContext extends ParserRuleContext { - public LiteralContext literal() { - return getRuleContext(LiteralContext.class,0); - } - public TypeNameContext typeName() { - return getRuleContext(TypeNameContext.class,0); - } - public UnannPrimitiveTypeContext unannPrimitiveType() { - return getRuleContext(UnannPrimitiveTypeContext.class,0); - } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public ClassInstanceCreationExpression_lfno_primaryContext classInstanceCreationExpression_lfno_primary() { - return getRuleContext(ClassInstanceCreationExpression_lfno_primaryContext.class,0); - } - public FieldAccess_lfno_primaryContext fieldAccess_lfno_primary() { - return getRuleContext(FieldAccess_lfno_primaryContext.class,0); - } - public MethodInvocation_lfno_primaryContext methodInvocation_lfno_primary() { - return getRuleContext(MethodInvocation_lfno_primaryContext.class,0); - } - public MethodReference_lfno_primaryContext methodReference_lfno_primary() { - return getRuleContext(MethodReference_lfno_primaryContext.class,0); - } - public PrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primaryContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary(this); - } - } - - public final PrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primaryContext primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary() throws RecognitionException { - PrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primaryContext _localctx = new PrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primaryContext(_ctx, getState()); - enterRule(_localctx, 372, RULE_primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary); - int _la; - try { - setState(2045); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,208,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(2006); - literal(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(2007); - typeName(); - setState(2012); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==LBRACK) { - { - { - setState(2008); - match(LBRACK); - setState(2009); - match(RBRACK); - } - } - setState(2014); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(2015); - match(DOT); - setState(2016); - match(CLASS); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(2018); - unannPrimitiveType(); - setState(2023); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==LBRACK) { - { - { - setState(2019); - match(LBRACK); - setState(2020); - match(RBRACK); - } - } - setState(2025); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(2026); - match(DOT); - setState(2027); - match(CLASS); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(2029); - match(VOID); - setState(2030); - match(DOT); - setState(2031); - match(CLASS); - } - break; - case 5: - enterOuterAlt(_localctx, 5); - { - setState(2032); - match(THIS); - } - break; - case 6: - enterOuterAlt(_localctx, 6); - { - setState(2033); - typeName(); - setState(2034); - match(DOT); - setState(2035); - match(THIS); - } - break; - case 7: - enterOuterAlt(_localctx, 7); - { - setState(2037); - match(LPAREN); - setState(2038); - expression(); - setState(2039); - match(RPAREN); - } - break; - case 8: - enterOuterAlt(_localctx, 8); - { - setState(2041); - classInstanceCreationExpression_lfno_primary(); - } - break; - case 9: - enterOuterAlt(_localctx, 9); - { - setState(2042); - fieldAccess_lfno_primary(); - } - break; - case 10: - enterOuterAlt(_localctx, 10); - { - setState(2043); - methodInvocation_lfno_primary(); - } - break; - case 11: - enterOuterAlt(_localctx, 11); - { - setState(2044); - methodReference_lfno_primary(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ClassInstanceCreationExpressionContext extends ParserRuleContext { - public List Identifier() { return getTokens(Java8Parser.Identifier); } - public TerminalNode Identifier(int i) { - return getToken(Java8Parser.Identifier, i); - } - public TypeArgumentsContext typeArguments() { - return getRuleContext(TypeArgumentsContext.class,0); - } - public List annotation() { - return getRuleContexts(AnnotationContext.class); - } - public AnnotationContext annotation(int i) { - return getRuleContext(AnnotationContext.class,i); - } - public TypeArgumentsOrDiamondContext typeArgumentsOrDiamond() { - return getRuleContext(TypeArgumentsOrDiamondContext.class,0); - } - public ArgumentListContext argumentList() { - return getRuleContext(ArgumentListContext.class,0); - } - public ClassBodyContext classBody() { - return getRuleContext(ClassBodyContext.class,0); - } - public ExpressionNameContext expressionName() { - return getRuleContext(ExpressionNameContext.class,0); - } - public PrimaryContext primary() { - return getRuleContext(PrimaryContext.class,0); - } - public ClassInstanceCreationExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_classInstanceCreationExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassInstanceCreationExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassInstanceCreationExpression(this); - } - } - - public final ClassInstanceCreationExpressionContext classInstanceCreationExpression() throws RecognitionException { - ClassInstanceCreationExpressionContext _localctx = new ClassInstanceCreationExpressionContext(_ctx, getState()); - enterRule(_localctx, 374, RULE_classInstanceCreationExpression); - int _la; - try { - setState(2130); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,226,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(2047); - match(NEW); - setState(2049); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(2048); - typeArguments(); - } - } - - setState(2054); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==AT) { - { - { - setState(2051); - annotation(); - } - } - setState(2056); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(2057); - match(Identifier); - setState(2068); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==DOT) { - { - { - setState(2058); - match(DOT); - setState(2062); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==AT) { - { - { - setState(2059); - annotation(); - } - } - setState(2064); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(2065); - match(Identifier); - } - } - setState(2070); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(2072); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(2071); - typeArgumentsOrDiamond(); - } - } - - setState(2074); - match(LPAREN); - setState(2076); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { - { - setState(2075); - argumentList(); - } - } - - setState(2078); - match(RPAREN); - setState(2080); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LBRACE) { - { - setState(2079); - classBody(); - } - } - - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(2082); - expressionName(); - setState(2083); - match(DOT); - setState(2084); - match(NEW); - setState(2086); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(2085); - typeArguments(); - } - } - - setState(2091); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==AT) { - { - { - setState(2088); - annotation(); - } - } - setState(2093); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(2094); - match(Identifier); - setState(2096); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(2095); - typeArgumentsOrDiamond(); - } - } - - setState(2098); - match(LPAREN); - setState(2100); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { - { - setState(2099); - argumentList(); - } - } - - setState(2102); - match(RPAREN); - setState(2104); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LBRACE) { - { - setState(2103); - classBody(); - } - } - - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(2106); - primary(); - setState(2107); - match(DOT); - setState(2108); - match(NEW); - setState(2110); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(2109); - typeArguments(); - } - } - - setState(2115); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==AT) { - { - { - setState(2112); - annotation(); - } - } - setState(2117); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(2118); - match(Identifier); - setState(2120); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(2119); - typeArgumentsOrDiamond(); - } - } - - setState(2122); - match(LPAREN); - setState(2124); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { - { - setState(2123); - argumentList(); - } - } - - setState(2126); - match(RPAREN); - setState(2128); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LBRACE) { - { - setState(2127); - classBody(); - } - } - - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ClassInstanceCreationExpression_lf_primaryContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public TypeArgumentsContext typeArguments() { - return getRuleContext(TypeArgumentsContext.class,0); - } - public List annotation() { - return getRuleContexts(AnnotationContext.class); - } - public AnnotationContext annotation(int i) { - return getRuleContext(AnnotationContext.class,i); - } - public TypeArgumentsOrDiamondContext typeArgumentsOrDiamond() { - return getRuleContext(TypeArgumentsOrDiamondContext.class,0); - } - public ArgumentListContext argumentList() { - return getRuleContext(ArgumentListContext.class,0); - } - public ClassBodyContext classBody() { - return getRuleContext(ClassBodyContext.class,0); - } - public ClassInstanceCreationExpression_lf_primaryContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_classInstanceCreationExpression_lf_primary; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassInstanceCreationExpression_lf_primary(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassInstanceCreationExpression_lf_primary(this); - } - } - - public final ClassInstanceCreationExpression_lf_primaryContext classInstanceCreationExpression_lf_primary() throws RecognitionException { - ClassInstanceCreationExpression_lf_primaryContext _localctx = new ClassInstanceCreationExpression_lf_primaryContext(_ctx, getState()); - enterRule(_localctx, 376, RULE_classInstanceCreationExpression_lf_primary); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2132); - match(DOT); - setState(2133); - match(NEW); - setState(2135); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(2134); - typeArguments(); - } - } - - setState(2140); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==AT) { - { - { - setState(2137); - annotation(); - } - } - setState(2142); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(2143); - match(Identifier); - setState(2145); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(2144); - typeArgumentsOrDiamond(); - } - } - - setState(2147); - match(LPAREN); - setState(2149); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { - { - setState(2148); - argumentList(); - } - } - - setState(2151); - match(RPAREN); - setState(2153); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,231,_ctx) ) { - case 1: - { - setState(2152); - classBody(); - } - break; - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ClassInstanceCreationExpression_lfno_primaryContext extends ParserRuleContext { - public List Identifier() { return getTokens(Java8Parser.Identifier); } - public TerminalNode Identifier(int i) { - return getToken(Java8Parser.Identifier, i); - } - public TypeArgumentsContext typeArguments() { - return getRuleContext(TypeArgumentsContext.class,0); - } - public List annotation() { - return getRuleContexts(AnnotationContext.class); - } - public AnnotationContext annotation(int i) { - return getRuleContext(AnnotationContext.class,i); - } - public TypeArgumentsOrDiamondContext typeArgumentsOrDiamond() { - return getRuleContext(TypeArgumentsOrDiamondContext.class,0); - } - public ArgumentListContext argumentList() { - return getRuleContext(ArgumentListContext.class,0); - } - public ClassBodyContext classBody() { - return getRuleContext(ClassBodyContext.class,0); - } - public ExpressionNameContext expressionName() { - return getRuleContext(ExpressionNameContext.class,0); - } - public ClassInstanceCreationExpression_lfno_primaryContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_classInstanceCreationExpression_lfno_primary; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterClassInstanceCreationExpression_lfno_primary(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitClassInstanceCreationExpression_lfno_primary(this); - } - } - - public final ClassInstanceCreationExpression_lfno_primaryContext classInstanceCreationExpression_lfno_primary() throws RecognitionException { - ClassInstanceCreationExpression_lfno_primaryContext _localctx = new ClassInstanceCreationExpression_lfno_primaryContext(_ctx, getState()); - enterRule(_localctx, 378, RULE_classInstanceCreationExpression_lfno_primary); - int _la; - try { - setState(2214); - _errHandler.sync(this); - switch (_input.LA(1)) { - case NEW: - enterOuterAlt(_localctx, 1); - { - setState(2155); - match(NEW); - setState(2157); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(2156); - typeArguments(); - } - } - - setState(2162); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==AT) { - { - { - setState(2159); - annotation(); - } - } - setState(2164); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(2165); - match(Identifier); - setState(2176); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==DOT) { - { - { - setState(2166); - match(DOT); - setState(2170); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==AT) { - { - { - setState(2167); - annotation(); - } - } - setState(2172); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(2173); - match(Identifier); - } - } - setState(2178); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(2180); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(2179); - typeArgumentsOrDiamond(); - } - } - - setState(2182); - match(LPAREN); - setState(2184); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { - { - setState(2183); - argumentList(); - } - } - - setState(2186); - match(RPAREN); - setState(2188); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,238,_ctx) ) { - case 1: - { - setState(2187); - classBody(); - } - break; - } - } - break; - case Identifier: - enterOuterAlt(_localctx, 2); - { - setState(2190); - expressionName(); - setState(2191); - match(DOT); - setState(2192); - match(NEW); - setState(2194); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(2193); - typeArguments(); - } - } - - setState(2199); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==AT) { - { - { - setState(2196); - annotation(); - } - } - setState(2201); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(2202); - match(Identifier); - setState(2204); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(2203); - typeArgumentsOrDiamond(); - } - } - - setState(2206); - match(LPAREN); - setState(2208); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { - { - setState(2207); - argumentList(); - } - } - - setState(2210); - match(RPAREN); - setState(2212); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,243,_ctx) ) { - case 1: - { - setState(2211); - classBody(); - } - break; - } - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class TypeArgumentsOrDiamondContext extends ParserRuleContext { - public TypeArgumentsContext typeArguments() { - return getRuleContext(TypeArgumentsContext.class,0); - } - public TypeArgumentsOrDiamondContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_typeArgumentsOrDiamond; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterTypeArgumentsOrDiamond(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitTypeArgumentsOrDiamond(this); - } - } - - public final TypeArgumentsOrDiamondContext typeArgumentsOrDiamond() throws RecognitionException { - TypeArgumentsOrDiamondContext _localctx = new TypeArgumentsOrDiamondContext(_ctx, getState()); - enterRule(_localctx, 380, RULE_typeArgumentsOrDiamond); - try { - setState(2219); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,245,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(2216); - typeArguments(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(2217); - match(LT); - setState(2218); - match(GT); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class FieldAccessContext extends ParserRuleContext { - public PrimaryContext primary() { - return getRuleContext(PrimaryContext.class,0); - } - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public TypeNameContext typeName() { - return getRuleContext(TypeNameContext.class,0); - } - public FieldAccessContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_fieldAccess; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterFieldAccess(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFieldAccess(this); - } - } - - public final FieldAccessContext fieldAccess() throws RecognitionException { - FieldAccessContext _localctx = new FieldAccessContext(_ctx, getState()); - enterRule(_localctx, 382, RULE_fieldAccess); - try { - setState(2234); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,246,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(2221); - primary(); - setState(2222); - match(DOT); - setState(2223); - match(Identifier); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(2225); - match(SUPER); - setState(2226); - match(DOT); - setState(2227); - match(Identifier); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(2228); - typeName(); - setState(2229); - match(DOT); - setState(2230); - match(SUPER); - setState(2231); - match(DOT); - setState(2232); - match(Identifier); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class FieldAccess_lf_primaryContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public FieldAccess_lf_primaryContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_fieldAccess_lf_primary; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterFieldAccess_lf_primary(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFieldAccess_lf_primary(this); - } - } - - public final FieldAccess_lf_primaryContext fieldAccess_lf_primary() throws RecognitionException { - FieldAccess_lf_primaryContext _localctx = new FieldAccess_lf_primaryContext(_ctx, getState()); - enterRule(_localctx, 384, RULE_fieldAccess_lf_primary); - try { - enterOuterAlt(_localctx, 1); - { - setState(2236); - match(DOT); - setState(2237); - match(Identifier); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class FieldAccess_lfno_primaryContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public TypeNameContext typeName() { - return getRuleContext(TypeNameContext.class,0); - } - public FieldAccess_lfno_primaryContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_fieldAccess_lfno_primary; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterFieldAccess_lfno_primary(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitFieldAccess_lfno_primary(this); - } - } - - public final FieldAccess_lfno_primaryContext fieldAccess_lfno_primary() throws RecognitionException { - FieldAccess_lfno_primaryContext _localctx = new FieldAccess_lfno_primaryContext(_ctx, getState()); - enterRule(_localctx, 386, RULE_fieldAccess_lfno_primary); - try { - setState(2248); - _errHandler.sync(this); - switch (_input.LA(1)) { - case SUPER: - enterOuterAlt(_localctx, 1); - { - setState(2239); - match(SUPER); - setState(2240); - match(DOT); - setState(2241); - match(Identifier); - } - break; - case Identifier: - enterOuterAlt(_localctx, 2); - { - setState(2242); - typeName(); - setState(2243); - match(DOT); - setState(2244); - match(SUPER); - setState(2245); - match(DOT); - setState(2246); - match(Identifier); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ArrayAccessContext extends ParserRuleContext { - public ExpressionNameContext expressionName() { - return getRuleContext(ExpressionNameContext.class,0); - } - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public PrimaryNoNewArray_lfno_arrayAccessContext primaryNoNewArray_lfno_arrayAccess() { - return getRuleContext(PrimaryNoNewArray_lfno_arrayAccessContext.class,0); - } - public List primaryNoNewArray_lf_arrayAccess() { - return getRuleContexts(PrimaryNoNewArray_lf_arrayAccessContext.class); - } - public PrimaryNoNewArray_lf_arrayAccessContext primaryNoNewArray_lf_arrayAccess(int i) { - return getRuleContext(PrimaryNoNewArray_lf_arrayAccessContext.class,i); - } - public ArrayAccessContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_arrayAccess; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterArrayAccess(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitArrayAccess(this); - } - } - - public final ArrayAccessContext arrayAccess() throws RecognitionException { - ArrayAccessContext _localctx = new ArrayAccessContext(_ctx, getState()); - enterRule(_localctx, 388, RULE_arrayAccess); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2260); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,248,_ctx) ) { - case 1: - { - setState(2250); - expressionName(); - setState(2251); - match(LBRACK); - setState(2252); - expression(); - setState(2253); - match(RBRACK); - } - break; - case 2: - { - setState(2255); - primaryNoNewArray_lfno_arrayAccess(); - setState(2256); - match(LBRACK); - setState(2257); - expression(); - setState(2258); - match(RBRACK); - } - break; - } - setState(2269); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==LBRACK) { - { - { - setState(2262); - primaryNoNewArray_lf_arrayAccess(); - setState(2263); - match(LBRACK); - setState(2264); - expression(); - setState(2265); - match(RBRACK); - } - } - setState(2271); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ArrayAccess_lf_primaryContext extends ParserRuleContext { - public PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary() { - return getRuleContext(PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext.class,0); - } - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public List primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary() { - return getRuleContexts(PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext.class); - } - public PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary(int i) { - return getRuleContext(PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext.class,i); - } - public ArrayAccess_lf_primaryContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_arrayAccess_lf_primary; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterArrayAccess_lf_primary(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitArrayAccess_lf_primary(this); - } - } - - public final ArrayAccess_lf_primaryContext arrayAccess_lf_primary() throws RecognitionException { - ArrayAccess_lf_primaryContext _localctx = new ArrayAccess_lf_primaryContext(_ctx, getState()); - enterRule(_localctx, 390, RULE_arrayAccess_lf_primary); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - { - setState(2272); - primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary(); - setState(2273); - match(LBRACK); - setState(2274); - expression(); - setState(2275); - match(RBRACK); - } - setState(2284); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,250,_ctx); - while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(2277); - primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary(); - setState(2278); - match(LBRACK); - setState(2279); - expression(); - setState(2280); - match(RBRACK); - } - } - } - setState(2286); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,250,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ArrayAccess_lfno_primaryContext extends ParserRuleContext { - public ExpressionNameContext expressionName() { - return getRuleContext(ExpressionNameContext.class,0); - } - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public PrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primaryContext primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary() { - return getRuleContext(PrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primaryContext.class,0); - } - public List primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary() { - return getRuleContexts(PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext.class); - } - public PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary(int i) { - return getRuleContext(PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext.class,i); - } - public ArrayAccess_lfno_primaryContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_arrayAccess_lfno_primary; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterArrayAccess_lfno_primary(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitArrayAccess_lfno_primary(this); - } - } - - public final ArrayAccess_lfno_primaryContext arrayAccess_lfno_primary() throws RecognitionException { - ArrayAccess_lfno_primaryContext _localctx = new ArrayAccess_lfno_primaryContext(_ctx, getState()); - enterRule(_localctx, 392, RULE_arrayAccess_lfno_primary); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(2297); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,251,_ctx) ) { - case 1: - { - setState(2287); - expressionName(); - setState(2288); - match(LBRACK); - setState(2289); - expression(); - setState(2290); - match(RBRACK); - } - break; - case 2: - { - setState(2292); - primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary(); - setState(2293); - match(LBRACK); - setState(2294); - expression(); - setState(2295); - match(RBRACK); - } - break; - } - setState(2306); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,252,_ctx); - while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(2299); - primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary(); - setState(2300); - match(LBRACK); - setState(2301); - expression(); - setState(2302); - match(RBRACK); - } - } - } - setState(2308); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,252,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class MethodInvocationContext extends ParserRuleContext { - public MethodNameContext methodName() { - return getRuleContext(MethodNameContext.class,0); - } - public ArgumentListContext argumentList() { - return getRuleContext(ArgumentListContext.class,0); - } - public TypeNameContext typeName() { - return getRuleContext(TypeNameContext.class,0); - } - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public TypeArgumentsContext typeArguments() { - return getRuleContext(TypeArgumentsContext.class,0); - } - public ExpressionNameContext expressionName() { - return getRuleContext(ExpressionNameContext.class,0); - } - public PrimaryContext primary() { - return getRuleContext(PrimaryContext.class,0); - } - public MethodInvocationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_methodInvocation; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodInvocation(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodInvocation(this); - } - } - - public final MethodInvocationContext methodInvocation() throws RecognitionException { - MethodInvocationContext _localctx = new MethodInvocationContext(_ctx, getState()); - enterRule(_localctx, 394, RULE_methodInvocation); - int _la; - try { - setState(2377); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,264,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(2309); - methodName(); - setState(2310); - match(LPAREN); - setState(2312); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { - { - setState(2311); - argumentList(); - } - } - - setState(2314); - match(RPAREN); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(2316); - typeName(); - setState(2317); - match(DOT); - setState(2319); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(2318); - typeArguments(); - } - } - - setState(2321); - match(Identifier); - setState(2322); - match(LPAREN); - setState(2324); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { - { - setState(2323); - argumentList(); - } - } - - setState(2326); - match(RPAREN); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(2328); - expressionName(); - setState(2329); - match(DOT); - setState(2331); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(2330); - typeArguments(); - } - } - - setState(2333); - match(Identifier); - setState(2334); - match(LPAREN); - setState(2336); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { - { - setState(2335); - argumentList(); - } - } - - setState(2338); - match(RPAREN); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(2340); - primary(); - setState(2341); - match(DOT); - setState(2343); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(2342); - typeArguments(); - } - } - - setState(2345); - match(Identifier); - setState(2346); - match(LPAREN); - setState(2348); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { - { - setState(2347); - argumentList(); - } - } - - setState(2350); - match(RPAREN); - } - break; - case 5: - enterOuterAlt(_localctx, 5); - { - setState(2352); - match(SUPER); - setState(2353); - match(DOT); - setState(2355); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(2354); - typeArguments(); - } - } - - setState(2357); - match(Identifier); - setState(2358); - match(LPAREN); - setState(2360); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { - { - setState(2359); - argumentList(); - } - } - - setState(2362); - match(RPAREN); - } - break; - case 6: - enterOuterAlt(_localctx, 6); - { - setState(2363); - typeName(); - setState(2364); - match(DOT); - setState(2365); - match(SUPER); - setState(2366); - match(DOT); - setState(2368); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(2367); - typeArguments(); - } - } - - setState(2370); - match(Identifier); - setState(2371); - match(LPAREN); - setState(2373); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { - { - setState(2372); - argumentList(); - } - } - - setState(2375); - match(RPAREN); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class MethodInvocation_lf_primaryContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public TypeArgumentsContext typeArguments() { - return getRuleContext(TypeArgumentsContext.class,0); - } - public ArgumentListContext argumentList() { - return getRuleContext(ArgumentListContext.class,0); - } - public MethodInvocation_lf_primaryContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_methodInvocation_lf_primary; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodInvocation_lf_primary(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodInvocation_lf_primary(this); - } - } - - public final MethodInvocation_lf_primaryContext methodInvocation_lf_primary() throws RecognitionException { - MethodInvocation_lf_primaryContext _localctx = new MethodInvocation_lf_primaryContext(_ctx, getState()); - enterRule(_localctx, 396, RULE_methodInvocation_lf_primary); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2379); - match(DOT); - setState(2381); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(2380); - typeArguments(); - } - } - - setState(2383); - match(Identifier); - setState(2384); - match(LPAREN); - setState(2386); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { - { - setState(2385); - argumentList(); - } - } - - setState(2388); - match(RPAREN); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class MethodInvocation_lfno_primaryContext extends ParserRuleContext { - public MethodNameContext methodName() { - return getRuleContext(MethodNameContext.class,0); - } - public ArgumentListContext argumentList() { - return getRuleContext(ArgumentListContext.class,0); - } - public TypeNameContext typeName() { - return getRuleContext(TypeNameContext.class,0); - } - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public TypeArgumentsContext typeArguments() { - return getRuleContext(TypeArgumentsContext.class,0); - } - public ExpressionNameContext expressionName() { - return getRuleContext(ExpressionNameContext.class,0); - } - public MethodInvocation_lfno_primaryContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_methodInvocation_lfno_primary; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodInvocation_lfno_primary(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodInvocation_lfno_primary(this); - } - } - - public final MethodInvocation_lfno_primaryContext methodInvocation_lfno_primary() throws RecognitionException { - MethodInvocation_lfno_primaryContext _localctx = new MethodInvocation_lfno_primaryContext(_ctx, getState()); - enterRule(_localctx, 398, RULE_methodInvocation_lfno_primary); - int _la; - try { - setState(2446); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,276,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(2390); - methodName(); - setState(2391); - match(LPAREN); - setState(2393); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { - { - setState(2392); - argumentList(); - } - } - - setState(2395); - match(RPAREN); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(2397); - typeName(); - setState(2398); - match(DOT); - setState(2400); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(2399); - typeArguments(); - } - } - - setState(2402); - match(Identifier); - setState(2403); - match(LPAREN); - setState(2405); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { - { - setState(2404); - argumentList(); - } - } - - setState(2407); - match(RPAREN); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(2409); - expressionName(); - setState(2410); - match(DOT); - setState(2412); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(2411); - typeArguments(); - } - } - - setState(2414); - match(Identifier); - setState(2415); - match(LPAREN); - setState(2417); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { - { - setState(2416); - argumentList(); - } - } - - setState(2419); - match(RPAREN); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(2421); - match(SUPER); - setState(2422); - match(DOT); - setState(2424); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(2423); - typeArguments(); - } - } - - setState(2426); - match(Identifier); - setState(2427); - match(LPAREN); - setState(2429); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { - { - setState(2428); - argumentList(); - } - } - - setState(2431); - match(RPAREN); - } - break; - case 5: - enterOuterAlt(_localctx, 5); - { - setState(2432); - typeName(); - setState(2433); - match(DOT); - setState(2434); - match(SUPER); - setState(2435); - match(DOT); - setState(2437); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(2436); - typeArguments(); - } - } - - setState(2439); - match(Identifier); - setState(2440); - match(LPAREN); - setState(2442); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << NEW) | (1L << SHORT) | (1L << SUPER) | (1L << THIS) | (1L << VOID) | (1L << IntegerLiteral) | (1L << FloatingPointLiteral) | (1L << BooleanLiteral) | (1L << CharacterLiteral) | (1L << StringLiteral) | (1L << NullLiteral) | (1L << LPAREN))) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (BANG - 70)) | (1L << (TILDE - 70)) | (1L << (INC - 70)) | (1L << (DEC - 70)) | (1L << (ADD - 70)) | (1L << (SUB - 70)) | (1L << (Identifier - 70)) | (1L << (AT - 70)))) != 0)) { - { - setState(2441); - argumentList(); - } - } - - setState(2444); - match(RPAREN); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ArgumentListContext extends ParserRuleContext { - public List expression() { - return getRuleContexts(ExpressionContext.class); - } - public ExpressionContext expression(int i) { - return getRuleContext(ExpressionContext.class,i); - } - public ArgumentListContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_argumentList; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterArgumentList(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitArgumentList(this); - } - } - - public final ArgumentListContext argumentList() throws RecognitionException { - ArgumentListContext _localctx = new ArgumentListContext(_ctx, getState()); - enterRule(_localctx, 400, RULE_argumentList); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2448); - expression(); - setState(2453); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==COMMA) { - { - { - setState(2449); - match(COMMA); - setState(2450); - expression(); - } - } - setState(2455); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class MethodReferenceContext extends ParserRuleContext { - public ExpressionNameContext expressionName() { - return getRuleContext(ExpressionNameContext.class,0); - } - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public TypeArgumentsContext typeArguments() { - return getRuleContext(TypeArgumentsContext.class,0); - } - public ReferenceTypeContext referenceType() { - return getRuleContext(ReferenceTypeContext.class,0); - } - public PrimaryContext primary() { - return getRuleContext(PrimaryContext.class,0); - } - public TypeNameContext typeName() { - return getRuleContext(TypeNameContext.class,0); - } - public ClassTypeContext classType() { - return getRuleContext(ClassTypeContext.class,0); - } - public ArrayTypeContext arrayType() { - return getRuleContext(ArrayTypeContext.class,0); - } - public MethodReferenceContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_methodReference; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodReference(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodReference(this); - } - } - - public final MethodReferenceContext methodReference() throws RecognitionException { - MethodReferenceContext _localctx = new MethodReferenceContext(_ctx, getState()); - enterRule(_localctx, 402, RULE_methodReference); - int _la; - try { - setState(2503); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,284,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(2456); - expressionName(); - setState(2457); - match(COLONCOLON); - setState(2459); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(2458); - typeArguments(); - } - } - - setState(2461); - match(Identifier); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(2463); - referenceType(); - setState(2464); - match(COLONCOLON); - setState(2466); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(2465); - typeArguments(); - } - } - - setState(2468); - match(Identifier); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(2470); - primary(); - setState(2471); - match(COLONCOLON); - setState(2473); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(2472); - typeArguments(); - } - } - - setState(2475); - match(Identifier); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(2477); - match(SUPER); - setState(2478); - match(COLONCOLON); - setState(2480); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(2479); - typeArguments(); - } - } - - setState(2482); - match(Identifier); - } - break; - case 5: - enterOuterAlt(_localctx, 5); - { - setState(2483); - typeName(); - setState(2484); - match(DOT); - setState(2485); - match(SUPER); - setState(2486); - match(COLONCOLON); - setState(2488); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(2487); - typeArguments(); - } - } - - setState(2490); - match(Identifier); - } - break; - case 6: - enterOuterAlt(_localctx, 6); - { - setState(2492); - classType(); - setState(2493); - match(COLONCOLON); - setState(2495); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(2494); - typeArguments(); - } - } - - setState(2497); - match(NEW); - } - break; - case 7: - enterOuterAlt(_localctx, 7); - { - setState(2499); - arrayType(); - setState(2500); - match(COLONCOLON); - setState(2501); - match(NEW); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class MethodReference_lf_primaryContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public TypeArgumentsContext typeArguments() { - return getRuleContext(TypeArgumentsContext.class,0); - } - public MethodReference_lf_primaryContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_methodReference_lf_primary; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodReference_lf_primary(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodReference_lf_primary(this); - } - } - - public final MethodReference_lf_primaryContext methodReference_lf_primary() throws RecognitionException { - MethodReference_lf_primaryContext _localctx = new MethodReference_lf_primaryContext(_ctx, getState()); - enterRule(_localctx, 404, RULE_methodReference_lf_primary); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2505); - match(COLONCOLON); - setState(2507); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(2506); - typeArguments(); - } - } - - setState(2509); - match(Identifier); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class MethodReference_lfno_primaryContext extends ParserRuleContext { - public ExpressionNameContext expressionName() { - return getRuleContext(ExpressionNameContext.class,0); - } - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public TypeArgumentsContext typeArguments() { - return getRuleContext(TypeArgumentsContext.class,0); - } - public ReferenceTypeContext referenceType() { - return getRuleContext(ReferenceTypeContext.class,0); - } - public TypeNameContext typeName() { - return getRuleContext(TypeNameContext.class,0); - } - public ClassTypeContext classType() { - return getRuleContext(ClassTypeContext.class,0); - } - public ArrayTypeContext arrayType() { - return getRuleContext(ArrayTypeContext.class,0); - } - public MethodReference_lfno_primaryContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_methodReference_lfno_primary; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMethodReference_lfno_primary(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMethodReference_lfno_primary(this); - } - } - - public final MethodReference_lfno_primaryContext methodReference_lfno_primary() throws RecognitionException { - MethodReference_lfno_primaryContext _localctx = new MethodReference_lfno_primaryContext(_ctx, getState()); - enterRule(_localctx, 406, RULE_methodReference_lfno_primary); - int _la; - try { - setState(2551); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,291,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(2511); - expressionName(); - setState(2512); - match(COLONCOLON); - setState(2514); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(2513); - typeArguments(); - } - } - - setState(2516); - match(Identifier); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(2518); - referenceType(); - setState(2519); - match(COLONCOLON); - setState(2521); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(2520); - typeArguments(); - } - } - - setState(2523); - match(Identifier); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(2525); - match(SUPER); - setState(2526); - match(COLONCOLON); - setState(2528); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(2527); - typeArguments(); - } - } - - setState(2530); - match(Identifier); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(2531); - typeName(); - setState(2532); - match(DOT); - setState(2533); - match(SUPER); - setState(2534); - match(COLONCOLON); - setState(2536); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(2535); - typeArguments(); - } - } - - setState(2538); - match(Identifier); - } - break; - case 5: - enterOuterAlt(_localctx, 5); - { - setState(2540); - classType(); - setState(2541); - match(COLONCOLON); - setState(2543); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la==LT) { - { - setState(2542); - typeArguments(); - } - } - - setState(2545); - match(NEW); - } - break; - case 6: - enterOuterAlt(_localctx, 6); - { - setState(2547); - arrayType(); - setState(2548); - match(COLONCOLON); - setState(2549); - match(NEW); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ArrayCreationExpressionContext extends ParserRuleContext { - public PrimitiveTypeContext primitiveType() { - return getRuleContext(PrimitiveTypeContext.class,0); - } - public DimExprsContext dimExprs() { - return getRuleContext(DimExprsContext.class,0); - } - public DimsContext dims() { - return getRuleContext(DimsContext.class,0); - } - public ClassOrInterfaceTypeContext classOrInterfaceType() { - return getRuleContext(ClassOrInterfaceTypeContext.class,0); - } - public ArrayInitializerContext arrayInitializer() { - return getRuleContext(ArrayInitializerContext.class,0); - } - public ArrayCreationExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_arrayCreationExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterArrayCreationExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitArrayCreationExpression(this); - } - } - - public final ArrayCreationExpressionContext arrayCreationExpression() throws RecognitionException { - ArrayCreationExpressionContext _localctx = new ArrayCreationExpressionContext(_ctx, getState()); - enterRule(_localctx, 408, RULE_arrayCreationExpression); - try { - setState(2575); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,294,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(2553); - match(NEW); - setState(2554); - primitiveType(); - setState(2555); - dimExprs(); - setState(2557); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,292,_ctx) ) { - case 1: - { - setState(2556); - dims(); - } - break; - } - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(2559); - match(NEW); - setState(2560); - classOrInterfaceType(); - setState(2561); - dimExprs(); - setState(2563); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,293,_ctx) ) { - case 1: - { - setState(2562); - dims(); - } - break; - } - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(2565); - match(NEW); - setState(2566); - primitiveType(); - setState(2567); - dims(); - setState(2568); - arrayInitializer(); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(2570); - match(NEW); - setState(2571); - classOrInterfaceType(); - setState(2572); - dims(); - setState(2573); - arrayInitializer(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class DimExprsContext extends ParserRuleContext { - public List dimExpr() { - return getRuleContexts(DimExprContext.class); - } - public DimExprContext dimExpr(int i) { - return getRuleContext(DimExprContext.class,i); - } - public DimExprsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_dimExprs; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterDimExprs(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitDimExprs(this); - } - } - - public final DimExprsContext dimExprs() throws RecognitionException { - DimExprsContext _localctx = new DimExprsContext(_ctx, getState()); - enterRule(_localctx, 410, RULE_dimExprs); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(2577); - dimExpr(); - setState(2581); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,295,_ctx); - while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - { - setState(2578); - dimExpr(); - } - } - } - setState(2583); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,295,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class DimExprContext extends ParserRuleContext { - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public List annotation() { - return getRuleContexts(AnnotationContext.class); - } - public AnnotationContext annotation(int i) { - return getRuleContext(AnnotationContext.class,i); - } - public DimExprContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_dimExpr; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterDimExpr(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitDimExpr(this); - } - } - - public final DimExprContext dimExpr() throws RecognitionException { - DimExprContext _localctx = new DimExprContext(_ctx, getState()); - enterRule(_localctx, 412, RULE_dimExpr); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2587); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==AT) { - { - { - setState(2584); - annotation(); - } - } - setState(2589); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(2590); - match(LBRACK); - setState(2591); - expression(); - setState(2592); - match(RBRACK); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ConstantExpressionContext extends ParserRuleContext { - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public ConstantExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_constantExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConstantExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConstantExpression(this); - } - } - - public final ConstantExpressionContext constantExpression() throws RecognitionException { - ConstantExpressionContext _localctx = new ConstantExpressionContext(_ctx, getState()); - enterRule(_localctx, 414, RULE_constantExpression); - try { - enterOuterAlt(_localctx, 1); - { - setState(2594); - expression(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ExpressionContext extends ParserRuleContext { - public LambdaExpressionContext lambdaExpression() { - return getRuleContext(LambdaExpressionContext.class,0); - } - public AssignmentExpressionContext assignmentExpression() { - return getRuleContext(AssignmentExpressionContext.class,0); - } - public ExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_expression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitExpression(this); - } - } - - public final ExpressionContext expression() throws RecognitionException { - ExpressionContext _localctx = new ExpressionContext(_ctx, getState()); - enterRule(_localctx, 416, RULE_expression); - try { - setState(2598); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,297,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(2596); - lambdaExpression(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(2597); - assignmentExpression(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class LambdaExpressionContext extends ParserRuleContext { - public LambdaParametersContext lambdaParameters() { - return getRuleContext(LambdaParametersContext.class,0); - } - public LambdaBodyContext lambdaBody() { - return getRuleContext(LambdaBodyContext.class,0); - } - public LambdaExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_lambdaExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterLambdaExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLambdaExpression(this); - } - } - - public final LambdaExpressionContext lambdaExpression() throws RecognitionException { - LambdaExpressionContext _localctx = new LambdaExpressionContext(_ctx, getState()); - enterRule(_localctx, 418, RULE_lambdaExpression); - try { - enterOuterAlt(_localctx, 1); - { - setState(2600); - lambdaParameters(); - setState(2601); - match(ARROW); - setState(2602); - lambdaBody(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class LambdaParametersContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(Java8Parser.Identifier, 0); } - public FormalParameterListContext formalParameterList() { - return getRuleContext(FormalParameterListContext.class,0); - } - public LambdaParametersContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_lambdaParameters; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterLambdaParameters(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLambdaParameters(this); - } - } - - public final LambdaParametersContext lambdaParameters() throws RecognitionException { - LambdaParametersContext _localctx = new LambdaParametersContext(_ctx, getState()); - enterRule(_localctx, 420, RULE_lambdaParameters); - int _la; - try { - setState(2610); - _errHandler.sync(this); - switch (_input.LA(1)) { - case Identifier: - enterOuterAlt(_localctx, 1); - { - setState(2604); - match(Identifier); - } - break; - case LPAREN: - enterOuterAlt(_localctx, 2); - { - setState(2605); - match(LPAREN); - setState(2607); - _errHandler.sync(this); - _la = _input.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << CHAR) | (1L << DOUBLE) | (1L << FINAL) | (1L << FLOAT) | (1L << INT) | (1L << LONG) | (1L << SHORT))) != 0) || _la==Identifier || _la==AT) { - { - setState(2606); - formalParameterList(); - } - } - - setState(2609); - match(RPAREN); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class InferredFormalParameterListContext extends ParserRuleContext { - public List Identifier() { return getTokens(Java8Parser.Identifier); } - public TerminalNode Identifier(int i) { - return getToken(Java8Parser.Identifier, i); - } - public InferredFormalParameterListContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_inferredFormalParameterList; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInferredFormalParameterList(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInferredFormalParameterList(this); - } - } - - public final InferredFormalParameterListContext inferredFormalParameterList() throws RecognitionException { - InferredFormalParameterListContext _localctx = new InferredFormalParameterListContext(_ctx, getState()); - enterRule(_localctx, 422, RULE_inferredFormalParameterList); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2612); - match(Identifier); - setState(2617); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==COMMA) { - { - { - setState(2613); - match(COMMA); - setState(2614); - match(Identifier); - } - } - setState(2619); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class LambdaBodyContext extends ParserRuleContext { - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public BlockContext block() { - return getRuleContext(BlockContext.class,0); - } - public LambdaBodyContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_lambdaBody; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterLambdaBody(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLambdaBody(this); - } - } - - public final LambdaBodyContext lambdaBody() throws RecognitionException { - LambdaBodyContext _localctx = new LambdaBodyContext(_ctx, getState()); - enterRule(_localctx, 424, RULE_lambdaBody); - try { - setState(2622); - _errHandler.sync(this); - switch (_input.LA(1)) { - case BOOLEAN: - case BYTE: - case CHAR: - case DOUBLE: - case FLOAT: - case INT: - case LONG: - case NEW: - case SHORT: - case SUPER: - case THIS: - case VOID: - case IntegerLiteral: - case FloatingPointLiteral: - case BooleanLiteral: - case CharacterLiteral: - case StringLiteral: - case NullLiteral: - case LPAREN: - case BANG: - case TILDE: - case INC: - case DEC: - case ADD: - case SUB: - case Identifier: - case AT: - enterOuterAlt(_localctx, 1); - { - setState(2620); - expression(); - } - break; - case LBRACE: - enterOuterAlt(_localctx, 2); - { - setState(2621); - block(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class AssignmentExpressionContext extends ParserRuleContext { - public ConditionalExpressionContext conditionalExpression() { - return getRuleContext(ConditionalExpressionContext.class,0); - } - public AssignmentContext assignment() { - return getRuleContext(AssignmentContext.class,0); - } - public AssignmentExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_assignmentExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAssignmentExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAssignmentExpression(this); - } - } - - public final AssignmentExpressionContext assignmentExpression() throws RecognitionException { - AssignmentExpressionContext _localctx = new AssignmentExpressionContext(_ctx, getState()); - enterRule(_localctx, 426, RULE_assignmentExpression); - try { - setState(2626); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,302,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(2624); - conditionalExpression(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(2625); - assignment(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class AssignmentContext extends ParserRuleContext { - public LeftHandSideContext leftHandSide() { - return getRuleContext(LeftHandSideContext.class,0); - } - public AssignmentOperatorContext assignmentOperator() { - return getRuleContext(AssignmentOperatorContext.class,0); - } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public AssignmentContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_assignment; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAssignment(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAssignment(this); - } - } - - public final AssignmentContext assignment() throws RecognitionException { - AssignmentContext _localctx = new AssignmentContext(_ctx, getState()); - enterRule(_localctx, 428, RULE_assignment); - try { - enterOuterAlt(_localctx, 1); - { - setState(2628); - leftHandSide(); - setState(2629); - assignmentOperator(); - setState(2630); - expression(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class LeftHandSideContext extends ParserRuleContext { - public ExpressionNameContext expressionName() { - return getRuleContext(ExpressionNameContext.class,0); - } - public FieldAccessContext fieldAccess() { - return getRuleContext(FieldAccessContext.class,0); - } - public ArrayAccessContext arrayAccess() { - return getRuleContext(ArrayAccessContext.class,0); - } - public LeftHandSideContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_leftHandSide; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterLeftHandSide(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitLeftHandSide(this); - } - } - - public final LeftHandSideContext leftHandSide() throws RecognitionException { - LeftHandSideContext _localctx = new LeftHandSideContext(_ctx, getState()); - enterRule(_localctx, 430, RULE_leftHandSide); - try { - setState(2635); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,303,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(2632); - expressionName(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(2633); - fieldAccess(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(2634); - arrayAccess(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class AssignmentOperatorContext extends ParserRuleContext { - public AssignmentOperatorContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_assignmentOperator; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAssignmentOperator(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAssignmentOperator(this); - } - } - - public final AssignmentOperatorContext assignmentOperator() throws RecognitionException { - AssignmentOperatorContext _localctx = new AssignmentOperatorContext(_ctx, getState()); - enterRule(_localctx, 432, RULE_assignmentOperator); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(2637); - _la = _input.LA(1); - if ( !(((((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & ((1L << (ASSIGN - 67)) | (1L << (ADD_ASSIGN - 67)) | (1L << (SUB_ASSIGN - 67)) | (1L << (MUL_ASSIGN - 67)) | (1L << (DIV_ASSIGN - 67)) | (1L << (AND_ASSIGN - 67)) | (1L << (OR_ASSIGN - 67)) | (1L << (XOR_ASSIGN - 67)) | (1L << (MOD_ASSIGN - 67)) | (1L << (LSHIFT_ASSIGN - 67)) | (1L << (RSHIFT_ASSIGN - 67)) | (1L << (URSHIFT_ASSIGN - 67)))) != 0)) ) { - _errHandler.recoverInline(this); - } - else { - if ( _input.LA(1)==Token.EOF ) matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ConditionalExpressionContext extends ParserRuleContext { - public ConditionalOrExpressionContext conditionalOrExpression() { - return getRuleContext(ConditionalOrExpressionContext.class,0); - } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public ConditionalExpressionContext conditionalExpression() { - return getRuleContext(ConditionalExpressionContext.class,0); - } - public ConditionalExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_conditionalExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConditionalExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConditionalExpression(this); - } - } - - public final ConditionalExpressionContext conditionalExpression() throws RecognitionException { - ConditionalExpressionContext _localctx = new ConditionalExpressionContext(_ctx, getState()); - enterRule(_localctx, 434, RULE_conditionalExpression); - try { - setState(2646); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,304,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(2639); - conditionalOrExpression(0); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(2640); - conditionalOrExpression(0); - setState(2641); - match(QUESTION); - setState(2642); - expression(); - setState(2643); - match(COLON); - setState(2644); - conditionalExpression(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ConditionalOrExpressionContext extends ParserRuleContext { - public ConditionalAndExpressionContext conditionalAndExpression() { - return getRuleContext(ConditionalAndExpressionContext.class,0); - } - public ConditionalOrExpressionContext conditionalOrExpression() { - return getRuleContext(ConditionalOrExpressionContext.class,0); - } - public ConditionalOrExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_conditionalOrExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConditionalOrExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConditionalOrExpression(this); - } - } - - public final ConditionalOrExpressionContext conditionalOrExpression() throws RecognitionException { - return conditionalOrExpression(0); - } - - private ConditionalOrExpressionContext conditionalOrExpression(int _p) throws RecognitionException { - ParserRuleContext _parentctx = _ctx; - int _parentState = getState(); - ConditionalOrExpressionContext _localctx = new ConditionalOrExpressionContext(_ctx, _parentState); - ConditionalOrExpressionContext _prevctx = _localctx; - int _startState = 436; - enterRecursionRule(_localctx, 436, RULE_conditionalOrExpression, _p); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - { - setState(2649); - conditionalAndExpression(0); - } - _ctx.stop = _input.LT(-1); - setState(2656); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,305,_ctx); - while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - if ( _parseListeners!=null ) triggerExitRuleEvent(); - _prevctx = _localctx; - { - { - _localctx = new ConditionalOrExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_conditionalOrExpression); - setState(2651); - if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(2652); - match(OR); - setState(2653); - conditionalAndExpression(0); - } - } - } - setState(2658); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,305,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - unrollRecursionContexts(_parentctx); - } - return _localctx; - } - - public static class ConditionalAndExpressionContext extends ParserRuleContext { - public InclusiveOrExpressionContext inclusiveOrExpression() { - return getRuleContext(InclusiveOrExpressionContext.class,0); - } - public ConditionalAndExpressionContext conditionalAndExpression() { - return getRuleContext(ConditionalAndExpressionContext.class,0); - } - public ConditionalAndExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_conditionalAndExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterConditionalAndExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitConditionalAndExpression(this); - } - } - - public final ConditionalAndExpressionContext conditionalAndExpression() throws RecognitionException { - return conditionalAndExpression(0); - } - - private ConditionalAndExpressionContext conditionalAndExpression(int _p) throws RecognitionException { - ParserRuleContext _parentctx = _ctx; - int _parentState = getState(); - ConditionalAndExpressionContext _localctx = new ConditionalAndExpressionContext(_ctx, _parentState); - ConditionalAndExpressionContext _prevctx = _localctx; - int _startState = 438; - enterRecursionRule(_localctx, 438, RULE_conditionalAndExpression, _p); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - { - setState(2660); - inclusiveOrExpression(0); - } - _ctx.stop = _input.LT(-1); - setState(2667); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,306,_ctx); - while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - if ( _parseListeners!=null ) triggerExitRuleEvent(); - _prevctx = _localctx; - { - { - _localctx = new ConditionalAndExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_conditionalAndExpression); - setState(2662); - if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(2663); - match(AND); - setState(2664); - inclusiveOrExpression(0); - } - } - } - setState(2669); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,306,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - unrollRecursionContexts(_parentctx); - } - return _localctx; - } - - public static class InclusiveOrExpressionContext extends ParserRuleContext { - public ExclusiveOrExpressionContext exclusiveOrExpression() { - return getRuleContext(ExclusiveOrExpressionContext.class,0); - } - public InclusiveOrExpressionContext inclusiveOrExpression() { - return getRuleContext(InclusiveOrExpressionContext.class,0); - } - public InclusiveOrExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_inclusiveOrExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterInclusiveOrExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitInclusiveOrExpression(this); - } - } - - public final InclusiveOrExpressionContext inclusiveOrExpression() throws RecognitionException { - return inclusiveOrExpression(0); - } - - private InclusiveOrExpressionContext inclusiveOrExpression(int _p) throws RecognitionException { - ParserRuleContext _parentctx = _ctx; - int _parentState = getState(); - InclusiveOrExpressionContext _localctx = new InclusiveOrExpressionContext(_ctx, _parentState); - InclusiveOrExpressionContext _prevctx = _localctx; - int _startState = 440; - enterRecursionRule(_localctx, 440, RULE_inclusiveOrExpression, _p); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - { - setState(2671); - exclusiveOrExpression(0); - } - _ctx.stop = _input.LT(-1); - setState(2678); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,307,_ctx); - while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - if ( _parseListeners!=null ) triggerExitRuleEvent(); - _prevctx = _localctx; - { - { - _localctx = new InclusiveOrExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_inclusiveOrExpression); - setState(2673); - if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(2674); - match(BITOR); - setState(2675); - exclusiveOrExpression(0); - } - } - } - setState(2680); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,307,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - unrollRecursionContexts(_parentctx); - } - return _localctx; - } - - public static class ExclusiveOrExpressionContext extends ParserRuleContext { - public AndExpressionContext andExpression() { - return getRuleContext(AndExpressionContext.class,0); - } - public ExclusiveOrExpressionContext exclusiveOrExpression() { - return getRuleContext(ExclusiveOrExpressionContext.class,0); - } - public ExclusiveOrExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_exclusiveOrExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterExclusiveOrExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitExclusiveOrExpression(this); - } - } - - public final ExclusiveOrExpressionContext exclusiveOrExpression() throws RecognitionException { - return exclusiveOrExpression(0); - } - - private ExclusiveOrExpressionContext exclusiveOrExpression(int _p) throws RecognitionException { - ParserRuleContext _parentctx = _ctx; - int _parentState = getState(); - ExclusiveOrExpressionContext _localctx = new ExclusiveOrExpressionContext(_ctx, _parentState); - ExclusiveOrExpressionContext _prevctx = _localctx; - int _startState = 442; - enterRecursionRule(_localctx, 442, RULE_exclusiveOrExpression, _p); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - { - setState(2682); - andExpression(0); - } - _ctx.stop = _input.LT(-1); - setState(2689); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,308,_ctx); - while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - if ( _parseListeners!=null ) triggerExitRuleEvent(); - _prevctx = _localctx; - { - { - _localctx = new ExclusiveOrExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_exclusiveOrExpression); - setState(2684); - if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(2685); - match(CARET); - setState(2686); - andExpression(0); - } - } - } - setState(2691); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,308,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - unrollRecursionContexts(_parentctx); - } - return _localctx; - } - - public static class AndExpressionContext extends ParserRuleContext { - public EqualityExpressionContext equalityExpression() { - return getRuleContext(EqualityExpressionContext.class,0); - } - public AndExpressionContext andExpression() { - return getRuleContext(AndExpressionContext.class,0); - } - public AndExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_andExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAndExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAndExpression(this); - } - } - - public final AndExpressionContext andExpression() throws RecognitionException { - return andExpression(0); - } - - private AndExpressionContext andExpression(int _p) throws RecognitionException { - ParserRuleContext _parentctx = _ctx; - int _parentState = getState(); - AndExpressionContext _localctx = new AndExpressionContext(_ctx, _parentState); - AndExpressionContext _prevctx = _localctx; - int _startState = 444; - enterRecursionRule(_localctx, 444, RULE_andExpression, _p); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - { - setState(2693); - equalityExpression(0); - } - _ctx.stop = _input.LT(-1); - setState(2700); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,309,_ctx); - while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - if ( _parseListeners!=null ) triggerExitRuleEvent(); - _prevctx = _localctx; - { - { - _localctx = new AndExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_andExpression); - setState(2695); - if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(2696); - match(BITAND); - setState(2697); - equalityExpression(0); - } - } - } - setState(2702); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,309,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - unrollRecursionContexts(_parentctx); - } - return _localctx; - } - - public static class EqualityExpressionContext extends ParserRuleContext { - public RelationalExpressionContext relationalExpression() { - return getRuleContext(RelationalExpressionContext.class,0); - } - public EqualityExpressionContext equalityExpression() { - return getRuleContext(EqualityExpressionContext.class,0); - } - public EqualityExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_equalityExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterEqualityExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitEqualityExpression(this); - } - } - - public final EqualityExpressionContext equalityExpression() throws RecognitionException { - return equalityExpression(0); - } - - private EqualityExpressionContext equalityExpression(int _p) throws RecognitionException { - ParserRuleContext _parentctx = _ctx; - int _parentState = getState(); - EqualityExpressionContext _localctx = new EqualityExpressionContext(_ctx, _parentState); - EqualityExpressionContext _prevctx = _localctx; - int _startState = 446; - enterRecursionRule(_localctx, 446, RULE_equalityExpression, _p); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - { - setState(2704); - relationalExpression(0); - } - _ctx.stop = _input.LT(-1); - setState(2714); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,311,_ctx); - while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - if ( _parseListeners!=null ) triggerExitRuleEvent(); - _prevctx = _localctx; - { - setState(2712); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,310,_ctx) ) { - case 1: - { - _localctx = new EqualityExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_equalityExpression); - setState(2706); - if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); - setState(2707); - match(EQUAL); - setState(2708); - relationalExpression(0); - } - break; - case 2: - { - _localctx = new EqualityExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_equalityExpression); - setState(2709); - if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(2710); - match(NOTEQUAL); - setState(2711); - relationalExpression(0); - } - break; - } - } - } - setState(2716); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,311,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - unrollRecursionContexts(_parentctx); - } - return _localctx; - } - - public static class RelationalExpressionContext extends ParserRuleContext { - public ShiftExpressionContext shiftExpression() { - return getRuleContext(ShiftExpressionContext.class,0); - } - public RelationalExpressionContext relationalExpression() { - return getRuleContext(RelationalExpressionContext.class,0); - } - public ReferenceTypeContext referenceType() { - return getRuleContext(ReferenceTypeContext.class,0); - } - public RelationalExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_relationalExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterRelationalExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitRelationalExpression(this); - } - } - - public final RelationalExpressionContext relationalExpression() throws RecognitionException { - return relationalExpression(0); - } - - private RelationalExpressionContext relationalExpression(int _p) throws RecognitionException { - ParserRuleContext _parentctx = _ctx; - int _parentState = getState(); - RelationalExpressionContext _localctx = new RelationalExpressionContext(_ctx, _parentState); - RelationalExpressionContext _prevctx = _localctx; - int _startState = 448; - enterRecursionRule(_localctx, 448, RULE_relationalExpression, _p); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - { - setState(2718); - shiftExpression(0); - } - _ctx.stop = _input.LT(-1); - setState(2737); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,313,_ctx); - while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - if ( _parseListeners!=null ) triggerExitRuleEvent(); - _prevctx = _localctx; - { - setState(2735); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,312,_ctx) ) { - case 1: - { - _localctx = new RelationalExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_relationalExpression); - setState(2720); - if (!(precpred(_ctx, 5))) throw new FailedPredicateException(this, "precpred(_ctx, 5)"); - setState(2721); - match(LT); - setState(2722); - shiftExpression(0); - } - break; - case 2: - { - _localctx = new RelationalExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_relationalExpression); - setState(2723); - if (!(precpred(_ctx, 4))) throw new FailedPredicateException(this, "precpred(_ctx, 4)"); - setState(2724); - match(GT); - setState(2725); - shiftExpression(0); - } - break; - case 3: - { - _localctx = new RelationalExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_relationalExpression); - setState(2726); - if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)"); - setState(2727); - match(LE); - setState(2728); - shiftExpression(0); - } - break; - case 4: - { - _localctx = new RelationalExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_relationalExpression); - setState(2729); - if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); - setState(2730); - match(GE); - setState(2731); - shiftExpression(0); - } - break; - case 5: - { - _localctx = new RelationalExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_relationalExpression); - setState(2732); - if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(2733); - match(INSTANCEOF); - setState(2734); - referenceType(); - } - break; - } - } - } - setState(2739); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,313,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - unrollRecursionContexts(_parentctx); - } - return _localctx; - } - - public static class ShiftExpressionContext extends ParserRuleContext { - public AdditiveExpressionContext additiveExpression() { - return getRuleContext(AdditiveExpressionContext.class,0); - } - public ShiftExpressionContext shiftExpression() { - return getRuleContext(ShiftExpressionContext.class,0); - } - public ShiftExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_shiftExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterShiftExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitShiftExpression(this); - } - } - - public final ShiftExpressionContext shiftExpression() throws RecognitionException { - return shiftExpression(0); - } - - private ShiftExpressionContext shiftExpression(int _p) throws RecognitionException { - ParserRuleContext _parentctx = _ctx; - int _parentState = getState(); - ShiftExpressionContext _localctx = new ShiftExpressionContext(_ctx, _parentState); - ShiftExpressionContext _prevctx = _localctx; - int _startState = 450; - enterRecursionRule(_localctx, 450, RULE_shiftExpression, _p); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - { - setState(2741); - additiveExpression(0); - } - _ctx.stop = _input.LT(-1); - setState(2758); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,315,_ctx); - while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - if ( _parseListeners!=null ) triggerExitRuleEvent(); - _prevctx = _localctx; - { - setState(2756); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,314,_ctx) ) { - case 1: - { - _localctx = new ShiftExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_shiftExpression); - setState(2743); - if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)"); - setState(2744); - match(LT); - setState(2745); - match(LT); - setState(2746); - additiveExpression(0); - } - break; - case 2: - { - _localctx = new ShiftExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_shiftExpression); - setState(2747); - if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); - setState(2748); - match(GT); - setState(2749); - match(GT); - setState(2750); - additiveExpression(0); - } - break; - case 3: - { - _localctx = new ShiftExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_shiftExpression); - setState(2751); - if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(2752); - match(GT); - setState(2753); - match(GT); - setState(2754); - match(GT); - setState(2755); - additiveExpression(0); - } - break; - } - } - } - setState(2760); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,315,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - unrollRecursionContexts(_parentctx); - } - return _localctx; - } - - public static class AdditiveExpressionContext extends ParserRuleContext { - public MultiplicativeExpressionContext multiplicativeExpression() { - return getRuleContext(MultiplicativeExpressionContext.class,0); - } - public AdditiveExpressionContext additiveExpression() { - return getRuleContext(AdditiveExpressionContext.class,0); - } - public AdditiveExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_additiveExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterAdditiveExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitAdditiveExpression(this); - } - } - - public final AdditiveExpressionContext additiveExpression() throws RecognitionException { - return additiveExpression(0); - } - - private AdditiveExpressionContext additiveExpression(int _p) throws RecognitionException { - ParserRuleContext _parentctx = _ctx; - int _parentState = getState(); - AdditiveExpressionContext _localctx = new AdditiveExpressionContext(_ctx, _parentState); - AdditiveExpressionContext _prevctx = _localctx; - int _startState = 452; - enterRecursionRule(_localctx, 452, RULE_additiveExpression, _p); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - { - setState(2762); - multiplicativeExpression(0); - } - _ctx.stop = _input.LT(-1); - setState(2772); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,317,_ctx); - while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - if ( _parseListeners!=null ) triggerExitRuleEvent(); - _prevctx = _localctx; - { - setState(2770); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,316,_ctx) ) { - case 1: - { - _localctx = new AdditiveExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_additiveExpression); - setState(2764); - if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); - setState(2765); - match(ADD); - setState(2766); - multiplicativeExpression(0); - } - break; - case 2: - { - _localctx = new AdditiveExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_additiveExpression); - setState(2767); - if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(2768); - match(SUB); - setState(2769); - multiplicativeExpression(0); - } - break; - } - } - } - setState(2774); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,317,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - unrollRecursionContexts(_parentctx); - } - return _localctx; - } - - public static class MultiplicativeExpressionContext extends ParserRuleContext { - public UnaryExpressionContext unaryExpression() { - return getRuleContext(UnaryExpressionContext.class,0); - } - public MultiplicativeExpressionContext multiplicativeExpression() { - return getRuleContext(MultiplicativeExpressionContext.class,0); - } - public MultiplicativeExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_multiplicativeExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterMultiplicativeExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitMultiplicativeExpression(this); - } - } - - public final MultiplicativeExpressionContext multiplicativeExpression() throws RecognitionException { - return multiplicativeExpression(0); - } - - private MultiplicativeExpressionContext multiplicativeExpression(int _p) throws RecognitionException { - ParserRuleContext _parentctx = _ctx; - int _parentState = getState(); - MultiplicativeExpressionContext _localctx = new MultiplicativeExpressionContext(_ctx, _parentState); - MultiplicativeExpressionContext _prevctx = _localctx; - int _startState = 454; - enterRecursionRule(_localctx, 454, RULE_multiplicativeExpression, _p); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - { - setState(2776); - unaryExpression(); - } - _ctx.stop = _input.LT(-1); - setState(2789); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,319,_ctx); - while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - if ( _parseListeners!=null ) triggerExitRuleEvent(); - _prevctx = _localctx; - { - setState(2787); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,318,_ctx) ) { - case 1: - { - _localctx = new MultiplicativeExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_multiplicativeExpression); - setState(2778); - if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)"); - setState(2779); - match(MUL); - setState(2780); - unaryExpression(); - } - break; - case 2: - { - _localctx = new MultiplicativeExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_multiplicativeExpression); - setState(2781); - if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); - setState(2782); - match(DIV); - setState(2783); - unaryExpression(); - } - break; - case 3: - { - _localctx = new MultiplicativeExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_multiplicativeExpression); - setState(2784); - if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(2785); - match(MOD); - setState(2786); - unaryExpression(); - } - break; - } - } - } - setState(2791); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,319,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - unrollRecursionContexts(_parentctx); - } - return _localctx; - } - - public static class UnaryExpressionContext extends ParserRuleContext { - public PreIncrementExpressionContext preIncrementExpression() { - return getRuleContext(PreIncrementExpressionContext.class,0); - } - public PreDecrementExpressionContext preDecrementExpression() { - return getRuleContext(PreDecrementExpressionContext.class,0); - } - public UnaryExpressionContext unaryExpression() { - return getRuleContext(UnaryExpressionContext.class,0); - } - public UnaryExpressionNotPlusMinusContext unaryExpressionNotPlusMinus() { - return getRuleContext(UnaryExpressionNotPlusMinusContext.class,0); - } - public UnaryExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_unaryExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnaryExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnaryExpression(this); - } - } - - public final UnaryExpressionContext unaryExpression() throws RecognitionException { - UnaryExpressionContext _localctx = new UnaryExpressionContext(_ctx, getState()); - enterRule(_localctx, 456, RULE_unaryExpression); - try { - setState(2799); - _errHandler.sync(this); - switch (_input.LA(1)) { - case INC: - enterOuterAlt(_localctx, 1); - { - setState(2792); - preIncrementExpression(); - } - break; - case DEC: - enterOuterAlt(_localctx, 2); - { - setState(2793); - preDecrementExpression(); - } - break; - case ADD: - enterOuterAlt(_localctx, 3); - { - setState(2794); - match(ADD); - setState(2795); - unaryExpression(); - } - break; - case SUB: - enterOuterAlt(_localctx, 4); - { - setState(2796); - match(SUB); - setState(2797); - unaryExpression(); - } - break; - case BOOLEAN: - case BYTE: - case CHAR: - case DOUBLE: - case FLOAT: - case INT: - case LONG: - case NEW: - case SHORT: - case SUPER: - case THIS: - case VOID: - case IntegerLiteral: - case FloatingPointLiteral: - case BooleanLiteral: - case CharacterLiteral: - case StringLiteral: - case NullLiteral: - case LPAREN: - case BANG: - case TILDE: - case Identifier: - case AT: - enterOuterAlt(_localctx, 5); - { - setState(2798); - unaryExpressionNotPlusMinus(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class PreIncrementExpressionContext extends ParserRuleContext { - public UnaryExpressionContext unaryExpression() { - return getRuleContext(UnaryExpressionContext.class,0); - } - public PreIncrementExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_preIncrementExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPreIncrementExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPreIncrementExpression(this); - } - } - - public final PreIncrementExpressionContext preIncrementExpression() throws RecognitionException { - PreIncrementExpressionContext _localctx = new PreIncrementExpressionContext(_ctx, getState()); - enterRule(_localctx, 458, RULE_preIncrementExpression); - try { - enterOuterAlt(_localctx, 1); - { - setState(2801); - match(INC); - setState(2802); - unaryExpression(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class PreDecrementExpressionContext extends ParserRuleContext { - public UnaryExpressionContext unaryExpression() { - return getRuleContext(UnaryExpressionContext.class,0); - } - public PreDecrementExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_preDecrementExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPreDecrementExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPreDecrementExpression(this); - } - } - - public final PreDecrementExpressionContext preDecrementExpression() throws RecognitionException { - PreDecrementExpressionContext _localctx = new PreDecrementExpressionContext(_ctx, getState()); - enterRule(_localctx, 460, RULE_preDecrementExpression); - try { - enterOuterAlt(_localctx, 1); - { - setState(2804); - match(DEC); - setState(2805); - unaryExpression(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class UnaryExpressionNotPlusMinusContext extends ParserRuleContext { - public PostfixExpressionContext postfixExpression() { - return getRuleContext(PostfixExpressionContext.class,0); - } - public UnaryExpressionContext unaryExpression() { - return getRuleContext(UnaryExpressionContext.class,0); - } - public CastExpressionContext castExpression() { - return getRuleContext(CastExpressionContext.class,0); - } - public UnaryExpressionNotPlusMinusContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_unaryExpressionNotPlusMinus; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterUnaryExpressionNotPlusMinus(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitUnaryExpressionNotPlusMinus(this); - } - } - - public final UnaryExpressionNotPlusMinusContext unaryExpressionNotPlusMinus() throws RecognitionException { - UnaryExpressionNotPlusMinusContext _localctx = new UnaryExpressionNotPlusMinusContext(_ctx, getState()); - enterRule(_localctx, 462, RULE_unaryExpressionNotPlusMinus); - try { - setState(2813); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,321,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(2807); - postfixExpression(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(2808); - match(TILDE); - setState(2809); - unaryExpression(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(2810); - match(BANG); - setState(2811); - unaryExpression(); - } - break; - case 4: - enterOuterAlt(_localctx, 4); - { - setState(2812); - castExpression(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class PostfixExpressionContext extends ParserRuleContext { - public PrimaryContext primary() { - return getRuleContext(PrimaryContext.class,0); - } - public ExpressionNameContext expressionName() { - return getRuleContext(ExpressionNameContext.class,0); - } - public List postIncrementExpression_lf_postfixExpression() { - return getRuleContexts(PostIncrementExpression_lf_postfixExpressionContext.class); - } - public PostIncrementExpression_lf_postfixExpressionContext postIncrementExpression_lf_postfixExpression(int i) { - return getRuleContext(PostIncrementExpression_lf_postfixExpressionContext.class,i); - } - public List postDecrementExpression_lf_postfixExpression() { - return getRuleContexts(PostDecrementExpression_lf_postfixExpressionContext.class); - } - public PostDecrementExpression_lf_postfixExpressionContext postDecrementExpression_lf_postfixExpression(int i) { - return getRuleContext(PostDecrementExpression_lf_postfixExpressionContext.class,i); - } - public PostfixExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_postfixExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPostfixExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPostfixExpression(this); - } - } - - public final PostfixExpressionContext postfixExpression() throws RecognitionException { - PostfixExpressionContext _localctx = new PostfixExpressionContext(_ctx, getState()); - enterRule(_localctx, 464, RULE_postfixExpression); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - setState(2817); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,322,_ctx) ) { - case 1: - { - setState(2815); - primary(); - } - break; - case 2: - { - setState(2816); - expressionName(); - } - break; - } - setState(2823); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,324,_ctx); - while ( _alt!=2 && _alt!= ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - { - setState(2821); - _errHandler.sync(this); - switch (_input.LA(1)) { - case INC: - { - setState(2819); - postIncrementExpression_lf_postfixExpression(); - } - break; - case DEC: - { - setState(2820); - postDecrementExpression_lf_postfixExpression(); - } - break; - default: - throw new NoViableAltException(this); - } - } - } - setState(2825); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,324,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class PostIncrementExpressionContext extends ParserRuleContext { - public PostfixExpressionContext postfixExpression() { - return getRuleContext(PostfixExpressionContext.class,0); - } - public PostIncrementExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_postIncrementExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPostIncrementExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPostIncrementExpression(this); - } - } - - public final PostIncrementExpressionContext postIncrementExpression() throws RecognitionException { - PostIncrementExpressionContext _localctx = new PostIncrementExpressionContext(_ctx, getState()); - enterRule(_localctx, 466, RULE_postIncrementExpression); - try { - enterOuterAlt(_localctx, 1); - { - setState(2826); - postfixExpression(); - setState(2827); - match(INC); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class PostIncrementExpression_lf_postfixExpressionContext extends ParserRuleContext { - public PostIncrementExpression_lf_postfixExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_postIncrementExpression_lf_postfixExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPostIncrementExpression_lf_postfixExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPostIncrementExpression_lf_postfixExpression(this); - } - } - - public final PostIncrementExpression_lf_postfixExpressionContext postIncrementExpression_lf_postfixExpression() throws RecognitionException { - PostIncrementExpression_lf_postfixExpressionContext _localctx = new PostIncrementExpression_lf_postfixExpressionContext(_ctx, getState()); - enterRule(_localctx, 468, RULE_postIncrementExpression_lf_postfixExpression); - try { - enterOuterAlt(_localctx, 1); - { - setState(2829); - match(INC); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class PostDecrementExpressionContext extends ParserRuleContext { - public PostfixExpressionContext postfixExpression() { - return getRuleContext(PostfixExpressionContext.class,0); - } - public PostDecrementExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_postDecrementExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPostDecrementExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPostDecrementExpression(this); - } - } - - public final PostDecrementExpressionContext postDecrementExpression() throws RecognitionException { - PostDecrementExpressionContext _localctx = new PostDecrementExpressionContext(_ctx, getState()); - enterRule(_localctx, 470, RULE_postDecrementExpression); - try { - enterOuterAlt(_localctx, 1); - { - setState(2831); - postfixExpression(); - setState(2832); - match(DEC); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class PostDecrementExpression_lf_postfixExpressionContext extends ParserRuleContext { - public PostDecrementExpression_lf_postfixExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_postDecrementExpression_lf_postfixExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterPostDecrementExpression_lf_postfixExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitPostDecrementExpression_lf_postfixExpression(this); - } - } - - public final PostDecrementExpression_lf_postfixExpressionContext postDecrementExpression_lf_postfixExpression() throws RecognitionException { - PostDecrementExpression_lf_postfixExpressionContext _localctx = new PostDecrementExpression_lf_postfixExpressionContext(_ctx, getState()); - enterRule(_localctx, 472, RULE_postDecrementExpression_lf_postfixExpression); - try { - enterOuterAlt(_localctx, 1); - { - setState(2834); - match(DEC); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class CastExpressionContext extends ParserRuleContext { - public PrimitiveTypeContext primitiveType() { - return getRuleContext(PrimitiveTypeContext.class,0); - } - public UnaryExpressionContext unaryExpression() { - return getRuleContext(UnaryExpressionContext.class,0); - } - public ReferenceTypeContext referenceType() { - return getRuleContext(ReferenceTypeContext.class,0); - } - public UnaryExpressionNotPlusMinusContext unaryExpressionNotPlusMinus() { - return getRuleContext(UnaryExpressionNotPlusMinusContext.class,0); - } - public List additionalBound() { - return getRuleContexts(AdditionalBoundContext.class); - } - public AdditionalBoundContext additionalBound(int i) { - return getRuleContext(AdditionalBoundContext.class,i); - } - public LambdaExpressionContext lambdaExpression() { - return getRuleContext(LambdaExpressionContext.class,0); - } - public CastExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_castExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).enterCastExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof Java8Listener ) ((Java8Listener)listener).exitCastExpression(this); - } - } - - public final CastExpressionContext castExpression() throws RecognitionException { - CastExpressionContext _localctx = new CastExpressionContext(_ctx, getState()); - enterRule(_localctx, 474, RULE_castExpression); - int _la; - try { - setState(2863); - _errHandler.sync(this); - switch ( getInterpreter().adaptivePredict(_input,327,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(2836); - match(LPAREN); - setState(2837); - primitiveType(); - setState(2838); - match(RPAREN); - setState(2839); - unaryExpression(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(2841); - match(LPAREN); - setState(2842); - referenceType(); - setState(2846); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==BITAND) { - { - { - setState(2843); - additionalBound(); - } - } - setState(2848); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(2849); - match(RPAREN); - setState(2850); - unaryExpressionNotPlusMinus(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(2852); - match(LPAREN); - setState(2853); - referenceType(); - setState(2857); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la==BITAND) { - { - { - setState(2854); - additionalBound(); - } - } - setState(2859); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(2860); - match(RPAREN); - setState(2861); - lambdaExpression(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) { - switch (ruleIndex) { - case 26: - return packageName_sempred((PackageNameContext)_localctx, predIndex); - case 28: - return packageOrTypeName_sempred((PackageOrTypeNameContext)_localctx, predIndex); - case 31: - return ambiguousName_sempred((AmbiguousNameContext)_localctx, predIndex); - case 218: - return conditionalOrExpression_sempred((ConditionalOrExpressionContext)_localctx, predIndex); - case 219: - return conditionalAndExpression_sempred((ConditionalAndExpressionContext)_localctx, predIndex); - case 220: - return inclusiveOrExpression_sempred((InclusiveOrExpressionContext)_localctx, predIndex); - case 221: - return exclusiveOrExpression_sempred((ExclusiveOrExpressionContext)_localctx, predIndex); - case 222: - return andExpression_sempred((AndExpressionContext)_localctx, predIndex); - case 223: - return equalityExpression_sempred((EqualityExpressionContext)_localctx, predIndex); - case 224: - return relationalExpression_sempred((RelationalExpressionContext)_localctx, predIndex); - case 225: - return shiftExpression_sempred((ShiftExpressionContext)_localctx, predIndex); - case 226: - return additiveExpression_sempred((AdditiveExpressionContext)_localctx, predIndex); - case 227: - return multiplicativeExpression_sempred((MultiplicativeExpressionContext)_localctx, predIndex); - } - return true; - } - private boolean packageName_sempred(PackageNameContext _localctx, int predIndex) { - switch (predIndex) { - case 0: - return precpred(_ctx, 1); - } - return true; - } - private boolean packageOrTypeName_sempred(PackageOrTypeNameContext _localctx, int predIndex) { - switch (predIndex) { - case 1: - return precpred(_ctx, 1); - } - return true; - } - private boolean ambiguousName_sempred(AmbiguousNameContext _localctx, int predIndex) { - switch (predIndex) { - case 2: - return precpred(_ctx, 1); - } - return true; - } - private boolean conditionalOrExpression_sempred(ConditionalOrExpressionContext _localctx, int predIndex) { - switch (predIndex) { - case 3: - return precpred(_ctx, 1); - } - return true; - } - private boolean conditionalAndExpression_sempred(ConditionalAndExpressionContext _localctx, int predIndex) { - switch (predIndex) { - case 4: - return precpred(_ctx, 1); - } - return true; - } - private boolean inclusiveOrExpression_sempred(InclusiveOrExpressionContext _localctx, int predIndex) { - switch (predIndex) { - case 5: - return precpred(_ctx, 1); - } - return true; - } - private boolean exclusiveOrExpression_sempred(ExclusiveOrExpressionContext _localctx, int predIndex) { - switch (predIndex) { - case 6: - return precpred(_ctx, 1); - } - return true; - } - private boolean andExpression_sempred(AndExpressionContext _localctx, int predIndex) { - switch (predIndex) { - case 7: - return precpred(_ctx, 1); - } - return true; - } - private boolean equalityExpression_sempred(EqualityExpressionContext _localctx, int predIndex) { - switch (predIndex) { - case 8: - return precpred(_ctx, 2); - case 9: - return precpred(_ctx, 1); - } - return true; - } - private boolean relationalExpression_sempred(RelationalExpressionContext _localctx, int predIndex) { - switch (predIndex) { - case 10: - return precpred(_ctx, 5); - case 11: - return precpred(_ctx, 4); - case 12: - return precpred(_ctx, 3); - case 13: - return precpred(_ctx, 2); - case 14: - return precpred(_ctx, 1); - } - return true; - } - private boolean shiftExpression_sempred(ShiftExpressionContext _localctx, int predIndex) { - switch (predIndex) { - case 15: - return precpred(_ctx, 3); - case 16: - return precpred(_ctx, 2); - case 17: - return precpred(_ctx, 1); - } - return true; - } - private boolean additiveExpression_sempred(AdditiveExpressionContext _localctx, int predIndex) { - switch (predIndex) { - case 18: - return precpred(_ctx, 2); - case 19: - return precpred(_ctx, 1); - } - return true; - } - private boolean multiplicativeExpression_sempred(MultiplicativeExpressionContext _localctx, int predIndex) { - switch (predIndex) { - case 20: - return precpred(_ctx, 3); - case 21: - return precpred(_ctx, 2); - case 22: - return precpred(_ctx, 1); - } - return true; - } - - private static final int _serializedATNSegments = 2; - private static final String _serializedATNSegment0 = - "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3n\u0b34\4\2\t\2\4"+ - "\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t"+ - "\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+ - "\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+ - "\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t \4!"+ - "\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\4"+ - ",\t,\4-\t-\4.\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64\t"+ - "\64\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:\4;\t;\4<\t<\4=\t="+ - "\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\tC\4D\tD\4E\tE\4F\tF\4G\tG\4H\tH\4I"+ - "\tI\4J\tJ\4K\tK\4L\tL\4M\tM\4N\tN\4O\tO\4P\tP\4Q\tQ\4R\tR\4S\tS\4T\tT"+ - "\4U\tU\4V\tV\4W\tW\4X\tX\4Y\tY\4Z\tZ\4[\t[\4\\\t\\\4]\t]\4^\t^\4_\t_\4"+ - "`\t`\4a\ta\4b\tb\4c\tc\4d\td\4e\te\4f\tf\4g\tg\4h\th\4i\ti\4j\tj\4k\t"+ - "k\4l\tl\4m\tm\4n\tn\4o\to\4p\tp\4q\tq\4r\tr\4s\ts\4t\tt\4u\tu\4v\tv\4"+ - "w\tw\4x\tx\4y\ty\4z\tz\4{\t{\4|\t|\4}\t}\4~\t~\4\177\t\177\4\u0080\t\u0080"+ - "\4\u0081\t\u0081\4\u0082\t\u0082\4\u0083\t\u0083\4\u0084\t\u0084\4\u0085"+ - "\t\u0085\4\u0086\t\u0086\4\u0087\t\u0087\4\u0088\t\u0088\4\u0089\t\u0089"+ - "\4\u008a\t\u008a\4\u008b\t\u008b\4\u008c\t\u008c\4\u008d\t\u008d\4\u008e"+ - "\t\u008e\4\u008f\t\u008f\4\u0090\t\u0090\4\u0091\t\u0091\4\u0092\t\u0092"+ - "\4\u0093\t\u0093\4\u0094\t\u0094\4\u0095\t\u0095\4\u0096\t\u0096\4\u0097"+ - "\t\u0097\4\u0098\t\u0098\4\u0099\t\u0099\4\u009a\t\u009a\4\u009b\t\u009b"+ - "\4\u009c\t\u009c\4\u009d\t\u009d\4\u009e\t\u009e\4\u009f\t\u009f\4\u00a0"+ - "\t\u00a0\4\u00a1\t\u00a1\4\u00a2\t\u00a2\4\u00a3\t\u00a3\4\u00a4\t\u00a4"+ - "\4\u00a5\t\u00a5\4\u00a6\t\u00a6\4\u00a7\t\u00a7\4\u00a8\t\u00a8\4\u00a9"+ - "\t\u00a9\4\u00aa\t\u00aa\4\u00ab\t\u00ab\4\u00ac\t\u00ac\4\u00ad\t\u00ad"+ - "\4\u00ae\t\u00ae\4\u00af\t\u00af\4\u00b0\t\u00b0\4\u00b1\t\u00b1\4\u00b2"+ - "\t\u00b2\4\u00b3\t\u00b3\4\u00b4\t\u00b4\4\u00b5\t\u00b5\4\u00b6\t\u00b6"+ - "\4\u00b7\t\u00b7\4\u00b8\t\u00b8\4\u00b9\t\u00b9\4\u00ba\t\u00ba\4\u00bb"+ - "\t\u00bb\4\u00bc\t\u00bc\4\u00bd\t\u00bd\4\u00be\t\u00be\4\u00bf\t\u00bf"+ - "\4\u00c0\t\u00c0\4\u00c1\t\u00c1\4\u00c2\t\u00c2\4\u00c3\t\u00c3\4\u00c4"+ - "\t\u00c4\4\u00c5\t\u00c5\4\u00c6\t\u00c6\4\u00c7\t\u00c7\4\u00c8\t\u00c8"+ - "\4\u00c9\t\u00c9\4\u00ca\t\u00ca\4\u00cb\t\u00cb\4\u00cc\t\u00cc\4\u00cd"+ - "\t\u00cd\4\u00ce\t\u00ce\4\u00cf\t\u00cf\4\u00d0\t\u00d0\4\u00d1\t\u00d1"+ - "\4\u00d2\t\u00d2\4\u00d3\t\u00d3\4\u00d4\t\u00d4\4\u00d5\t\u00d5\4\u00d6"+ - "\t\u00d6\4\u00d7\t\u00d7\4\u00d8\t\u00d8\4\u00d9\t\u00d9\4\u00da\t\u00da"+ - "\4\u00db\t\u00db\4\u00dc\t\u00dc\4\u00dd\t\u00dd\4\u00de\t\u00de\4\u00df"+ - "\t\u00df\4\u00e0\t\u00e0\4\u00e1\t\u00e1\4\u00e2\t\u00e2\4\u00e3\t\u00e3"+ - "\4\u00e4\t\u00e4\4\u00e5\t\u00e5\4\u00e6\t\u00e6\4\u00e7\t\u00e7\4\u00e8"+ - "\t\u00e8\4\u00e9\t\u00e9\4\u00ea\t\u00ea\4\u00eb\t\u00eb\4\u00ec\t\u00ec"+ - "\4\u00ed\t\u00ed\4\u00ee\t\u00ee\4\u00ef\t\u00ef\3\2\3\2\3\3\3\3\5\3\u01e3"+ - "\n\3\3\4\7\4\u01e6\n\4\f\4\16\4\u01e9\13\4\3\4\3\4\7\4\u01ed\n\4\f\4\16"+ - "\4\u01f0\13\4\3\4\5\4\u01f3\n\4\3\5\3\5\5\5\u01f7\n\5\3\6\3\6\3\7\3\7"+ - "\3\b\3\b\3\b\5\b\u0200\n\b\3\t\3\t\5\t\u0204\n\t\3\t\7\t\u0207\n\t\f\t"+ - "\16\t\u020a\13\t\3\n\7\n\u020d\n\n\f\n\16\n\u0210\13\n\3\n\3\n\5\n\u0214"+ - "\n\n\3\n\3\n\3\n\7\n\u0219\n\n\f\n\16\n\u021c\13\n\3\n\3\n\5\n\u0220\n"+ - "\n\5\n\u0222\n\n\3\13\3\13\7\13\u0226\n\13\f\13\16\13\u0229\13\13\3\13"+ - "\3\13\5\13\u022d\n\13\3\f\7\f\u0230\n\f\f\f\16\f\u0233\13\f\3\f\3\f\5"+ - "\f\u0237\n\f\3\r\3\r\3\16\3\16\3\17\3\17\3\20\7\20\u0240\n\20\f\20\16"+ - "\20\u0243\13\20\3\20\3\20\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21"+ - "\5\21\u0250\n\21\3\22\7\22\u0253\n\22\f\22\16\22\u0256\13\22\3\22\3\22"+ - "\3\22\7\22\u025b\n\22\f\22\16\22\u025e\13\22\3\22\3\22\7\22\u0262\n\22"+ - "\f\22\16\22\u0265\13\22\3\23\7\23\u0268\n\23\f\23\16\23\u026b\13\23\3"+ - "\23\3\23\5\23\u026f\n\23\3\24\3\24\3\25\3\25\3\25\3\25\3\25\7\25\u0278"+ - "\n\25\f\25\16\25\u027b\13\25\5\25\u027d\n\25\3\26\3\26\3\26\3\27\3\27"+ - "\3\27\3\27\3\30\3\30\3\30\7\30\u0289\n\30\f\30\16\30\u028c\13\30\3\31"+ - "\3\31\5\31\u0290\n\31\3\32\7\32\u0293\n\32\f\32\16\32\u0296\13\32\3\32"+ - "\3\32\5\32\u029a\n\32\3\33\3\33\3\33\3\33\5\33\u02a0\n\33\3\34\3\34\3"+ - "\34\3\34\3\34\3\34\7\34\u02a8\n\34\f\34\16\34\u02ab\13\34\3\35\3\35\3"+ - "\35\3\35\3\35\5\35\u02b2\n\35\3\36\3\36\3\36\3\36\3\36\3\36\7\36\u02ba"+ - "\n\36\f\36\16\36\u02bd\13\36\3\37\3\37\3\37\3\37\3\37\5\37\u02c4\n\37"+ - "\3 \3 \3!\3!\3!\3!\3!\3!\7!\u02ce\n!\f!\16!\u02d1\13!\3\"\5\"\u02d4\n"+ - "\"\3\"\7\"\u02d7\n\"\f\"\16\"\u02da\13\"\3\"\7\"\u02dd\n\"\f\"\16\"\u02e0"+ - "\13\"\3\"\3\"\3#\7#\u02e5\n#\f#\16#\u02e8\13#\3#\3#\3#\3#\7#\u02ee\n#"+ - "\f#\16#\u02f1\13#\3#\3#\3$\3$\3%\3%\3%\3%\5%\u02fb\n%\3&\3&\3&\3&\3\'"+ - "\3\'\3\'\3\'\3\'\3\'\3(\3(\3(\3(\3(\3(\3(\3)\3)\3)\3)\3)\3)\3)\3*\3*\3"+ - "*\5*\u0318\n*\3+\3+\5+\u031c\n+\3,\7,\u031f\n,\f,\16,\u0322\13,\3,\3,"+ - "\3,\5,\u0327\n,\3,\5,\u032a\n,\3,\5,\u032d\n,\3,\3,\3-\3-\3-\3-\3-\3-"+ - "\3-\3-\5-\u0339\n-\3.\3.\3.\3.\3/\3/\3/\7/\u0342\n/\f/\16/\u0345\13/\3"+ - "\60\3\60\3\60\3\61\3\61\3\61\3\62\3\62\3\62\7\62\u0350\n\62\f\62\16\62"+ - "\u0353\13\62\3\63\3\63\7\63\u0357\n\63\f\63\16\63\u035a\13\63\3\63\3\63"+ - "\3\64\3\64\3\64\5\64\u0361\n\64\3\65\3\65\3\65\3\65\3\65\5\65\u0368\n"+ - "\65\3\66\7\66\u036b\n\66\f\66\16\66\u036e\13\66\3\66\5\66\u0371\n\66\3"+ - "\66\3\66\3\66\3\67\3\67\3\67\3\67\3\67\3\67\3\67\3\67\5\67\u037e\n\67"+ - "\38\38\38\78\u0383\n8\f8\168\u0386\138\39\39\39\59\u038b\n9\3:\3:\5:\u038f"+ - "\n:\3;\3;\5;\u0393\n;\3<\3<\5<\u0397\n<\3=\3=\5=\u039b\n=\3>\3>\3>\5>"+ - "\u03a0\n>\3?\3?\5?\u03a4\n?\3?\3?\7?\u03a8\n?\f?\16?\u03ab\13?\3@\3@\5"+ - "@\u03af\n@\3@\3@\3@\7@\u03b4\n@\f@\16@\u03b7\13@\3@\3@\5@\u03bb\n@\5@"+ - "\u03bd\n@\3A\3A\7A\u03c1\nA\fA\16A\u03c4\13A\3A\3A\5A\u03c8\nA\3B\3B\5"+ - "B\u03cc\nB\3C\3C\3D\3D\3E\3E\3F\3F\3G\3G\3G\3G\3G\3G\3G\3G\3G\5G\u03df"+ - "\nG\3H\7H\u03e2\nH\fH\16H\u03e5\13H\3H\3H\3H\3I\3I\3I\3I\3I\3I\3I\3I\3"+ - "I\3I\5I\u03f4\nI\3J\5J\u03f7\nJ\3J\3J\5J\u03fb\nJ\3J\3J\7J\u03ff\nJ\f"+ - "J\16J\u0402\13J\3J\5J\u0405\nJ\3J\3J\5J\u0409\nJ\5J\u040b\nJ\3K\3K\5K"+ - "\u040f\nK\3L\3L\3L\5L\u0414\nL\3L\3L\5L\u0418\nL\3M\3M\3M\3M\3M\5M\u041f"+ - "\nM\3N\3N\3N\7N\u0424\nN\fN\16N\u0427\13N\3N\3N\3N\7N\u042c\nN\fN\16N"+ - "\u042f\13N\5N\u0431\nN\3O\7O\u0434\nO\fO\16O\u0437\13O\3O\5O\u043a\nO"+ - "\3O\3O\3P\3P\5P\u0440\nP\3Q\7Q\u0443\nQ\fQ\16Q\u0446\13Q\3Q\3Q\7Q\u044a"+ - "\nQ\fQ\16Q\u044d\13Q\3Q\3Q\3Q\3Q\5Q\u0453\nQ\3R\7R\u0456\nR\fR\16R\u0459"+ - "\13R\3R\3R\3R\5R\u045e\nR\3R\3R\3S\3S\3S\3T\3T\3T\7T\u0468\nT\fT\16T\u046b"+ - "\13T\3U\3U\5U\u046f\nU\3V\3V\5V\u0473\nV\3W\3W\3X\3X\3X\3Y\7Y\u047b\n"+ - "Y\fY\16Y\u047e\13Y\3Y\3Y\5Y\u0482\nY\3Y\3Y\3Z\3Z\3Z\3Z\5Z\u048a\nZ\3["+ - "\5[\u048d\n[\3[\3[\3[\5[\u0492\n[\3[\3[\3\\\3\\\3]\3]\5]\u049a\n]\3]\5"+ - "]\u049d\n]\3]\3]\3^\5^\u04a2\n^\3^\3^\3^\5^\u04a7\n^\3^\3^\3^\5^\u04ac"+ - "\n^\3^\3^\3^\5^\u04b1\n^\3^\3^\3^\3^\3^\5^\u04b8\n^\3^\3^\3^\5^\u04bd"+ - "\n^\3^\3^\3^\3^\3^\3^\5^\u04c5\n^\3^\3^\3^\5^\u04ca\n^\3^\3^\3^\5^\u04cf"+ - "\n^\3_\7_\u04d2\n_\f_\16_\u04d5\13_\3_\3_\3_\5_\u04da\n_\3_\3_\3`\3`\5"+ - "`\u04e0\n`\3`\5`\u04e3\n`\3`\5`\u04e6\n`\3`\3`\3a\3a\3a\7a\u04ed\na\f"+ - "a\16a\u04f0\13a\3b\7b\u04f3\nb\fb\16b\u04f6\13b\3b\3b\3b\5b\u04fb\nb\3"+ - "b\5b\u04fe\nb\3b\5b\u0501\nb\3c\3c\3d\3d\7d\u0507\nd\fd\16d\u050a\13d"+ - "\3e\3e\5e\u050e\ne\3f\7f\u0511\nf\ff\16f\u0514\13f\3f\3f\3f\5f\u0519\n"+ - "f\3f\5f\u051c\nf\3f\3f\3g\3g\3g\3g\3g\3g\3g\5g\u0527\ng\3h\3h\3h\3i\3"+ - "i\7i\u052e\ni\fi\16i\u0531\13i\3i\3i\3j\3j\3j\3j\3j\5j\u053a\nj\3k\7k"+ - "\u053d\nk\fk\16k\u0540\13k\3k\3k\3k\3k\3l\3l\3l\3l\5l\u054a\nl\3m\7m\u054d"+ - "\nm\fm\16m\u0550\13m\3m\3m\3m\3n\3n\3n\3n\3n\3n\5n\u055b\nn\3o\7o\u055e"+ - "\no\fo\16o\u0561\13o\3o\3o\3o\3o\3o\3p\3p\7p\u056a\np\fp\16p\u056d\13"+ - "p\3p\3p\3q\3q\3q\3q\3q\5q\u0576\nq\3r\7r\u0579\nr\fr\16r\u057c\13r\3r"+ - "\3r\3r\3r\3r\5r\u0583\nr\3r\5r\u0586\nr\3r\3r\3s\3s\3s\5s\u058d\ns\3t"+ - "\3t\3t\3u\3u\3u\5u\u0595\nu\3v\3v\3v\3v\5v\u059b\nv\3v\3v\3w\3w\3w\7w"+ - "\u05a2\nw\fw\16w\u05a5\13w\3x\3x\3x\3x\3y\3y\3y\5y\u05ae\ny\3z\3z\5z\u05b2"+ - "\nz\3z\5z\u05b5\nz\3z\3z\3{\3{\3{\7{\u05bc\n{\f{\16{\u05bf\13{\3|\3|\3"+ - "|\3}\3}\3}\3}\3}\3}\3~\3~\5~\u05cc\n~\3~\5~\u05cf\n~\3~\3~\3\177\3\177"+ - "\3\177\7\177\u05d6\n\177\f\177\16\177\u05d9\13\177\3\u0080\3\u0080\5\u0080"+ - "\u05dd\n\u0080\3\u0080\3\u0080\3\u0081\3\u0081\7\u0081\u05e3\n\u0081\f"+ - "\u0081\16\u0081\u05e6\13\u0081\3\u0082\3\u0082\3\u0082\5\u0082\u05eb\n"+ - "\u0082\3\u0083\3\u0083\3\u0083\3\u0084\3\u0084\5\u0084\u05f2\n\u0084\3"+ - "\u0085\7\u0085\u05f5\n\u0085\f\u0085\16\u0085\u05f8\13\u0085\3\u0085\3"+ - "\u0085\3\u0085\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086\5\u0086"+ - "\u0603\n\u0086\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\5\u0087\u060a\n"+ - "\u0087\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088"+ - "\3\u0088\3\u0088\3\u0088\3\u0088\5\u0088\u0618\n\u0088\3\u0089\3\u0089"+ - "\3\u008a\3\u008a\3\u008a\3\u008a\3\u008b\3\u008b\3\u008b\3\u008b\3\u008c"+ - "\3\u008c\3\u008c\3\u008d\3\u008d\3\u008d\3\u008d\3\u008d\3\u008d\3\u008d"+ - "\5\u008d\u062e\n\u008d\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e"+ - "\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f\3\u0090"+ - "\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090\3\u0091\3\u0091"+ - "\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\5\u0091"+ - "\u0650\n\u0091\3\u0092\3\u0092\3\u0092\3\u0092\3\u0092\3\u0092\3\u0093"+ - "\3\u0093\7\u0093\u065a\n\u0093\f\u0093\16\u0093\u065d\13\u0093\3\u0093"+ - "\7\u0093\u0660\n\u0093\f\u0093\16\u0093\u0663\13\u0093\3\u0093\3\u0093"+ - "\3\u0094\3\u0094\3\u0094\3\u0095\3\u0095\7\u0095\u066c\n\u0095\f\u0095"+ - "\16\u0095\u066f\13\u0095\3\u0096\3\u0096\3\u0096\3\u0096\3\u0096\3\u0096"+ - "\3\u0096\3\u0096\3\u0096\3\u0096\5\u0096\u067b\n\u0096\3\u0097\3\u0097"+ - "\3\u0098\3\u0098\3\u0098\3\u0098\3\u0098\3\u0098\3\u0099\3\u0099\3\u0099"+ - "\3\u0099\3\u0099\3\u0099\3\u009a\3\u009a\3\u009a\3\u009a\3\u009a\3\u009a"+ - "\3\u009a\3\u009a\3\u009b\3\u009b\5\u009b\u0695\n\u009b\3\u009c\3\u009c"+ - "\5\u009c\u0699\n\u009c\3\u009d\3\u009d\3\u009d\5\u009d\u069e\n\u009d\3"+ - "\u009d\3\u009d\5\u009d\u06a2\n\u009d\3\u009d\3\u009d\5\u009d\u06a6\n\u009d"+ - "\3\u009d\3\u009d\3\u009d\3\u009e\3\u009e\3\u009e\5\u009e\u06ae\n\u009e"+ - "\3\u009e\3\u009e\5\u009e\u06b2\n\u009e\3\u009e\3\u009e\5\u009e\u06b6\n"+ - "\u009e\3\u009e\3\u009e\3\u009e\3\u009f\3\u009f\5\u009f\u06bd\n\u009f\3"+ - "\u00a0\3\u00a0\3\u00a1\3\u00a1\3\u00a1\7\u00a1\u06c4\n\u00a1\f\u00a1\16"+ - "\u00a1\u06c7\13\u00a1\3\u00a2\3\u00a2\3\u00a2\7\u00a2\u06cc\n\u00a2\f"+ - "\u00a2\16\u00a2\u06cf\13\u00a2\3\u00a2\3\u00a2\3\u00a2\3\u00a2\3\u00a2"+ - "\3\u00a2\3\u00a2\3\u00a3\3\u00a3\3\u00a3\7\u00a3\u06db\n\u00a3\f\u00a3"+ - "\16\u00a3\u06de\13\u00a3\3\u00a3\3\u00a3\3\u00a3\3\u00a3\3\u00a3\3\u00a3"+ - "\3\u00a3\3\u00a4\3\u00a4\5\u00a4\u06e9\n\u00a4\3\u00a4\3\u00a4\3\u00a5"+ - "\3\u00a5\5\u00a5\u06ef\n\u00a5\3\u00a5\3\u00a5\3\u00a6\3\u00a6\5\u00a6"+ - "\u06f5\n\u00a6\3\u00a6\3\u00a6\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a8"+ - "\3\u00a8\3\u00a8\3\u00a8\3\u00a8\3\u00a8\3\u00a9\3\u00a9\3\u00a9\3\u00a9"+ - "\3\u00a9\3\u00a9\3\u00a9\5\u00a9\u070a\n\u00a9\3\u00a9\3\u00a9\3\u00a9"+ - "\5\u00a9\u070f\n\u00a9\3\u00aa\3\u00aa\7\u00aa\u0713\n\u00aa\f\u00aa\16"+ - "\u00aa\u0716\13\u00aa\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab"+ - "\3\u00ac\7\u00ac\u071f\n\u00ac\f\u00ac\16\u00ac\u0722\13\u00ac\3\u00ac"+ - "\3\u00ac\3\u00ac\3\u00ad\3\u00ad\3\u00ad\7\u00ad\u072a\n\u00ad\f\u00ad"+ - "\16\u00ad\u072d\13\u00ad\3\u00ae\3\u00ae\3\u00ae\3\u00af\3\u00af\3\u00af"+ - "\3\u00af\5\u00af\u0736\n\u00af\3\u00af\5\u00af\u0739\n\u00af\3\u00b0\3"+ - "\u00b0\3\u00b0\5\u00b0\u073e\n\u00b0\3\u00b0\3\u00b0\3\u00b1\3\u00b1\3"+ - "\u00b1\7\u00b1\u0745\n\u00b1\f\u00b1\16\u00b1\u0748\13\u00b1\3\u00b2\7"+ - "\u00b2\u074b\n\u00b2\f\u00b2\16\u00b2\u074e\13\u00b2\3\u00b2\3\u00b2\3"+ - "\u00b2\3\u00b2\3\u00b2\3\u00b3\3\u00b3\5\u00b3\u0757\n\u00b3\3\u00b3\7"+ - "\u00b3\u075a\n\u00b3\f\u00b3\16\u00b3\u075d\13\u00b3\3\u00b4\3\u00b4\3"+ - "\u00b4\3\u00b4\7\u00b4\u0763\n\u00b4\f\u00b4\16\u00b4\u0766\13\u00b4\3"+ - "\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4"+ - "\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4"+ - "\3\u00b4\3\u00b4\5\u00b4\u077c\n\u00b4\3\u00b5\3\u00b5\3\u00b6\3\u00b6"+ - "\3\u00b6\3\u00b6\7\u00b6\u0784\n\u00b6\f\u00b6\16\u00b6\u0787\13\u00b6"+ - "\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6"+ - "\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6"+ - "\3\u00b6\5\u00b6\u079c\n\u00b6\3\u00b7\3\u00b7\3\u00b7\3\u00b7\3\u00b7"+ - "\5\u00b7\u07a3\n\u00b7\3\u00b8\3\u00b8\3\u00b9\3\u00b9\3\u00b9\3\u00b9"+ - "\5\u00b9\u07ab\n\u00b9\3\u00ba\3\u00ba\3\u00ba\3\u00ba\7\u00ba\u07b1\n"+ - "\u00ba\f\u00ba\16\u00ba\u07b4\13\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba"+ - "\3\u00ba\3\u00ba\7\u00ba\u07bc\n\u00ba\f\u00ba\16\u00ba\u07bf\13\u00ba"+ - "\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba"+ - "\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba"+ - "\3\u00ba\3\u00ba\5\u00ba\u07d5\n\u00ba\3\u00bb\3\u00bb\3\u00bc\3\u00bc"+ - "\3\u00bc\3\u00bc\7\u00bc\u07dd\n\u00bc\f\u00bc\16\u00bc\u07e0\13\u00bc"+ - "\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\7\u00bc\u07e8\n\u00bc"+ - "\f\u00bc\16\u00bc\u07eb\13\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc"+ - "\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc"+ - "\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\5\u00bc\u0800\n\u00bc\3\u00bd"+ - "\3\u00bd\5\u00bd\u0804\n\u00bd\3\u00bd\7\u00bd\u0807\n\u00bd\f\u00bd\16"+ - "\u00bd\u080a\13\u00bd\3\u00bd\3\u00bd\3\u00bd\7\u00bd\u080f\n\u00bd\f"+ - "\u00bd\16\u00bd\u0812\13\u00bd\3\u00bd\7\u00bd\u0815\n\u00bd\f\u00bd\16"+ - "\u00bd\u0818\13\u00bd\3\u00bd\5\u00bd\u081b\n\u00bd\3\u00bd\3\u00bd\5"+ - "\u00bd\u081f\n\u00bd\3\u00bd\3\u00bd\5\u00bd\u0823\n\u00bd\3\u00bd\3\u00bd"+ - "\3\u00bd\3\u00bd\5\u00bd\u0829\n\u00bd\3\u00bd\7\u00bd\u082c\n\u00bd\f"+ - "\u00bd\16\u00bd\u082f\13\u00bd\3\u00bd\3\u00bd\5\u00bd\u0833\n\u00bd\3"+ - "\u00bd\3\u00bd\5\u00bd\u0837\n\u00bd\3\u00bd\3\u00bd\5\u00bd\u083b\n\u00bd"+ - "\3\u00bd\3\u00bd\3\u00bd\3\u00bd\5\u00bd\u0841\n\u00bd\3\u00bd\7\u00bd"+ - "\u0844\n\u00bd\f\u00bd\16\u00bd\u0847\13\u00bd\3\u00bd\3\u00bd\5\u00bd"+ - "\u084b\n\u00bd\3\u00bd\3\u00bd\5\u00bd\u084f\n\u00bd\3\u00bd\3\u00bd\5"+ - "\u00bd\u0853\n\u00bd\5\u00bd\u0855\n\u00bd\3\u00be\3\u00be\3\u00be\5\u00be"+ - "\u085a\n\u00be\3\u00be\7\u00be\u085d\n\u00be\f\u00be\16\u00be\u0860\13"+ - "\u00be\3\u00be\3\u00be\5\u00be\u0864\n\u00be\3\u00be\3\u00be\5\u00be\u0868"+ - "\n\u00be\3\u00be\3\u00be\5\u00be\u086c\n\u00be\3\u00bf\3\u00bf\5\u00bf"+ - "\u0870\n\u00bf\3\u00bf\7\u00bf\u0873\n\u00bf\f\u00bf\16\u00bf\u0876\13"+ - "\u00bf\3\u00bf\3\u00bf\3\u00bf\7\u00bf\u087b\n\u00bf\f\u00bf\16\u00bf"+ - "\u087e\13\u00bf\3\u00bf\7\u00bf\u0881\n\u00bf\f\u00bf\16\u00bf\u0884\13"+ - "\u00bf\3\u00bf\5\u00bf\u0887\n\u00bf\3\u00bf\3\u00bf\5\u00bf\u088b\n\u00bf"+ - "\3\u00bf\3\u00bf\5\u00bf\u088f\n\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf"+ - "\5\u00bf\u0895\n\u00bf\3\u00bf\7\u00bf\u0898\n\u00bf\f\u00bf\16\u00bf"+ - "\u089b\13\u00bf\3\u00bf\3\u00bf\5\u00bf\u089f\n\u00bf\3\u00bf\3\u00bf"+ - "\5\u00bf\u08a3\n\u00bf\3\u00bf\3\u00bf\5\u00bf\u08a7\n\u00bf\5\u00bf\u08a9"+ - "\n\u00bf\3\u00c0\3\u00c0\3\u00c0\5\u00c0\u08ae\n\u00c0\3\u00c1\3\u00c1"+ - "\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1"+ - "\3\u00c1\3\u00c1\5\u00c1\u08bd\n\u00c1\3\u00c2\3\u00c2\3\u00c2\3\u00c3"+ - "\3\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3\5\u00c3"+ - "\u08cb\n\u00c3\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4"+ - "\3\u00c4\3\u00c4\3\u00c4\5\u00c4\u08d7\n\u00c4\3\u00c4\3\u00c4\3\u00c4"+ - "\3\u00c4\3\u00c4\7\u00c4\u08de\n\u00c4\f\u00c4\16\u00c4\u08e1\13\u00c4"+ - "\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5"+ - "\3\u00c5\7\u00c5\u08ed\n\u00c5\f\u00c5\16\u00c5\u08f0\13\u00c5\3\u00c6"+ - "\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6"+ - "\5\u00c6\u08fc\n\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\7\u00c6"+ - "\u0903\n\u00c6\f\u00c6\16\u00c6\u0906\13\u00c6\3\u00c7\3\u00c7\3\u00c7"+ - "\5\u00c7\u090b\n\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7\5\u00c7"+ - "\u0912\n\u00c7\3\u00c7\3\u00c7\3\u00c7\5\u00c7\u0917\n\u00c7\3\u00c7\3"+ - "\u00c7\3\u00c7\3\u00c7\3\u00c7\5\u00c7\u091e\n\u00c7\3\u00c7\3\u00c7\3"+ - "\u00c7\5\u00c7\u0923\n\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7\5"+ - "\u00c7\u092a\n\u00c7\3\u00c7\3\u00c7\3\u00c7\5\u00c7\u092f\n\u00c7\3\u00c7"+ - "\3\u00c7\3\u00c7\3\u00c7\3\u00c7\5\u00c7\u0936\n\u00c7\3\u00c7\3\u00c7"+ - "\3\u00c7\5\u00c7\u093b\n\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7"+ - "\3\u00c7\5\u00c7\u0943\n\u00c7\3\u00c7\3\u00c7\3\u00c7\5\u00c7\u0948\n"+ - "\u00c7\3\u00c7\3\u00c7\5\u00c7\u094c\n\u00c7\3\u00c8\3\u00c8\5\u00c8\u0950"+ - "\n\u00c8\3\u00c8\3\u00c8\3\u00c8\5\u00c8\u0955\n\u00c8\3\u00c8\3\u00c8"+ - "\3\u00c9\3\u00c9\3\u00c9\5\u00c9\u095c\n\u00c9\3\u00c9\3\u00c9\3\u00c9"+ - "\3\u00c9\3\u00c9\5\u00c9\u0963\n\u00c9\3\u00c9\3\u00c9\3\u00c9\5\u00c9"+ - "\u0968\n\u00c9\3\u00c9\3\u00c9\3\u00c9\3\u00c9\3\u00c9\5\u00c9\u096f\n"+ - "\u00c9\3\u00c9\3\u00c9\3\u00c9\5\u00c9\u0974\n\u00c9\3\u00c9\3\u00c9\3"+ - "\u00c9\3\u00c9\3\u00c9\5\u00c9\u097b\n\u00c9\3\u00c9\3\u00c9\3\u00c9\5"+ - "\u00c9\u0980\n\u00c9\3\u00c9\3\u00c9\3\u00c9\3\u00c9\3\u00c9\3\u00c9\5"+ - "\u00c9\u0988\n\u00c9\3\u00c9\3\u00c9\3\u00c9\5\u00c9\u098d\n\u00c9\3\u00c9"+ - "\3\u00c9\5\u00c9\u0991\n\u00c9\3\u00ca\3\u00ca\3\u00ca\7\u00ca\u0996\n"+ - "\u00ca\f\u00ca\16\u00ca\u0999\13\u00ca\3\u00cb\3\u00cb\3\u00cb\5\u00cb"+ - "\u099e\n\u00cb\3\u00cb\3\u00cb\3\u00cb\3\u00cb\3\u00cb\5\u00cb\u09a5\n"+ - "\u00cb\3\u00cb\3\u00cb\3\u00cb\3\u00cb\3\u00cb\5\u00cb\u09ac\n\u00cb\3"+ - "\u00cb\3\u00cb\3\u00cb\3\u00cb\3\u00cb\5\u00cb\u09b3\n\u00cb\3\u00cb\3"+ - "\u00cb\3\u00cb\3\u00cb\3\u00cb\3\u00cb\5\u00cb\u09bb\n\u00cb\3\u00cb\3"+ - "\u00cb\3\u00cb\3\u00cb\3\u00cb\5\u00cb\u09c2\n\u00cb\3\u00cb\3\u00cb\3"+ - "\u00cb\3\u00cb\3\u00cb\3\u00cb\5\u00cb\u09ca\n\u00cb\3\u00cc\3\u00cc\5"+ - "\u00cc\u09ce\n\u00cc\3\u00cc\3\u00cc\3\u00cd\3\u00cd\3\u00cd\5\u00cd\u09d5"+ - "\n\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00cd\5\u00cd\u09dc\n\u00cd"+ - "\3\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00cd\5\u00cd\u09e3\n\u00cd\3\u00cd"+ - "\3\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00cd\5\u00cd\u09eb\n\u00cd\3\u00cd"+ - "\3\u00cd\3\u00cd\3\u00cd\3\u00cd\5\u00cd\u09f2\n\u00cd\3\u00cd\3\u00cd"+ - "\3\u00cd\3\u00cd\3\u00cd\3\u00cd\5\u00cd\u09fa\n\u00cd\3\u00ce\3\u00ce"+ - "\3\u00ce\3\u00ce\5\u00ce\u0a00\n\u00ce\3\u00ce\3\u00ce\3\u00ce\3\u00ce"+ - "\5\u00ce\u0a06\n\u00ce\3\u00ce\3\u00ce\3\u00ce\3\u00ce\3\u00ce\3\u00ce"+ - "\3\u00ce\3\u00ce\3\u00ce\3\u00ce\5\u00ce\u0a12\n\u00ce\3\u00cf\3\u00cf"+ - "\7\u00cf\u0a16\n\u00cf\f\u00cf\16\u00cf\u0a19\13\u00cf\3\u00d0\7\u00d0"+ - "\u0a1c\n\u00d0\f\u00d0\16\u00d0\u0a1f\13\u00d0\3\u00d0\3\u00d0\3\u00d0"+ - "\3\u00d0\3\u00d1\3\u00d1\3\u00d2\3\u00d2\5\u00d2\u0a29\n\u00d2\3\u00d3"+ - "\3\u00d3\3\u00d3\3\u00d3\3\u00d4\3\u00d4\3\u00d4\5\u00d4\u0a32\n\u00d4"+ - "\3\u00d4\5\u00d4\u0a35\n\u00d4\3\u00d5\3\u00d5\3\u00d5\7\u00d5\u0a3a\n"+ - "\u00d5\f\u00d5\16\u00d5\u0a3d\13\u00d5\3\u00d6\3\u00d6\5\u00d6\u0a41\n"+ - "\u00d6\3\u00d7\3\u00d7\5\u00d7\u0a45\n\u00d7\3\u00d8\3\u00d8\3\u00d8\3"+ - "\u00d8\3\u00d9\3\u00d9\3\u00d9\5\u00d9\u0a4e\n\u00d9\3\u00da\3\u00da\3"+ - "\u00db\3\u00db\3\u00db\3\u00db\3\u00db\3\u00db\3\u00db\5\u00db\u0a59\n"+ - "\u00db\3\u00dc\3\u00dc\3\u00dc\3\u00dc\3\u00dc\3\u00dc\7\u00dc\u0a61\n"+ - "\u00dc\f\u00dc\16\u00dc\u0a64\13\u00dc\3\u00dd\3\u00dd\3\u00dd\3\u00dd"+ - "\3\u00dd\3\u00dd\7\u00dd\u0a6c\n\u00dd\f\u00dd\16\u00dd\u0a6f\13\u00dd"+ - "\3\u00de\3\u00de\3\u00de\3\u00de\3\u00de\3\u00de\7\u00de\u0a77\n\u00de"+ - "\f\u00de\16\u00de\u0a7a\13\u00de\3\u00df\3\u00df\3\u00df\3\u00df\3\u00df"+ - "\3\u00df\7\u00df\u0a82\n\u00df\f\u00df\16\u00df\u0a85\13\u00df\3\u00e0"+ - "\3\u00e0\3\u00e0\3\u00e0\3\u00e0\3\u00e0\7\u00e0\u0a8d\n\u00e0\f\u00e0"+ - "\16\u00e0\u0a90\13\u00e0\3\u00e1\3\u00e1\3\u00e1\3\u00e1\3\u00e1\3\u00e1"+ - "\3\u00e1\3\u00e1\3\u00e1\7\u00e1\u0a9b\n\u00e1\f\u00e1\16\u00e1\u0a9e"+ - "\13\u00e1\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2"+ - "\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2"+ - "\3\u00e2\7\u00e2\u0ab2\n\u00e2\f\u00e2\16\u00e2\u0ab5\13\u00e2\3\u00e3"+ - "\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3"+ - "\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\7\u00e3\u0ac7\n\u00e3"+ - "\f\u00e3\16\u00e3\u0aca\13\u00e3\3\u00e4\3\u00e4\3\u00e4\3\u00e4\3\u00e4"+ - "\3\u00e4\3\u00e4\3\u00e4\3\u00e4\7\u00e4\u0ad5\n\u00e4\f\u00e4\16\u00e4"+ - "\u0ad8\13\u00e4\3\u00e5\3\u00e5\3\u00e5\3\u00e5\3\u00e5\3\u00e5\3\u00e5"+ - "\3\u00e5\3\u00e5\3\u00e5\3\u00e5\3\u00e5\7\u00e5\u0ae6\n\u00e5\f\u00e5"+ - "\16\u00e5\u0ae9\13\u00e5\3\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6"+ - "\3\u00e6\5\u00e6\u0af2\n\u00e6\3\u00e7\3\u00e7\3\u00e7\3\u00e8\3\u00e8"+ - "\3\u00e8\3\u00e9\3\u00e9\3\u00e9\3\u00e9\3\u00e9\3\u00e9\5\u00e9\u0b00"+ - "\n\u00e9\3\u00ea\3\u00ea\5\u00ea\u0b04\n\u00ea\3\u00ea\3\u00ea\7\u00ea"+ - "\u0b08\n\u00ea\f\u00ea\16\u00ea\u0b0b\13\u00ea\3\u00eb\3\u00eb\3\u00eb"+ - "\3\u00ec\3\u00ec\3\u00ed\3\u00ed\3\u00ed\3\u00ee\3\u00ee\3\u00ef\3\u00ef"+ - "\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef\7\u00ef\u0b1f\n\u00ef"+ - "\f\u00ef\16\u00ef\u0b22\13\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef"+ - "\3\u00ef\7\u00ef\u0b2a\n\u00ef\f\u00ef\16\u00ef\u0b2d\13\u00ef\3\u00ef"+ - "\3\u00ef\3\u00ef\5\u00ef\u0b32\n\u00ef\3\u00ef\2\17\66:@\u01b6\u01b8\u01ba"+ - "\u01bc\u01be\u01c0\u01c2\u01c4\u01c6\u01c8\u00f0\2\4\6\b\n\f\16\20\22"+ - "\24\26\30\32\34\36 \"$&(*,.\60\62\64\668:<>@BDFHJLNPRTVXZ\\^`bdfhjlnp"+ - "rtvxz|~\u0080\u0082\u0084\u0086\u0088\u008a\u008c\u008e\u0090\u0092\u0094"+ - "\u0096\u0098\u009a\u009c\u009e\u00a0\u00a2\u00a4\u00a6\u00a8\u00aa\u00ac"+ - "\u00ae\u00b0\u00b2\u00b4\u00b6\u00b8\u00ba\u00bc\u00be\u00c0\u00c2\u00c4"+ - "\u00c6\u00c8\u00ca\u00cc\u00ce\u00d0\u00d2\u00d4\u00d6\u00d8\u00da\u00dc"+ - "\u00de\u00e0\u00e2\u00e4\u00e6\u00e8\u00ea\u00ec\u00ee\u00f0\u00f2\u00f4"+ - "\u00f6\u00f8\u00fa\u00fc\u00fe\u0100\u0102\u0104\u0106\u0108\u010a\u010c"+ - "\u010e\u0110\u0112\u0114\u0116\u0118\u011a\u011c\u011e\u0120\u0122\u0124"+ - "\u0126\u0128\u012a\u012c\u012e\u0130\u0132\u0134\u0136\u0138\u013a\u013c"+ - "\u013e\u0140\u0142\u0144\u0146\u0148\u014a\u014c\u014e\u0150\u0152\u0154"+ - "\u0156\u0158\u015a\u015c\u015e\u0160\u0162\u0164\u0166\u0168\u016a\u016c"+ - "\u016e\u0170\u0172\u0174\u0176\u0178\u017a\u017c\u017e\u0180\u0182\u0184"+ - "\u0186\u0188\u018a\u018c\u018e\u0190\u0192\u0194\u0196\u0198\u019a\u019c"+ - "\u019e\u01a0\u01a2\u01a4\u01a6\u01a8\u01aa\u01ac\u01ae\u01b0\u01b2\u01b4"+ - "\u01b6\u01b8\u01ba\u01bc\u01be\u01c0\u01c2\u01c4\u01c6\u01c8\u01ca\u01cc"+ - "\u01ce\u01d0\u01d2\u01d4\u01d6\u01d8\u01da\u01dc\2\6\3\2\66;\7\2\b\b\13"+ - "\13\36\36 ((\4\2\21\21\27\27\4\2EE^h\2\u0c26\2\u01de\3\2\2\2\4\u01e2"+ - "\3\2\2\2\6\u01f2\3\2\2\2\b\u01f6\3\2\2\2\n\u01f8\3\2\2\2\f\u01fa\3\2\2"+ - "\2\16\u01ff\3\2\2\2\20\u0203\3\2\2\2\22\u0221\3\2\2\2\24\u0223\3\2\2\2"+ - "\26\u0231\3\2\2\2\30\u0238\3\2\2\2\32\u023a\3\2\2\2\34\u023c\3\2\2\2\36"+ - "\u0241\3\2\2\2 \u024f\3\2\2\2\"\u0254\3\2\2\2$\u0269\3\2\2\2&\u0270\3"+ - "\2\2\2(\u027c\3\2\2\2*\u027e\3\2\2\2,\u0281\3\2\2\2.\u0285\3\2\2\2\60"+ - "\u028f\3\2\2\2\62\u0294\3\2\2\2\64\u029f\3\2\2\2\66\u02a1\3\2\2\28\u02b1"+ - "\3\2\2\2:\u02b3\3\2\2\2<\u02c3\3\2\2\2>\u02c5\3\2\2\2@\u02c7\3\2\2\2B"+ - "\u02d3\3\2\2\2D\u02e6\3\2\2\2F\u02f4\3\2\2\2H\u02fa\3\2\2\2J\u02fc\3\2"+ - "\2\2L\u0300\3\2\2\2N\u0306\3\2\2\2P\u030d\3\2\2\2R\u0317\3\2\2\2T\u031b"+ - "\3\2\2\2V\u0320\3\2\2\2X\u0338\3\2\2\2Z\u033a\3\2\2\2\\\u033e\3\2\2\2"+ - "^\u0346\3\2\2\2`\u0349\3\2\2\2b\u034c\3\2\2\2d\u0354\3\2\2\2f\u0360\3"+ - "\2\2\2h\u0367\3\2\2\2j\u036c\3\2\2\2l\u037d\3\2\2\2n\u037f\3\2\2\2p\u0387"+ - "\3\2\2\2r\u038c\3\2\2\2t\u0392\3\2\2\2v\u0396\3\2\2\2x\u039a\3\2\2\2z"+ - "\u039f\3\2\2\2|\u03a3\3\2\2\2~\u03bc\3\2\2\2\u0080\u03be\3\2\2\2\u0082"+ - "\u03c9\3\2\2\2\u0084\u03cd\3\2\2\2\u0086\u03cf\3\2\2\2\u0088\u03d1\3\2"+ - "\2\2\u008a\u03d3\3\2\2\2\u008c\u03de\3\2\2\2\u008e\u03e3\3\2\2\2\u0090"+ - "\u03f3\3\2\2\2\u0092\u040a\3\2\2\2\u0094\u040e\3\2\2\2\u0096\u0410\3\2"+ - "\2\2\u0098\u041e\3\2\2\2\u009a\u0430\3\2\2\2\u009c\u0435\3\2\2\2\u009e"+ - "\u043f\3\2\2\2\u00a0\u0452\3\2\2\2\u00a2\u0457\3\2\2\2\u00a4\u0461\3\2"+ - "\2\2\u00a6\u0464\3\2\2\2\u00a8\u046e\3\2\2\2\u00aa\u0472\3\2\2\2\u00ac"+ - "\u0474\3\2\2\2\u00ae\u0476\3\2\2\2\u00b0\u047c\3\2\2\2\u00b2\u0489\3\2"+ - "\2\2\u00b4\u048c\3\2\2\2\u00b6\u0495\3\2\2\2\u00b8\u0497\3\2\2\2\u00ba"+ - "\u04ce\3\2\2\2\u00bc\u04d3\3\2\2\2\u00be\u04dd\3\2\2\2\u00c0\u04e9\3\2"+ - "\2\2\u00c2\u04f4\3\2\2\2\u00c4\u0502\3\2\2\2\u00c6\u0504\3\2\2\2\u00c8"+ - "\u050d\3\2\2\2\u00ca\u0512\3\2\2\2\u00cc\u0526\3\2\2\2\u00ce\u0528\3\2"+ - "\2\2\u00d0\u052b\3\2\2\2\u00d2\u0539\3\2\2\2\u00d4\u053e\3\2\2\2\u00d6"+ - "\u0549\3\2\2\2\u00d8\u054e\3\2\2\2\u00da\u055a\3\2\2\2\u00dc\u055f\3\2"+ - "\2\2\u00de\u0567\3\2\2\2\u00e0\u0575\3\2\2\2\u00e2\u057a\3\2\2\2\u00e4"+ - "\u058c\3\2\2\2\u00e6\u058e\3\2\2\2\u00e8\u0594\3\2\2\2\u00ea\u0596\3\2"+ - "\2\2\u00ec\u059e\3\2\2\2\u00ee\u05a6\3\2\2\2\u00f0\u05ad\3\2\2\2\u00f2"+ - "\u05af\3\2\2\2\u00f4\u05b8\3\2\2\2\u00f6\u05c0\3\2\2\2\u00f8\u05c3\3\2"+ - "\2\2\u00fa\u05c9\3\2\2\2\u00fc\u05d2\3\2\2\2\u00fe\u05da\3\2\2\2\u0100"+ - "\u05e0\3\2\2\2\u0102\u05ea\3\2\2\2\u0104\u05ec\3\2\2\2\u0106\u05f1\3\2"+ - "\2\2\u0108\u05f6\3\2\2\2\u010a\u0602\3\2\2\2\u010c\u0609\3\2\2\2\u010e"+ - "\u0617\3\2\2\2\u0110\u0619\3\2\2\2\u0112\u061b\3\2\2\2\u0114\u061f\3\2"+ - "\2\2\u0116\u0623\3\2\2\2\u0118\u062d\3\2\2\2\u011a\u062f\3\2\2\2\u011c"+ - "\u0635\3\2\2\2\u011e\u063d\3\2\2\2\u0120\u064f\3\2\2\2\u0122\u0651\3\2"+ - "\2\2\u0124\u0657\3\2\2\2\u0126\u0666\3\2\2\2\u0128\u0669\3\2\2\2\u012a"+ - "\u067a\3\2\2\2\u012c\u067c\3\2\2\2\u012e\u067e\3\2\2\2\u0130\u0684\3\2"+ - "\2\2\u0132\u068a\3\2\2\2\u0134\u0694\3\2\2\2\u0136\u0698\3\2\2\2\u0138"+ - "\u069a\3\2\2\2\u013a\u06aa\3\2\2\2\u013c\u06bc\3\2\2\2\u013e\u06be\3\2"+ - "\2\2\u0140\u06c0\3\2\2\2\u0142\u06c8\3\2\2\2\u0144\u06d7\3\2\2\2\u0146"+ - "\u06e6\3\2\2\2\u0148\u06ec\3\2\2\2\u014a\u06f2\3\2\2\2\u014c\u06f8\3\2"+ - "\2\2\u014e\u06fc\3\2\2\2\u0150\u070e\3\2\2\2\u0152\u0710\3\2\2\2\u0154"+ - "\u0717\3\2\2\2\u0156\u0720\3\2\2\2\u0158\u0726\3\2\2\2\u015a\u072e\3\2"+ - "\2\2\u015c\u0731\3\2\2\2\u015e\u073a\3\2\2\2\u0160\u0741\3\2\2\2\u0162"+ - "\u074c\3\2\2\2\u0164\u0756\3\2\2\2\u0166\u077b\3\2\2\2\u0168\u077d\3\2"+ - "\2\2\u016a\u079b\3\2\2\2\u016c\u07a2\3\2\2\2\u016e\u07a4\3\2\2\2\u0170"+ - "\u07aa\3\2\2\2\u0172\u07d4\3\2\2\2\u0174\u07d6\3\2\2\2\u0176\u07ff\3\2"+ - "\2\2\u0178\u0854\3\2\2\2\u017a\u0856\3\2\2\2\u017c\u08a8\3\2\2\2\u017e"+ - "\u08ad\3\2\2\2\u0180\u08bc\3\2\2\2\u0182\u08be\3\2\2\2\u0184\u08ca\3\2"+ - "\2\2\u0186\u08d6\3\2\2\2\u0188\u08e2\3\2\2\2\u018a\u08fb\3\2\2\2\u018c"+ - "\u094b\3\2\2\2\u018e\u094d\3\2\2\2\u0190\u0990\3\2\2\2\u0192\u0992\3\2"+ - "\2\2\u0194\u09c9\3\2\2\2\u0196\u09cb\3\2\2\2\u0198\u09f9\3\2\2\2\u019a"+ - "\u0a11\3\2\2\2\u019c\u0a13\3\2\2\2\u019e\u0a1d\3\2\2\2\u01a0\u0a24\3\2"+ - "\2\2\u01a2\u0a28\3\2\2\2\u01a4\u0a2a\3\2\2\2\u01a6\u0a34\3\2\2\2\u01a8"+ - "\u0a36\3\2\2\2\u01aa\u0a40\3\2\2\2\u01ac\u0a44\3\2\2\2\u01ae\u0a46\3\2"+ - "\2\2\u01b0\u0a4d\3\2\2\2\u01b2\u0a4f\3\2\2\2\u01b4\u0a58\3\2\2\2\u01b6"+ - "\u0a5a\3\2\2\2\u01b8\u0a65\3\2\2\2\u01ba\u0a70\3\2\2\2\u01bc\u0a7b\3\2"+ - "\2\2\u01be\u0a86\3\2\2\2\u01c0\u0a91\3\2\2\2\u01c2\u0a9f\3\2\2\2\u01c4"+ - "\u0ab6\3\2\2\2\u01c6\u0acb\3\2\2\2\u01c8\u0ad9\3\2\2\2\u01ca\u0af1\3\2"+ - "\2\2\u01cc\u0af3\3\2\2\2\u01ce\u0af6\3\2\2\2\u01d0\u0aff\3\2\2\2\u01d2"+ - "\u0b03\3\2\2\2\u01d4\u0b0c\3\2\2\2\u01d6\u0b0f\3\2\2\2\u01d8\u0b11\3\2"+ - "\2\2\u01da\u0b14\3\2\2\2\u01dc\u0b31\3\2\2\2\u01de\u01df\t\2\2\2\u01df"+ - "\3\3\2\2\2\u01e0\u01e3\5\6\4\2\u01e1\u01e3\5\16\b\2\u01e2\u01e0\3\2\2"+ - "\2\u01e2\u01e1\3\2\2\2\u01e3\5\3\2\2\2\u01e4\u01e6\5\u00e8u\2\u01e5\u01e4"+ - "\3\2\2\2\u01e6\u01e9\3\2\2\2\u01e7\u01e5\3\2\2\2\u01e7\u01e8\3\2\2\2\u01e8"+ - "\u01ea\3\2\2\2\u01e9\u01e7\3\2\2\2\u01ea\u01f3\5\b\5\2\u01eb\u01ed\5\u00e8"+ - "u\2\u01ec\u01eb\3\2\2\2\u01ed\u01f0\3\2\2\2\u01ee\u01ec\3\2\2\2\u01ee"+ - "\u01ef\3\2\2\2\u01ef\u01f1\3\2\2\2\u01f0\u01ee\3\2\2\2\u01f1\u01f3\7\6"+ - "\2\2\u01f2\u01e7\3\2\2\2\u01f2\u01ee\3\2\2\2\u01f3\7\3\2\2\2\u01f4\u01f7"+ - "\5\n\6\2\u01f5\u01f7\5\f\7\2\u01f6\u01f4\3\2\2\2\u01f6\u01f5\3\2\2\2\u01f7"+ - "\t\3\2\2\2\u01f8\u01f9\t\3\2\2\u01f9\13\3\2\2\2\u01fa\u01fb\t\4\2\2\u01fb"+ - "\r\3\2\2\2\u01fc\u0200\5\20\t\2\u01fd\u0200\5\36\20\2\u01fe\u0200\5 \21"+ - "\2\u01ff\u01fc\3\2\2\2\u01ff\u01fd\3\2\2\2\u01ff\u01fe\3\2\2\2\u0200\17"+ - "\3\2\2\2\u0201\u0204\5\26\f\2\u0202\u0204\5\34\17\2\u0203\u0201\3\2\2"+ - "\2\u0203\u0202\3\2\2\2\u0204\u0208\3\2\2\2\u0205\u0207\5\24\13\2\u0206"+ - "\u0205\3\2\2\2\u0207\u020a\3\2\2\2\u0208\u0206\3\2\2\2\u0208\u0209\3\2"+ - "\2\2\u0209\21\3\2\2\2\u020a\u0208\3\2\2\2\u020b\u020d\5\u00e8u\2\u020c"+ - "\u020b\3\2\2\2\u020d\u0210\3\2\2\2\u020e\u020c\3\2\2\2\u020e\u020f\3\2"+ - "\2\2\u020f\u0211\3\2\2\2\u0210\u020e\3\2\2\2\u0211\u0213\7i\2\2\u0212"+ - "\u0214\5,\27\2\u0213\u0212\3\2\2\2\u0213\u0214\3\2\2\2\u0214\u0222\3\2"+ - "\2\2\u0215\u0216\5\20\t\2\u0216\u021a\7D\2\2\u0217\u0219\5\u00e8u\2\u0218"+ - "\u0217\3\2\2\2\u0219\u021c\3\2\2\2\u021a\u0218\3\2\2\2\u021a\u021b\3\2"+ - "\2\2\u021b\u021d\3\2\2\2\u021c\u021a\3\2\2\2\u021d\u021f\7i\2\2\u021e"+ - "\u0220\5,\27\2\u021f\u021e\3\2\2\2\u021f\u0220\3\2\2\2\u0220\u0222\3\2"+ - "\2\2\u0221\u020e\3\2\2\2\u0221\u0215\3\2\2\2\u0222\23\3\2\2\2\u0223\u0227"+ - "\7D\2\2\u0224\u0226\5\u00e8u\2\u0225\u0224\3\2\2\2\u0226\u0229\3\2\2\2"+ - "\u0227\u0225\3\2\2\2\u0227\u0228\3\2\2\2\u0228\u022a\3\2\2\2\u0229\u0227"+ - "\3\2\2\2\u022a\u022c\7i\2\2\u022b\u022d\5,\27\2\u022c\u022b\3\2\2\2\u022c"+ - "\u022d\3\2\2\2\u022d\25\3\2\2\2\u022e\u0230\5\u00e8u\2\u022f\u022e\3\2"+ - "\2\2\u0230\u0233\3\2\2\2\u0231\u022f\3\2\2\2\u0231\u0232\3\2\2\2\u0232"+ - "\u0234\3\2\2\2\u0233\u0231\3\2\2\2\u0234\u0236\7i\2\2\u0235\u0237\5,\27"+ - "\2\u0236\u0235\3\2\2\2\u0236\u0237\3\2\2\2\u0237\27\3\2\2\2\u0238\u0239"+ - "\5\22\n\2\u0239\31\3\2\2\2\u023a\u023b\5\24\13\2\u023b\33\3\2\2\2\u023c"+ - "\u023d\5\26\f\2\u023d\35\3\2\2\2\u023e\u0240\5\u00e8u\2\u023f\u023e\3"+ - "\2\2\2\u0240\u0243\3\2\2\2\u0241\u023f\3\2\2\2\u0241\u0242\3\2\2\2\u0242"+ - "\u0244\3\2\2\2\u0243\u0241\3\2\2\2\u0244\u0245\7i\2\2\u0245\37\3\2\2\2"+ - "\u0246\u0247\5\6\4\2\u0247\u0248\5\"\22\2\u0248\u0250\3\2\2\2\u0249\u024a"+ - "\5\20\t\2\u024a\u024b\5\"\22\2\u024b\u0250\3\2\2\2\u024c\u024d\5\36\20"+ - "\2\u024d\u024e\5\"\22\2\u024e\u0250\3\2\2\2\u024f\u0246\3\2\2\2\u024f"+ - "\u0249\3\2\2\2\u024f\u024c\3\2\2\2\u0250!\3\2\2\2\u0251\u0253\5\u00e8"+ - "u\2\u0252\u0251\3\2\2\2\u0253\u0256\3\2\2\2\u0254\u0252\3\2\2\2\u0254"+ - "\u0255\3\2\2\2\u0255\u0257\3\2\2\2\u0256\u0254\3\2\2\2\u0257\u0258\7@"+ - "\2\2\u0258\u0263\7A\2\2\u0259\u025b\5\u00e8u\2\u025a\u0259\3\2\2\2\u025b"+ - "\u025e\3\2\2\2\u025c\u025a\3\2\2\2\u025c\u025d\3\2\2\2\u025d\u025f\3\2"+ - "\2\2\u025e\u025c\3\2\2\2\u025f\u0260\7@\2\2\u0260\u0262\7A\2\2\u0261\u025c"+ - "\3\2\2\2\u0262\u0265\3\2\2\2\u0263\u0261\3\2\2\2\u0263\u0264\3\2\2\2\u0264"+ - "#\3\2\2\2\u0265\u0263\3\2\2\2\u0266\u0268\5&\24\2\u0267\u0266\3\2\2\2"+ - "\u0268\u026b\3\2\2\2\u0269\u0267\3\2\2\2\u0269\u026a\3\2\2\2\u026a\u026c"+ - "\3\2\2\2\u026b\u0269\3\2\2\2\u026c\u026e\7i\2\2\u026d\u026f\5(\25\2\u026e"+ - "\u026d\3\2\2\2\u026e\u026f\3\2\2\2\u026f%\3\2\2\2\u0270\u0271\5\u00e8"+ - "u\2\u0271\'\3\2\2\2\u0272\u0273\7\24\2\2\u0273\u027d\5\36\20\2\u0274\u0275"+ - "\7\24\2\2\u0275\u0279\5\20\t\2\u0276\u0278\5*\26\2\u0277\u0276\3\2\2\2"+ - "\u0278\u027b\3\2\2\2\u0279\u0277\3\2\2\2\u0279\u027a\3\2\2\2\u027a\u027d"+ - "\3\2\2\2\u027b\u0279\3\2\2\2\u027c\u0272\3\2\2\2\u027c\u0274\3\2\2\2\u027d"+ - ")\3\2\2\2\u027e\u027f\7X\2\2\u027f\u0280\5\30\r\2\u0280+\3\2\2\2\u0281"+ - "\u0282\7G\2\2\u0282\u0283\5.\30\2\u0283\u0284\7F\2\2\u0284-\3\2\2\2\u0285"+ - "\u028a\5\60\31\2\u0286\u0287\7C\2\2\u0287\u0289\5\60\31\2\u0288\u0286"+ - "\3\2\2\2\u0289\u028c\3\2\2\2\u028a\u0288\3\2\2\2\u028a\u028b\3\2\2\2\u028b"+ - "/\3\2\2\2\u028c\u028a\3\2\2\2\u028d\u0290\5\16\b\2\u028e\u0290\5\62\32"+ - "\2\u028f\u028d\3\2\2\2\u028f\u028e\3\2\2\2\u0290\61\3\2\2\2\u0291\u0293"+ - "\5\u00e8u\2\u0292\u0291\3\2\2\2\u0293\u0296\3\2\2\2\u0294\u0292\3\2\2"+ - "\2\u0294\u0295\3\2\2\2\u0295\u0297\3\2\2\2\u0296\u0294\3\2\2\2\u0297\u0299"+ - "\7J\2\2\u0298\u029a\5\64\33\2\u0299\u0298\3\2\2\2\u0299\u029a\3\2\2\2"+ - "\u029a\63\3\2\2\2\u029b\u029c\7\24\2\2\u029c\u02a0\5\16\b\2\u029d\u029e"+ - "\7+\2\2\u029e\u02a0\5\16\b\2\u029f\u029b\3\2\2\2\u029f\u029d\3\2\2\2\u02a0"+ - "\65\3\2\2\2\u02a1\u02a2\b\34\1\2\u02a2\u02a3\7i\2\2\u02a3\u02a9\3\2\2"+ - "\2\u02a4\u02a5\f\3\2\2\u02a5\u02a6\7D\2\2\u02a6\u02a8\7i\2\2\u02a7\u02a4"+ - "\3\2\2\2\u02a8\u02ab\3\2\2\2\u02a9\u02a7\3\2\2\2\u02a9\u02aa\3\2\2\2\u02aa"+ - "\67\3\2\2\2\u02ab\u02a9\3\2\2\2\u02ac\u02b2\7i\2\2\u02ad\u02ae\5:\36\2"+ - "\u02ae\u02af\7D\2\2\u02af\u02b0\7i\2\2\u02b0\u02b2\3\2\2\2\u02b1\u02ac"+ - "\3\2\2\2\u02b1\u02ad\3\2\2\2\u02b29\3\2\2\2\u02b3\u02b4\b\36\1\2\u02b4"+ - "\u02b5\7i\2\2\u02b5\u02bb\3\2\2\2\u02b6\u02b7\f\3\2\2\u02b7\u02b8\7D\2"+ - "\2\u02b8\u02ba\7i\2\2\u02b9\u02b6\3\2\2\2\u02ba\u02bd\3\2\2\2\u02bb\u02b9"+ - "\3\2\2\2\u02bb\u02bc\3\2\2\2\u02bc;\3\2\2\2\u02bd\u02bb\3\2\2\2\u02be"+ - "\u02c4\7i\2\2\u02bf\u02c0\5@!\2\u02c0\u02c1\7D\2\2\u02c1\u02c2\7i\2\2"+ - "\u02c2\u02c4\3\2\2\2\u02c3\u02be\3\2\2\2\u02c3\u02bf\3\2\2\2\u02c4=\3"+ - "\2\2\2\u02c5\u02c6\7i\2\2\u02c6?\3\2\2\2\u02c7\u02c8\b!\1\2\u02c8\u02c9"+ - "\7i\2\2\u02c9\u02cf\3\2\2\2\u02ca\u02cb\f\3\2\2\u02cb\u02cc\7D\2\2\u02cc"+ - "\u02ce\7i\2\2\u02cd\u02ca\3\2\2\2\u02ce\u02d1\3\2\2\2\u02cf\u02cd\3\2"+ - "\2\2\u02cf\u02d0\3\2\2\2\u02d0A\3\2\2\2\u02d1\u02cf\3\2\2\2\u02d2\u02d4"+ - "\5D#\2\u02d3\u02d2\3\2\2\2\u02d3\u02d4\3\2\2\2\u02d4\u02d8\3\2\2\2\u02d5"+ - "\u02d7\5H%\2\u02d6\u02d5\3\2\2\2\u02d7\u02da\3\2\2\2\u02d8\u02d6\3\2\2"+ - "\2\u02d8\u02d9\3\2\2\2\u02d9\u02de\3\2\2\2\u02da\u02d8\3\2\2\2\u02db\u02dd"+ - "\5R*\2\u02dc\u02db\3\2\2\2\u02dd\u02e0\3\2\2\2\u02de\u02dc\3\2\2\2\u02de"+ - "\u02df\3\2\2\2\u02df\u02e1\3\2\2\2\u02e0\u02de\3\2\2\2\u02e1\u02e2\7\2"+ - "\2\3\u02e2C\3\2\2\2\u02e3\u02e5\5F$\2\u02e4\u02e3\3\2\2\2\u02e5\u02e8"+ - "\3\2\2\2\u02e6\u02e4\3\2\2\2\u02e6\u02e7\3\2\2\2\u02e7\u02e9\3\2\2\2\u02e8"+ - "\u02e6\3\2\2\2\u02e9\u02ea\7#\2\2\u02ea\u02ef\7i\2\2\u02eb\u02ec\7D\2"+ - "\2\u02ec\u02ee\7i\2\2\u02ed\u02eb\3\2\2\2\u02ee\u02f1\3\2\2\2\u02ef\u02ed"+ - "\3\2\2\2\u02ef\u02f0\3\2\2\2\u02f0\u02f2\3\2\2\2\u02f1\u02ef\3\2\2\2\u02f2"+ - "\u02f3\7B\2\2\u02f3E\3\2\2\2\u02f4\u02f5\5\u00e8u\2\u02f5G\3\2\2\2\u02f6"+ - "\u02fb\5J&\2\u02f7\u02fb\5L\'\2\u02f8\u02fb\5N(\2\u02f9\u02fb\5P)\2\u02fa"+ - "\u02f6\3\2\2\2\u02fa\u02f7\3\2\2\2\u02fa\u02f8\3\2\2\2\u02fa\u02f9\3\2"+ - "\2\2\u02fbI\3\2\2\2\u02fc\u02fd\7\34\2\2\u02fd\u02fe\58\35\2\u02fe\u02ff"+ - "\7B\2\2\u02ffK\3\2\2\2\u0300\u0301\7\34\2\2\u0301\u0302\5:\36\2\u0302"+ - "\u0303\7D\2\2\u0303\u0304\7V\2\2\u0304\u0305\7B\2\2\u0305M\3\2\2\2\u0306"+ - "\u0307\7\34\2\2\u0307\u0308\7)\2\2\u0308\u0309\58\35\2\u0309\u030a\7D"+ - "\2\2\u030a\u030b\7i\2\2\u030b\u030c\7B\2\2\u030cO\3\2\2\2\u030d\u030e"+ - "\7\34\2\2\u030e\u030f\7)\2\2\u030f\u0310\58\35\2\u0310\u0311\7D\2\2\u0311"+ - "\u0312\7V\2\2\u0312\u0313\7B\2\2\u0313Q\3\2\2\2\u0314\u0318\5T+\2\u0315"+ - "\u0318\5\u00c8e\2\u0316\u0318\7B\2\2\u0317\u0314\3\2\2\2\u0317\u0315\3"+ - "\2\2\2\u0317\u0316\3\2\2\2\u0318S\3\2\2\2\u0319\u031c\5V,\2\u031a\u031c"+ - "\5\u00bc_\2\u031b\u0319\3\2\2\2\u031b\u031a\3\2\2\2\u031cU\3\2\2\2\u031d"+ - "\u031f\5X-\2\u031e\u031d\3\2\2\2\u031f\u0322\3\2\2\2\u0320\u031e\3\2\2"+ - "\2\u0320\u0321\3\2\2\2\u0321\u0323\3\2\2\2\u0322\u0320\3\2\2\2\u0323\u0324"+ - "\7\f\2\2\u0324\u0326\7i\2\2\u0325\u0327\5Z.\2\u0326\u0325\3\2\2\2\u0326"+ - "\u0327\3\2\2\2\u0327\u0329\3\2\2\2\u0328\u032a\5^\60\2\u0329\u0328\3\2"+ - "\2\2\u0329\u032a\3\2\2\2\u032a\u032c\3\2\2\2\u032b\u032d\5`\61\2\u032c"+ - "\u032b\3\2\2\2\u032c\u032d\3\2\2\2\u032d\u032e\3\2\2\2\u032e\u032f\5d"+ - "\63\2\u032fW\3\2\2\2\u0330\u0339\5\u00e8u\2\u0331\u0339\7&\2\2\u0332\u0339"+ - "\7%\2\2\u0333\u0339\7$\2\2\u0334\u0339\7\4\2\2\u0335\u0339\7)\2\2\u0336"+ - "\u0339\7\25\2\2\u0337\u0339\7*\2\2\u0338\u0330\3\2\2\2\u0338\u0331\3\2"+ - "\2\2\u0338\u0332\3\2\2\2\u0338\u0333\3\2\2\2\u0338\u0334\3\2\2\2\u0338"+ - "\u0335\3\2\2\2\u0338\u0336\3\2\2\2\u0338\u0337\3\2\2\2\u0339Y\3\2\2\2"+ - "\u033a\u033b\7G\2\2\u033b\u033c\5\\/\2\u033c\u033d\7F\2\2\u033d[\3\2\2"+ - "\2\u033e\u0343\5$\23\2\u033f\u0340\7C\2\2\u0340\u0342\5$\23\2\u0341\u033f"+ - "\3\2\2\2\u0342\u0345\3\2\2\2\u0343\u0341\3\2\2\2\u0343\u0344\3\2\2\2\u0344"+ - "]\3\2\2\2\u0345\u0343\3\2\2\2\u0346\u0347\7\24\2\2\u0347\u0348\5\22\n"+ - "\2\u0348_\3\2\2\2\u0349\u034a\7\33\2\2\u034a\u034b\5b\62\2\u034ba\3\2"+ - "\2\2\u034c\u0351\5\30\r\2\u034d\u034e\7C\2\2\u034e\u0350\5\30\r\2\u034f"+ - "\u034d\3\2\2\2\u0350\u0353\3\2\2\2\u0351\u034f\3\2\2\2\u0351\u0352\3\2"+ - "\2\2\u0352c\3\2\2\2\u0353\u0351\3\2\2\2\u0354\u0358\7>\2\2\u0355\u0357"+ - "\5f\64\2\u0356\u0355\3\2\2\2\u0357\u035a\3\2\2\2\u0358\u0356\3\2\2\2\u0358"+ - "\u0359\3\2\2\2\u0359\u035b\3\2\2\2\u035a\u0358\3\2\2\2\u035b\u035c\7?"+ - "\2\2\u035ce\3\2\2\2\u035d\u0361\5h\65\2\u035e\u0361\5\u00acW\2\u035f\u0361"+ - "\5\u00aeX\2\u0360\u035d\3\2\2\2\u0360\u035e\3\2\2\2\u0360\u035f\3\2\2"+ - "\2\u0361g\3\2\2\2\u0362\u0368\5j\66\2\u0363\u0368\5\u008eH\2\u0364\u0368"+ - "\5T+\2\u0365\u0368\5\u00c8e\2\u0366\u0368\7B\2\2\u0367\u0362\3\2\2\2\u0367"+ - "\u0363\3\2\2\2\u0367\u0364\3\2\2\2\u0367\u0365\3\2\2\2\u0367\u0366\3\2"+ - "\2\2\u0368i\3\2\2\2\u0369\u036b\5l\67\2\u036a\u0369\3\2\2\2\u036b\u036e"+ - "\3\2\2\2\u036c\u036a\3\2\2\2\u036c\u036d\3\2\2\2\u036d\u0370\3\2\2\2\u036e"+ - "\u036c\3\2\2\2\u036f\u0371\5\u0106\u0084\2\u0370\u036f\3\2\2\2\u0370\u0371"+ - "\3\2\2\2\u0371\u0372\3\2\2\2\u0372\u0373\5n8\2\u0373\u0374\7B\2\2\u0374"+ - "k\3\2\2\2\u0375\u037e\5\u00e8u\2\u0376\u037e\7&\2\2\u0377\u037e\7%\2\2"+ - "\u0378\u037e\7$\2\2\u0379\u037e\7)\2\2\u037a\u037e\7\25\2\2\u037b\u037e"+ - "\7\61\2\2\u037c\u037e\7\64\2\2\u037d\u0375\3\2\2\2\u037d\u0376\3\2\2\2"+ - "\u037d\u0377\3\2\2\2\u037d\u0378\3\2\2\2\u037d\u0379\3\2\2\2\u037d\u037a"+ - "\3\2\2\2\u037d\u037b\3\2\2\2\u037d\u037c\3\2\2\2\u037em\3\2\2\2\u037f"+ - "\u0384\5p9\2\u0380\u0381\7C\2\2\u0381\u0383\5p9\2\u0382\u0380\3\2\2\2"+ - "\u0383\u0386\3\2\2\2\u0384\u0382\3\2\2\2\u0384\u0385\3\2\2\2\u0385o\3"+ - "\2\2\2\u0386\u0384\3\2\2\2\u0387\u038a\5r:\2\u0388\u0389\7E\2\2\u0389"+ - "\u038b\5t;\2\u038a\u0388\3\2\2\2\u038a\u038b\3\2\2\2\u038bq\3\2\2\2\u038c"+ - "\u038e\7i\2\2\u038d\u038f\5\"\22\2\u038e\u038d\3\2\2\2\u038e\u038f\3\2"+ - "\2\2\u038fs\3\2\2\2\u0390\u0393\5\u01a2\u00d2\2\u0391\u0393\5\u00fa~\2"+ - "\u0392\u0390\3\2\2\2\u0392\u0391\3\2\2\2\u0393u\3\2\2\2\u0394\u0397\5"+ - "x=\2\u0395\u0397\5z>\2\u0396\u0394\3\2\2\2\u0396\u0395\3\2\2\2\u0397w"+ - "\3\2\2\2\u0398\u039b\5\b\5\2\u0399\u039b\7\6\2\2\u039a\u0398\3\2\2\2\u039a"+ - "\u0399\3\2\2\2\u039by\3\2\2\2\u039c\u03a0\5|?\2\u039d\u03a0\5\u008aF\2"+ - "\u039e\u03a0\5\u008cG\2\u039f\u039c\3\2\2\2\u039f\u039d\3\2\2\2\u039f"+ - "\u039e\3\2\2\2\u03a0{\3\2\2\2\u03a1\u03a4\5\u0082B\2\u03a2\u03a4\5\u0088"+ - "E\2\u03a3\u03a1\3\2\2\2\u03a3\u03a2\3\2\2\2\u03a4\u03a9\3\2\2\2\u03a5"+ - "\u03a8\5\u0080A\2\u03a6\u03a8\5\u0086D\2\u03a7\u03a5\3\2\2\2\u03a7\u03a6"+ - "\3\2\2\2\u03a8\u03ab\3\2\2\2\u03a9\u03a7\3\2\2\2\u03a9\u03aa\3\2\2\2\u03aa"+ - "}\3\2\2\2\u03ab\u03a9\3\2\2\2\u03ac\u03ae\7i\2\2\u03ad\u03af\5,\27\2\u03ae"+ - "\u03ad\3\2\2\2\u03ae\u03af\3\2\2\2\u03af\u03bd\3\2\2\2\u03b0\u03b1\5|"+ - "?\2\u03b1\u03b5\7D\2\2\u03b2\u03b4\5\u00e8u\2\u03b3\u03b2\3\2\2\2\u03b4"+ - "\u03b7\3\2\2\2\u03b5\u03b3\3\2\2\2\u03b5\u03b6\3\2\2\2\u03b6\u03b8\3\2"+ - "\2\2\u03b7\u03b5\3\2\2\2\u03b8\u03ba\7i\2\2\u03b9\u03bb\5,\27\2\u03ba"+ - "\u03b9\3\2\2\2\u03ba\u03bb\3\2\2\2\u03bb\u03bd\3\2\2\2\u03bc\u03ac\3\2"+ - "\2\2\u03bc\u03b0\3\2\2\2\u03bd\177\3\2\2\2\u03be\u03c2\7D\2\2\u03bf\u03c1"+ - "\5\u00e8u\2\u03c0\u03bf\3\2\2\2\u03c1\u03c4\3\2\2\2\u03c2\u03c0\3\2\2"+ - "\2\u03c2\u03c3\3\2\2\2\u03c3\u03c5\3\2\2\2\u03c4\u03c2\3\2\2\2\u03c5\u03c7"+ - "\7i\2\2\u03c6\u03c8\5,\27\2\u03c7\u03c6\3\2\2\2\u03c7\u03c8\3\2\2\2\u03c8"+ - "\u0081\3\2\2\2\u03c9\u03cb\7i\2\2\u03ca\u03cc\5,\27\2\u03cb\u03ca\3\2"+ - "\2\2\u03cb\u03cc\3\2\2\2\u03cc\u0083\3\2\2\2\u03cd\u03ce\5~@\2\u03ce\u0085"+ - "\3\2\2\2\u03cf\u03d0\5\u0080A\2\u03d0\u0087\3\2\2\2\u03d1\u03d2\5\u0082"+ - "B\2\u03d2\u0089\3\2\2\2\u03d3\u03d4\7i\2\2\u03d4\u008b\3\2\2\2\u03d5\u03d6"+ - "\5x=\2\u03d6\u03d7\5\"\22\2\u03d7\u03df\3\2\2\2\u03d8\u03d9\5|?\2\u03d9"+ - "\u03da\5\"\22\2\u03da\u03df\3\2\2\2\u03db\u03dc\5\u008aF\2\u03dc\u03dd"+ - "\5\"\22\2\u03dd\u03df\3\2\2\2\u03de\u03d5\3\2\2\2\u03de\u03d8\3\2\2\2"+ - "\u03de\u03db\3\2\2\2\u03df\u008d\3\2\2\2\u03e0\u03e2\5\u0090I\2\u03e1"+ - "\u03e0\3\2\2\2\u03e2\u03e5\3\2\2\2\u03e3\u03e1\3\2\2\2\u03e3\u03e4\3\2"+ - "\2\2\u03e4\u03e6\3\2\2\2\u03e5\u03e3\3\2\2\2\u03e6\u03e7\5\u0092J\2\u03e7"+ - "\u03e8\5\u00aaV\2\u03e8\u008f\3\2\2\2\u03e9\u03f4\5\u00e8u\2\u03ea\u03f4"+ - "\7&\2\2\u03eb\u03f4\7%\2\2\u03ec\u03f4\7$\2\2\u03ed\u03f4\7\4\2\2\u03ee"+ - "\u03f4\7)\2\2\u03ef\u03f4\7\25\2\2\u03f0\u03f4\7-\2\2\u03f1\u03f4\7!\2"+ - "\2\u03f2\u03f4\7*\2\2\u03f3\u03e9\3\2\2\2\u03f3\u03ea\3\2\2\2\u03f3\u03eb"+ - "\3\2\2\2\u03f3\u03ec\3\2\2\2\u03f3\u03ed\3\2\2\2\u03f3\u03ee\3\2\2\2\u03f3"+ - "\u03ef\3\2\2\2\u03f3\u03f0\3\2\2\2\u03f3\u03f1\3\2\2\2\u03f3\u03f2\3\2"+ - "\2\2\u03f4\u0091\3\2\2\2\u03f5\u03f7\5\u0094K\2\u03f6\u03f5\3\2\2\2\u03f6"+ - "\u03f7\3\2\2\2\u03f7\u03f8\3\2\2\2\u03f8\u03fa\5\u0096L\2\u03f9\u03fb"+ - "\5\u00a4S\2\u03fa\u03f9\3\2\2\2\u03fa\u03fb\3\2\2\2\u03fb\u040b\3\2\2"+ - "\2\u03fc\u0400\5Z.\2\u03fd\u03ff\5\u00e8u\2\u03fe\u03fd\3\2\2\2\u03ff"+ - "\u0402\3\2\2\2\u0400\u03fe\3\2\2\2\u0400\u0401\3\2\2\2\u0401\u0404\3\2"+ - "\2\2\u0402\u0400\3\2\2\2\u0403\u0405\5\u0094K\2\u0404\u0403\3\2\2\2\u0404"+ - "\u0405\3\2\2\2\u0405\u0406\3\2\2\2\u0406\u0408\5\u0096L\2\u0407\u0409"+ - "\5\u00a4S\2\u0408\u0407\3\2\2\2\u0408\u0409\3\2\2\2\u0409\u040b\3\2\2"+ - "\2\u040a\u03f6\3\2\2\2\u040a\u03fc\3\2\2\2\u040b\u0093\3\2\2\2\u040c\u040f"+ - "\5v<\2\u040d\u040f\7\63\2\2\u040e\u040c\3\2\2\2\u040e\u040d\3\2\2\2\u040f"+ - "\u0095\3\2\2\2\u0410\u0411\7i\2\2\u0411\u0413\7<\2\2\u0412\u0414\5\u0098"+ - "M\2\u0413\u0412\3\2\2\2\u0413\u0414\3\2\2\2\u0414\u0415\3\2\2\2\u0415"+ - "\u0417\7=\2\2\u0416\u0418\5\"\22\2\u0417\u0416\3\2\2\2\u0417\u0418\3\2"+ - "\2\2\u0418\u0097\3\2\2\2\u0419\u041a\5\u009aN\2\u041a\u041b\7C\2\2\u041b"+ - "\u041c\5\u00a0Q\2\u041c\u041f\3\2\2\2\u041d\u041f\5\u00a0Q\2\u041e\u0419"+ - "\3\2\2\2\u041e\u041d\3\2\2\2\u041f\u0099\3\2\2\2\u0420\u0425\5\u009cO"+ - "\2\u0421\u0422\7C\2\2\u0422\u0424\5\u009cO\2\u0423\u0421\3\2\2\2\u0424"+ - "\u0427\3\2\2\2\u0425\u0423\3\2\2\2\u0425\u0426\3\2\2\2\u0426\u0431\3\2"+ - "\2\2\u0427\u0425\3\2\2\2\u0428\u042d\5\u00a2R\2\u0429\u042a\7C\2\2\u042a"+ - "\u042c\5\u009cO\2\u042b\u0429\3\2\2\2\u042c\u042f\3\2\2\2\u042d\u042b"+ - "\3\2\2\2\u042d\u042e\3\2\2\2\u042e\u0431\3\2\2\2\u042f\u042d\3\2\2\2\u0430"+ - "\u0420\3\2\2\2\u0430\u0428\3\2\2\2\u0431\u009b\3\2\2\2\u0432\u0434\5\u009e"+ - "P\2\u0433\u0432\3\2\2\2\u0434\u0437\3\2\2\2\u0435\u0433\3\2\2\2\u0435"+ - "\u0436\3\2\2\2\u0436\u0439\3\2\2\2\u0437\u0435\3\2\2\2\u0438\u043a\5v"+ - "<\2\u0439\u0438\3\2\2\2\u0439\u043a\3\2\2\2\u043a\u043b\3\2\2\2\u043b"+ - "\u043c\5r:\2\u043c\u009d\3\2\2\2\u043d\u0440\5\u00e8u\2\u043e\u0440\7"+ - "\25\2\2\u043f\u043d\3\2\2\2\u043f\u043e\3\2\2\2\u0440\u009f\3\2\2\2\u0441"+ - "\u0443\5\u009eP\2\u0442\u0441\3\2\2\2\u0443\u0446\3\2\2\2\u0444\u0442"+ - "\3\2\2\2\u0444\u0445\3\2\2\2\u0445\u0447\3\2\2\2\u0446\u0444\3\2\2\2\u0447"+ - "\u044b\5v<\2\u0448\u044a\5\u00e8u\2\u0449\u0448\3\2\2\2\u044a\u044d\3"+ - "\2\2\2\u044b\u0449\3\2\2\2\u044b\u044c\3\2\2\2\u044c\u044e\3\2\2\2\u044d"+ - "\u044b\3\2\2\2\u044e\u044f\7k\2\2\u044f\u0450\5r:\2\u0450\u0453\3\2\2"+ - "\2\u0451\u0453\5\u009cO\2\u0452\u0444\3\2\2\2\u0452\u0451\3\2\2\2\u0453"+ - "\u00a1\3\2\2\2\u0454\u0456\5\u00e8u\2\u0455\u0454\3\2\2\2\u0456\u0459"+ - "\3\2\2\2\u0457\u0455\3\2\2\2\u0457\u0458\3\2\2\2\u0458\u045a\3\2\2\2\u0459"+ - "\u0457\3\2\2\2\u045a\u045d\5v<\2\u045b\u045c\7i\2\2\u045c\u045e\7D\2\2"+ - "\u045d\u045b\3\2\2\2\u045d\u045e\3\2\2\2\u045e\u045f\3\2\2\2\u045f\u0460"+ - "\7.\2\2\u0460\u00a3\3\2\2\2\u0461\u0462\7\60\2\2\u0462\u0463\5\u00a6T"+ - "\2\u0463\u00a5\3\2\2\2\u0464\u0469\5\u00a8U\2\u0465\u0466\7C\2\2\u0466"+ - "\u0468\5\u00a8U\2\u0467\u0465\3\2\2\2\u0468\u046b\3\2\2\2\u0469\u0467"+ - "\3\2\2\2\u0469\u046a\3\2\2\2\u046a\u00a7\3\2\2\2\u046b\u0469\3\2\2\2\u046c"+ - "\u046f\5\22\n\2\u046d\u046f\5\36\20\2\u046e\u046c\3\2\2\2\u046e\u046d"+ - "\3\2\2\2\u046f\u00a9\3\2\2\2\u0470\u0473\5\u00fe\u0080\2\u0471\u0473\7"+ - "B\2\2\u0472\u0470\3\2\2\2\u0472\u0471\3\2\2\2\u0473\u00ab\3\2\2\2\u0474"+ - "\u0475\5\u00fe\u0080\2\u0475\u00ad\3\2\2\2\u0476\u0477\7)\2\2\u0477\u0478"+ - "\5\u00fe\u0080\2\u0478\u00af\3\2\2\2\u0479\u047b\5\u00b2Z\2\u047a\u0479"+ - "\3\2\2\2\u047b\u047e\3\2\2\2\u047c\u047a\3\2\2\2\u047c\u047d\3\2\2\2\u047d"+ - "\u047f\3\2\2\2\u047e\u047c\3\2\2\2\u047f\u0481\5\u00b4[\2\u0480\u0482"+ - "\5\u00a4S\2\u0481\u0480\3\2\2\2\u0481\u0482\3\2\2\2\u0482\u0483\3\2\2"+ - "\2\u0483\u0484\5\u00b8]\2\u0484\u00b1\3\2\2\2\u0485\u048a\5\u00e8u\2\u0486"+ - "\u048a\7&\2\2\u0487\u048a\7%\2\2\u0488\u048a\7$\2\2\u0489\u0485\3\2\2"+ - "\2\u0489\u0486\3\2\2\2\u0489\u0487\3\2\2\2\u0489\u0488\3\2\2\2\u048a\u00b3"+ - "\3\2\2\2\u048b\u048d\5Z.\2\u048c\u048b\3\2\2\2\u048c\u048d\3\2\2\2\u048d"+ - "\u048e\3\2\2\2\u048e\u048f\5\u00b6\\\2\u048f\u0491\7<\2\2\u0490\u0492"+ - "\5\u0098M\2\u0491\u0490\3\2\2\2\u0491\u0492\3\2\2\2\u0492\u0493\3\2\2"+ - "\2\u0493\u0494\7=\2\2\u0494\u00b5\3\2\2\2\u0495\u0496\7i\2\2\u0496\u00b7"+ - "\3\2\2\2\u0497\u0499\7>\2\2\u0498\u049a\5\u00ba^\2\u0499\u0498\3\2\2\2"+ - "\u0499\u049a\3\2\2\2\u049a\u049c\3\2\2\2\u049b\u049d\5\u0100\u0081\2\u049c"+ - "\u049b\3\2\2\2\u049c\u049d\3\2\2\2\u049d\u049e\3\2\2\2\u049e\u049f\7?"+ - "\2\2\u049f\u00b9\3\2\2\2\u04a0\u04a2\5,\27\2\u04a1\u04a0\3\2\2\2\u04a1"+ - "\u04a2\3\2\2\2\u04a2\u04a3\3\2\2\2\u04a3\u04a4\7.\2\2\u04a4\u04a6\7<\2"+ - "\2\u04a5\u04a7\5\u0192\u00ca\2\u04a6\u04a5\3\2\2\2\u04a6\u04a7\3\2\2\2"+ - "\u04a7\u04a8\3\2\2\2\u04a8\u04a9\7=\2\2\u04a9\u04cf\7B\2\2\u04aa\u04ac"+ - "\5,\27\2\u04ab\u04aa\3\2\2\2\u04ab\u04ac\3\2\2\2\u04ac\u04ad\3\2\2\2\u04ad"+ - "\u04ae\7+\2\2\u04ae\u04b0\7<\2\2\u04af\u04b1\5\u0192\u00ca\2\u04b0\u04af"+ - "\3\2\2\2\u04b0\u04b1\3\2\2\2\u04b1\u04b2\3\2\2\2\u04b2\u04b3\7=\2\2\u04b3"+ - "\u04cf\7B\2\2\u04b4\u04b5\5<\37\2\u04b5\u04b7\7D\2\2\u04b6\u04b8\5,\27"+ - "\2\u04b7\u04b6\3\2\2\2\u04b7\u04b8\3\2\2\2\u04b8\u04b9\3\2\2\2\u04b9\u04ba"+ - "\7+\2\2\u04ba\u04bc\7<\2\2\u04bb\u04bd\5\u0192\u00ca\2\u04bc\u04bb\3\2"+ - "\2\2\u04bc\u04bd\3\2\2\2\u04bd\u04be\3\2\2\2\u04be\u04bf\7=\2\2\u04bf"+ - "\u04c0\7B\2\2\u04c0\u04cf\3\2\2\2\u04c1\u04c2\5\u0164\u00b3\2\u04c2\u04c4"+ - "\7D\2\2\u04c3\u04c5\5,\27\2\u04c4\u04c3\3\2\2\2\u04c4\u04c5\3\2\2\2\u04c5"+ - "\u04c6\3\2\2\2\u04c6\u04c7\7+\2\2\u04c7\u04c9\7<\2\2\u04c8\u04ca\5\u0192"+ - "\u00ca\2\u04c9\u04c8\3\2\2\2\u04c9\u04ca\3\2\2\2\u04ca\u04cb\3\2\2\2\u04cb"+ - "\u04cc\7=\2\2\u04cc\u04cd\7B\2\2\u04cd\u04cf\3\2\2\2\u04ce\u04a1\3\2\2"+ - "\2\u04ce\u04ab\3\2\2\2\u04ce\u04b4\3\2\2\2\u04ce\u04c1\3\2\2\2\u04cf\u00bb"+ - "\3\2\2\2\u04d0\u04d2\5X-\2\u04d1\u04d0\3\2\2\2\u04d2\u04d5\3\2\2\2\u04d3"+ - "\u04d1\3\2\2\2\u04d3\u04d4\3\2\2\2\u04d4\u04d6\3\2\2\2\u04d5\u04d3\3\2"+ - "\2\2\u04d6\u04d7\7\23\2\2\u04d7\u04d9\7i\2\2\u04d8\u04da\5`\61\2\u04d9"+ - "\u04d8\3\2\2\2\u04d9\u04da\3\2\2\2\u04da\u04db\3\2\2\2\u04db\u04dc\5\u00be"+ - "`\2\u04dc\u00bd\3\2\2\2\u04dd\u04df\7>\2\2\u04de\u04e0\5\u00c0a\2\u04df"+ - "\u04de\3\2\2\2\u04df\u04e0\3\2\2\2\u04e0\u04e2\3\2\2\2\u04e1\u04e3\7C"+ - "\2\2\u04e2\u04e1\3\2\2\2\u04e2\u04e3\3\2\2\2\u04e3\u04e5\3\2\2\2\u04e4"+ - "\u04e6\5\u00c6d\2\u04e5\u04e4\3\2\2\2\u04e5\u04e6\3\2\2\2\u04e6\u04e7"+ - "\3\2\2\2\u04e7\u04e8\7?\2\2\u04e8\u00bf\3\2\2\2\u04e9\u04ee\5\u00c2b\2"+ - "\u04ea\u04eb\7C\2\2\u04eb\u04ed\5\u00c2b\2\u04ec\u04ea\3\2\2\2\u04ed\u04f0"+ - "\3\2\2\2\u04ee\u04ec\3\2\2\2\u04ee\u04ef\3\2\2\2\u04ef\u00c1\3\2\2\2\u04f0"+ - "\u04ee\3\2\2\2\u04f1\u04f3\5\u00c4c\2\u04f2\u04f1\3\2\2\2\u04f3\u04f6"+ - "\3\2\2\2\u04f4\u04f2\3\2\2\2\u04f4\u04f5\3\2\2\2\u04f5\u04f7\3\2\2\2\u04f6"+ - "\u04f4\3\2\2\2\u04f7\u04fd\7i\2\2\u04f8\u04fa\7<\2\2\u04f9\u04fb\5\u0192"+ - "\u00ca\2\u04fa\u04f9\3\2\2\2\u04fa\u04fb\3\2\2\2\u04fb\u04fc\3\2\2\2\u04fc"+ - "\u04fe\7=\2\2\u04fd\u04f8\3\2\2\2\u04fd\u04fe\3\2\2\2\u04fe\u0500\3\2"+ - "\2\2\u04ff\u0501\5d\63\2\u0500\u04ff\3\2\2\2\u0500\u0501\3\2\2\2\u0501"+ - "\u00c3\3\2\2\2\u0502\u0503\5\u00e8u\2\u0503\u00c5\3\2\2\2\u0504\u0508"+ - "\7B\2\2\u0505\u0507\5f\64\2\u0506\u0505\3\2\2\2\u0507\u050a\3\2\2\2\u0508"+ - "\u0506\3\2\2\2\u0508\u0509\3\2\2\2\u0509\u00c7\3\2\2\2\u050a\u0508\3\2"+ - "\2\2\u050b\u050e\5\u00caf\2\u050c\u050e\5\u00dco\2\u050d\u050b\3\2\2\2"+ - "\u050d\u050c\3\2\2\2\u050e\u00c9\3\2\2\2\u050f\u0511\5\u00ccg\2\u0510"+ - "\u050f\3\2\2\2\u0511\u0514\3\2\2\2\u0512\u0510\3\2\2\2\u0512\u0513\3\2"+ - "\2\2\u0513\u0515\3\2\2\2\u0514\u0512\3\2\2\2\u0515\u0516\7\37\2\2\u0516"+ - "\u0518\7i\2\2\u0517\u0519\5Z.\2\u0518\u0517\3\2\2\2\u0518\u0519\3\2\2"+ - "\2\u0519\u051b\3\2\2\2\u051a\u051c\5\u00ceh\2\u051b\u051a\3\2\2\2\u051b"+ - "\u051c\3\2\2\2\u051c\u051d\3\2\2\2\u051d\u051e\5\u00d0i\2\u051e\u00cb"+ - "\3\2\2\2\u051f\u0527\5\u00e8u\2\u0520\u0527\7&\2\2\u0521\u0527\7%\2\2"+ - "\u0522\u0527\7$\2\2\u0523\u0527\7\4\2\2\u0524\u0527\7)\2\2\u0525\u0527"+ - "\7*\2\2\u0526\u051f\3\2\2\2\u0526\u0520\3\2\2\2\u0526\u0521\3\2\2\2\u0526"+ - "\u0522\3\2\2\2\u0526\u0523\3\2\2\2\u0526\u0524\3\2\2\2\u0526\u0525\3\2"+ - "\2\2\u0527\u00cd\3\2\2\2\u0528\u0529\7\24\2\2\u0529\u052a\5b\62\2\u052a"+ - "\u00cf\3\2\2\2\u052b\u052f\7>\2\2\u052c\u052e\5\u00d2j\2\u052d\u052c\3"+ - "\2\2\2\u052e\u0531\3\2\2\2\u052f\u052d\3\2\2\2\u052f\u0530\3\2\2\2\u0530"+ - "\u0532\3\2\2\2\u0531\u052f\3\2\2\2\u0532\u0533\7?\2\2\u0533\u00d1\3\2"+ - "\2\2\u0534\u053a\5\u00d4k\2\u0535\u053a\5\u00d8m\2\u0536\u053a\5T+\2\u0537"+ - "\u053a\5\u00c8e\2\u0538\u053a\7B\2\2\u0539\u0534\3\2\2\2\u0539\u0535\3"+ - "\2\2\2\u0539\u0536\3\2\2\2\u0539\u0537\3\2\2\2\u0539\u0538\3\2\2\2\u053a"+ - "\u00d3\3\2\2\2\u053b\u053d\5\u00d6l\2\u053c\u053b\3\2\2\2\u053d\u0540"+ - "\3\2\2\2\u053e\u053c\3\2\2\2\u053e\u053f\3\2\2\2\u053f\u0541\3\2\2\2\u0540"+ - "\u053e\3\2\2\2\u0541\u0542\5v<\2\u0542\u0543\5n8\2\u0543\u0544\7B\2\2"+ - "\u0544\u00d5\3\2\2\2\u0545\u054a\5\u00e8u\2\u0546\u054a\7&\2\2\u0547\u054a"+ - "\7)\2\2\u0548\u054a\7\25\2\2\u0549\u0545\3\2\2\2\u0549\u0546\3\2\2\2\u0549"+ - "\u0547\3\2\2\2\u0549\u0548\3\2\2\2\u054a\u00d7\3\2\2\2\u054b\u054d\5\u00da"+ - "n\2\u054c\u054b\3\2\2\2\u054d\u0550\3\2\2\2\u054e\u054c\3\2\2\2\u054e"+ - "\u054f\3\2\2\2\u054f\u0551\3\2\2\2\u0550\u054e\3\2\2\2\u0551\u0552\5\u0092"+ - "J\2\u0552\u0553\5\u00aaV\2\u0553\u00d9\3\2\2\2\u0554\u055b\5\u00e8u\2"+ - "\u0555\u055b\7&\2\2\u0556\u055b\7\4\2\2\u0557\u055b\7\17\2\2\u0558\u055b"+ - "\7)\2\2\u0559\u055b\7*\2\2\u055a\u0554\3\2\2\2\u055a\u0555\3\2\2\2\u055a"+ - "\u0556\3\2\2\2\u055a\u0557\3\2\2\2\u055a\u0558\3\2\2\2\u055a\u0559\3\2"+ - "\2\2\u055b\u00db\3\2\2\2\u055c\u055e\5\u00ccg\2\u055d\u055c\3\2\2\2\u055e"+ - "\u0561\3\2\2\2\u055f\u055d\3\2\2\2\u055f\u0560\3\2\2\2\u0560\u0562\3\2"+ - "\2\2\u0561\u055f\3\2\2\2\u0562\u0563\7j\2\2\u0563\u0564\7\37\2\2\u0564"+ - "\u0565\7i\2\2\u0565\u0566\5\u00dep\2\u0566\u00dd\3\2\2\2\u0567\u056b\7"+ - ">\2\2\u0568\u056a\5\u00e0q\2\u0569\u0568\3\2\2\2\u056a\u056d\3\2\2\2\u056b"+ - "\u0569\3\2\2\2\u056b\u056c\3\2\2\2\u056c\u056e\3\2\2\2\u056d\u056b\3\2"+ - "\2\2\u056e\u056f\7?\2\2\u056f\u00df\3\2\2\2\u0570\u0576\5\u00e2r\2\u0571"+ - "\u0576\5\u00d4k\2\u0572\u0576\5T+\2\u0573\u0576\5\u00c8e\2\u0574\u0576"+ - "\7B\2\2\u0575\u0570\3\2\2\2\u0575\u0571\3\2\2\2\u0575\u0572\3\2\2\2\u0575"+ - "\u0573\3\2\2\2\u0575\u0574\3\2\2\2\u0576\u00e1\3\2\2\2\u0577\u0579\5\u00e4"+ - "s\2\u0578\u0577\3\2\2\2\u0579\u057c\3\2\2\2\u057a\u0578\3\2\2\2\u057a"+ - "\u057b\3\2\2\2\u057b\u057d\3\2\2\2\u057c\u057a\3\2\2\2\u057d\u057e\5v"+ - "<\2\u057e\u057f\7i\2\2\u057f\u0580\7<\2\2\u0580\u0582\7=\2\2\u0581\u0583"+ - "\5\"\22\2\u0582\u0581\3\2\2\2\u0582\u0583\3\2\2\2\u0583\u0585\3\2\2\2"+ - "\u0584\u0586\5\u00e6t\2\u0585\u0584\3\2\2\2\u0585\u0586\3\2\2\2\u0586"+ - "\u0587\3\2\2\2\u0587\u0588\7B\2\2\u0588\u00e3\3\2\2\2\u0589\u058d\5\u00e8"+ - "u\2\u058a\u058d\7&\2\2\u058b\u058d\7\4\2\2\u058c\u0589\3\2\2\2\u058c\u058a"+ - "\3\2\2\2\u058c\u058b\3\2\2\2\u058d\u00e5\3\2\2\2\u058e\u058f\7\17\2\2"+ - "\u058f\u0590\5\u00f0y\2\u0590\u00e7\3\2\2\2\u0591\u0595\5\u00eav\2\u0592"+ - "\u0595\5\u00f6|\2\u0593\u0595\5\u00f8}\2\u0594\u0591\3\2\2\2\u0594\u0592"+ - "\3\2\2\2\u0594\u0593\3\2\2\2\u0595\u00e9\3\2\2\2\u0596\u0597\7j\2\2\u0597"+ - "\u0598\58\35\2\u0598\u059a\7<\2\2\u0599\u059b\5\u00ecw\2\u059a\u0599\3"+ - "\2\2\2\u059a\u059b\3\2\2\2\u059b\u059c\3\2\2\2\u059c\u059d\7=\2\2\u059d"+ - "\u00eb\3\2\2\2\u059e\u05a3\5\u00eex\2\u059f\u05a0\7C\2\2\u05a0\u05a2\5"+ - "\u00eex\2\u05a1\u059f\3\2\2\2\u05a2\u05a5\3\2\2\2\u05a3\u05a1\3\2\2\2"+ - "\u05a3\u05a4\3\2\2\2\u05a4\u00ed\3\2\2\2\u05a5\u05a3\3\2\2\2\u05a6\u05a7"+ - "\7i\2\2\u05a7\u05a8\7E\2\2\u05a8\u05a9\5\u00f0y\2\u05a9\u00ef\3\2\2\2"+ - "\u05aa\u05ae\5\u01b4\u00db\2\u05ab\u05ae\5\u00f2z\2\u05ac\u05ae\5\u00e8"+ - "u\2\u05ad\u05aa\3\2\2\2\u05ad\u05ab\3\2\2\2\u05ad\u05ac\3\2\2\2\u05ae"+ - "\u00f1\3\2\2\2\u05af\u05b1\7>\2\2\u05b0\u05b2\5\u00f4{\2\u05b1\u05b0\3"+ - "\2\2\2\u05b1\u05b2\3\2\2\2\u05b2\u05b4\3\2\2\2\u05b3\u05b5\7C\2\2\u05b4"+ - "\u05b3\3\2\2\2\u05b4\u05b5\3\2\2\2\u05b5\u05b6\3\2\2\2\u05b6\u05b7\7?"+ - "\2\2\u05b7\u00f3\3\2\2\2\u05b8\u05bd\5\u00f0y\2\u05b9\u05ba\7C\2\2\u05ba"+ - "\u05bc\5\u00f0y\2\u05bb\u05b9\3\2\2\2\u05bc\u05bf\3\2\2\2\u05bd\u05bb"+ - "\3\2\2\2\u05bd\u05be\3\2\2\2\u05be\u00f5\3\2\2\2\u05bf\u05bd\3\2\2\2\u05c0"+ - "\u05c1\7j\2\2\u05c1\u05c2\58\35\2\u05c2\u00f7\3\2\2\2\u05c3\u05c4\7j\2"+ - "\2\u05c4\u05c5\58\35\2\u05c5\u05c6\7<\2\2\u05c6\u05c7\5\u00f0y\2\u05c7"+ - "\u05c8\7=\2\2\u05c8\u00f9\3\2\2\2\u05c9\u05cb\7>\2\2\u05ca\u05cc\5\u00fc"+ - "\177\2\u05cb\u05ca\3\2\2\2\u05cb\u05cc\3\2\2\2\u05cc\u05ce\3\2\2\2\u05cd"+ - "\u05cf\7C\2\2\u05ce\u05cd\3\2\2\2\u05ce\u05cf\3\2\2\2\u05cf\u05d0\3\2"+ - "\2\2\u05d0\u05d1\7?\2\2\u05d1\u00fb\3\2\2\2\u05d2\u05d7\5t;\2\u05d3\u05d4"+ - "\7C\2\2\u05d4\u05d6\5t;\2\u05d5\u05d3\3\2\2\2\u05d6\u05d9\3\2\2\2\u05d7"+ - "\u05d5\3\2\2\2\u05d7\u05d8\3\2\2\2\u05d8\u00fd\3\2\2\2\u05d9\u05d7\3\2"+ - "\2\2\u05da\u05dc\7>\2\2\u05db\u05dd\5\u0100\u0081\2\u05dc\u05db\3\2\2"+ - "\2\u05dc\u05dd\3\2\2\2\u05dd\u05de\3\2\2\2\u05de\u05df\7?\2\2\u05df\u00ff"+ - "\3\2\2\2\u05e0\u05e4\5\u0102\u0082\2\u05e1\u05e3\5\u0102\u0082\2\u05e2"+ - "\u05e1\3\2\2\2\u05e3\u05e6\3\2\2\2\u05e4\u05e2\3\2\2\2\u05e4\u05e5\3\2"+ - "\2\2\u05e5\u0101\3\2\2\2\u05e6\u05e4\3\2\2\2\u05e7\u05eb\5\u0104\u0083"+ - "\2\u05e8\u05eb\5T+\2\u05e9\u05eb\5\u010a\u0086\2\u05ea\u05e7\3\2\2\2\u05ea"+ - "\u05e8\3\2\2\2\u05ea\u05e9\3\2\2\2\u05eb\u0103\3\2\2\2\u05ec\u05ed\5\u0108"+ - "\u0085\2\u05ed\u05ee\7B\2\2\u05ee\u0105\3\2\2\2\u05ef\u05f2\5v<\2\u05f0"+ - "\u05f2\7\3\2\2\u05f1\u05ef\3\2\2\2\u05f1\u05f0\3\2\2\2\u05f2\u0107\3\2"+ - "\2\2\u05f3\u05f5\5\u009eP\2\u05f4\u05f3\3\2\2\2\u05f5\u05f8\3\2\2\2\u05f6"+ - "\u05f4\3\2\2\2\u05f6\u05f7\3\2\2\2\u05f7\u05f9\3\2\2\2\u05f8\u05f6\3\2"+ - "\2\2\u05f9\u05fa\5\u0106\u0084\2\u05fa\u05fb\5n8\2\u05fb\u0109\3\2\2\2"+ - "\u05fc\u0603\5\u010e\u0088\2\u05fd\u0603\5\u0112\u008a\2\u05fe\u0603\5"+ - "\u011a\u008e\2\u05ff\u0603\5\u011c\u008f\2\u0600\u0603\5\u012e\u0098\2"+ - "\u0601\u0603\5\u0134\u009b\2\u0602\u05fc\3\2\2\2\u0602\u05fd\3\2\2\2\u0602"+ - "\u05fe\3\2\2\2\u0602\u05ff\3\2\2\2\u0602\u0600\3\2\2\2\u0602\u0601\3\2"+ - "\2\2\u0603\u010b\3\2\2\2\u0604\u060a\5\u010e\u0088\2\u0605\u060a\5\u0114"+ - "\u008b\2\u0606\u060a\5\u011e\u0090\2\u0607\u060a\5\u0130\u0099\2\u0608"+ - "\u060a\5\u0136\u009c\2\u0609\u0604\3\2\2\2\u0609\u0605\3\2\2\2\u0609\u0606"+ - "\3\2\2\2\u0609\u0607\3\2\2\2\u0609\u0608\3\2\2\2\u060a\u010d\3\2\2\2\u060b"+ - "\u0618\5\u00fe\u0080\2\u060c\u0618\5\u0110\u0089\2\u060d\u0618\5\u0116"+ - "\u008c\2\u060e\u0618\5\u0120\u0091\2\u060f\u0618\5\u0122\u0092\2\u0610"+ - "\u0618\5\u0132\u009a\2\u0611\u0618\5\u0146\u00a4\2\u0612\u0618\5\u0148"+ - "\u00a5\2\u0613\u0618\5\u014a\u00a6\2\u0614\u0618\5\u014e\u00a8\2\u0615"+ - "\u0618\5\u014c\u00a7\2\u0616\u0618\5\u0150\u00a9\2\u0617\u060b\3\2\2\2"+ - "\u0617\u060c\3\2\2\2\u0617\u060d\3\2\2\2\u0617\u060e\3\2\2\2\u0617\u060f"+ - "\3\2\2\2\u0617\u0610\3\2\2\2\u0617\u0611\3\2\2\2\u0617\u0612\3\2\2\2\u0617"+ - "\u0613\3\2\2\2\u0617\u0614\3\2\2\2\u0617\u0615\3\2\2\2\u0617\u0616\3\2"+ - "\2\2\u0618\u010f\3\2\2\2\u0619\u061a\7B\2\2\u061a\u0111\3\2\2\2\u061b"+ - "\u061c\7i\2\2\u061c\u061d\7K\2\2\u061d\u061e\5\u010a\u0086\2\u061e\u0113"+ - "\3\2\2\2\u061f\u0620\7i\2\2\u0620\u0621\7K\2\2\u0621\u0622\5\u010c\u0087"+ - "\2\u0622\u0115\3\2\2\2\u0623\u0624\5\u0118\u008d\2\u0624\u0625\7B\2\2"+ - "\u0625\u0117\3\2\2\2\u0626\u062e\5\u01ae\u00d8\2\u0627\u062e\5\u01cc\u00e7"+ - "\2\u0628\u062e\5\u01ce\u00e8\2\u0629\u062e\5\u01d4\u00eb\2\u062a\u062e"+ - "\5\u01d8\u00ed\2\u062b\u062e\5\u018c\u00c7\2\u062c\u062e\5\u0178\u00bd"+ - "\2\u062d\u0626\3\2\2\2\u062d\u0627\3\2\2\2\u062d\u0628\3\2\2\2\u062d\u0629"+ - "\3\2\2\2\u062d\u062a\3\2\2\2\u062d\u062b\3\2\2\2\u062d\u062c\3\2\2\2\u062e"+ - "\u0119\3\2\2\2\u062f\u0630\7\31\2\2\u0630\u0631\7<\2\2\u0631\u0632\5\u01a2"+ - "\u00d2\2\u0632\u0633\7=\2\2\u0633\u0634\5\u010a\u0086\2\u0634\u011b\3"+ - "\2\2\2\u0635\u0636\7\31\2\2\u0636\u0637\7<\2\2\u0637\u0638\5\u01a2\u00d2"+ - "\2\u0638\u0639\7=\2\2\u0639\u063a\5\u010c\u0087\2\u063a\u063b\7\22\2\2"+ - "\u063b\u063c\5\u010a\u0086\2\u063c\u011d\3\2\2\2\u063d\u063e\7\31\2\2"+ - "\u063e\u063f\7<\2\2\u063f\u0640\5\u01a2\u00d2\2\u0640\u0641\7=\2\2\u0641"+ - "\u0642\5\u010c\u0087\2\u0642\u0643\7\22\2\2\u0643\u0644\5\u010c\u0087"+ - "\2\u0644\u011f\3\2\2\2\u0645\u0646\7\5\2\2\u0646\u0647\5\u01a2\u00d2\2"+ - "\u0647\u0648\7B\2\2\u0648\u0650\3\2\2\2\u0649\u064a\7\5\2\2\u064a\u064b"+ - "\5\u01a2\u00d2\2\u064b\u064c\7K\2\2\u064c\u064d\5\u01a2\u00d2\2\u064d"+ - "\u064e\7B\2\2\u064e\u0650\3\2\2\2\u064f\u0645\3\2\2\2\u064f\u0649\3\2"+ - "\2\2\u0650\u0121\3\2\2\2\u0651\u0652\7,\2\2\u0652\u0653\7<\2\2\u0653\u0654"+ - "\5\u01a2\u00d2\2\u0654\u0655\7=\2\2\u0655\u0656\5\u0124\u0093\2\u0656"+ - "\u0123\3\2\2\2\u0657\u065b\7>\2\2\u0658\u065a\5\u0126\u0094\2\u0659\u0658"+ - "\3\2\2\2\u065a\u065d\3\2\2\2\u065b\u0659\3\2\2\2\u065b\u065c\3\2\2\2\u065c"+ - "\u0661\3\2\2\2\u065d\u065b\3\2\2\2\u065e\u0660\5\u012a\u0096\2\u065f\u065e"+ - "\3\2\2\2\u0660\u0663\3\2\2\2\u0661\u065f\3\2\2\2\u0661\u0662\3\2\2\2\u0662"+ - "\u0664\3\2\2\2\u0663\u0661\3\2\2\2\u0664\u0665\7?\2\2\u0665\u0125\3\2"+ - "\2\2\u0666\u0667\5\u0128\u0095\2\u0667\u0668\5\u0100\u0081\2\u0668\u0127"+ - "\3\2\2\2\u0669\u066d\5\u012a\u0096\2\u066a\u066c\5\u012a\u0096\2\u066b"+ - "\u066a\3\2\2\2\u066c\u066f\3\2\2\2\u066d\u066b\3\2\2\2\u066d\u066e\3\2"+ - "\2\2\u066e\u0129\3\2\2\2\u066f\u066d\3\2\2\2\u0670\u0671\7\t\2\2\u0671"+ - "\u0672\5\u01a0\u00d1\2\u0672\u0673\7K\2\2\u0673\u067b\3\2\2\2\u0674\u0675"+ - "\7\t\2\2\u0675\u0676\5\u012c\u0097\2\u0676\u0677\7K\2\2\u0677\u067b\3"+ - "\2\2\2\u0678\u0679\7\17\2\2\u0679\u067b\7K\2\2\u067a\u0670\3\2\2\2\u067a"+ - "\u0674\3\2\2\2\u067a\u0678\3\2\2\2\u067b\u012b\3\2\2\2\u067c\u067d\7i"+ - "\2\2\u067d\u012d\3\2\2\2\u067e\u067f\7\65\2\2\u067f\u0680\7<\2\2\u0680"+ - "\u0681\5\u01a2\u00d2\2\u0681\u0682\7=\2\2\u0682\u0683\5\u010a\u0086\2"+ - "\u0683\u012f\3\2\2\2\u0684\u0685\7\65\2\2\u0685\u0686\7<\2\2\u0686\u0687"+ - "\5\u01a2\u00d2\2\u0687\u0688\7=\2\2\u0688\u0689\5\u010c\u0087\2\u0689"+ - "\u0131\3\2\2\2\u068a\u068b\7\20\2\2\u068b\u068c\5\u010a\u0086\2\u068c"+ - "\u068d\7\65\2\2\u068d\u068e\7<\2\2\u068e\u068f\5\u01a2\u00d2\2\u068f\u0690"+ - "\7=\2\2\u0690\u0691\7B\2\2\u0691\u0133\3\2\2\2\u0692\u0695\5\u0138\u009d"+ - "\2\u0693\u0695\5\u0142\u00a2\2\u0694\u0692\3\2\2\2\u0694\u0693\3\2\2\2"+ - "\u0695\u0135\3\2\2\2\u0696\u0699\5\u013a\u009e\2\u0697\u0699\5\u0144\u00a3"+ - "\2\u0698\u0696\3\2\2\2\u0698\u0697\3\2\2\2\u0699\u0137\3\2\2\2\u069a\u069b"+ - "\7\30\2\2\u069b\u069d\7<\2\2\u069c\u069e\5\u013c\u009f\2\u069d\u069c\3"+ - "\2\2\2\u069d\u069e\3\2\2\2\u069e\u069f\3\2\2\2\u069f\u06a1\7B\2\2\u06a0"+ - "\u06a2\5\u01a2\u00d2\2\u06a1\u06a0\3\2\2\2\u06a1\u06a2\3\2\2\2\u06a2\u06a3"+ - "\3\2\2\2\u06a3\u06a5\7B\2\2\u06a4\u06a6\5\u013e\u00a0\2\u06a5\u06a4\3"+ - "\2\2\2\u06a5\u06a6\3\2\2\2\u06a6\u06a7\3\2\2\2\u06a7\u06a8\7=\2\2\u06a8"+ - "\u06a9\5\u010a\u0086\2\u06a9\u0139\3\2\2\2\u06aa\u06ab\7\30\2\2\u06ab"+ - "\u06ad\7<\2\2\u06ac\u06ae\5\u013c\u009f\2\u06ad\u06ac\3\2\2\2\u06ad\u06ae"+ - "\3\2\2\2\u06ae\u06af\3\2\2\2\u06af\u06b1\7B\2\2\u06b0\u06b2\5\u01a2\u00d2"+ - "\2\u06b1\u06b0\3\2\2\2\u06b1\u06b2\3\2\2\2\u06b2\u06b3\3\2\2\2\u06b3\u06b5"+ - "\7B\2\2\u06b4\u06b6\5\u013e\u00a0\2\u06b5\u06b4\3\2\2\2\u06b5\u06b6\3"+ - "\2\2\2\u06b6\u06b7\3\2\2\2\u06b7\u06b8\7=\2\2\u06b8\u06b9\5\u010c\u0087"+ - "\2\u06b9\u013b\3\2\2\2\u06ba\u06bd\5\u0140\u00a1\2\u06bb\u06bd\5\u0108"+ - "\u0085\2\u06bc\u06ba\3\2\2\2\u06bc\u06bb\3\2\2\2\u06bd\u013d\3\2\2\2\u06be"+ - "\u06bf\5\u0140\u00a1\2\u06bf\u013f\3\2\2\2\u06c0\u06c5\5\u0118\u008d\2"+ - "\u06c1\u06c2\7C\2\2\u06c2\u06c4\5\u0118\u008d\2\u06c3\u06c1\3\2\2\2\u06c4"+ - "\u06c7\3\2\2\2\u06c5\u06c3\3\2\2\2\u06c5\u06c6\3\2\2\2\u06c6\u0141\3\2"+ - "\2\2\u06c7\u06c5\3\2\2\2\u06c8\u06c9\7\30\2\2\u06c9\u06cd\7<\2\2\u06ca"+ - "\u06cc\5\u009eP\2\u06cb\u06ca\3\2\2\2\u06cc\u06cf\3\2\2\2\u06cd\u06cb"+ - "\3\2\2\2\u06cd\u06ce\3\2\2\2\u06ce\u06d0\3\2\2\2\u06cf\u06cd\3\2\2\2\u06d0"+ - "\u06d1\5v<\2\u06d1\u06d2\5r:\2\u06d2\u06d3\7K\2\2\u06d3\u06d4\5\u01a2"+ - "\u00d2\2\u06d4\u06d5\7=\2\2\u06d5\u06d6\5\u010a\u0086\2\u06d6\u0143\3"+ - "\2\2\2\u06d7\u06d8\7\30\2\2\u06d8\u06dc\7<\2\2\u06d9\u06db\5\u009eP\2"+ - "\u06da\u06d9\3\2\2\2\u06db\u06de\3\2\2\2\u06dc\u06da\3\2\2\2\u06dc\u06dd"+ - "\3\2\2\2\u06dd\u06df\3\2\2\2\u06de\u06dc\3\2\2\2\u06df\u06e0\5v<\2\u06e0"+ - "\u06e1\5r:\2\u06e1\u06e2\7K\2\2\u06e2\u06e3\5\u01a2\u00d2\2\u06e3\u06e4"+ - "\7=\2\2\u06e4\u06e5\5\u010c\u0087\2\u06e5\u0145\3\2\2\2\u06e6\u06e8\7"+ - "\7\2\2\u06e7\u06e9\7i\2\2\u06e8\u06e7\3\2\2\2\u06e8\u06e9\3\2\2\2\u06e9"+ - "\u06ea\3\2\2\2\u06ea\u06eb\7B\2\2\u06eb\u0147\3\2\2\2\u06ec\u06ee\7\16"+ - "\2\2\u06ed\u06ef\7i\2\2\u06ee\u06ed\3\2\2\2\u06ee\u06ef\3\2\2\2\u06ef"+ - "\u06f0\3\2\2\2\u06f0\u06f1\7B\2\2\u06f1\u0149\3\2\2\2\u06f2\u06f4\7\'"+ - "\2\2\u06f3\u06f5\5\u01a2\u00d2\2\u06f4\u06f3\3\2\2\2\u06f4\u06f5\3\2\2"+ - "\2\u06f5\u06f6\3\2\2\2\u06f6\u06f7\7B\2\2\u06f7\u014b\3\2\2\2\u06f8\u06f9"+ - "\7/\2\2\u06f9\u06fa\5\u01a2\u00d2\2\u06fa\u06fb\7B\2\2\u06fb\u014d\3\2"+ - "\2\2\u06fc\u06fd\7-\2\2\u06fd\u06fe\7<\2\2\u06fe\u06ff\5\u01a2\u00d2\2"+ - "\u06ff\u0700\7=\2\2\u0700\u0701\5\u00fe\u0080\2\u0701\u014f\3\2\2\2\u0702"+ - "\u0703\7\62\2\2\u0703\u0704\5\u00fe\u0080\2\u0704\u0705\5\u0152\u00aa"+ - "\2\u0705\u070f\3\2\2\2\u0706\u0707\7\62\2\2\u0707\u0709\5\u00fe\u0080"+ - "\2\u0708\u070a\5\u0152\u00aa\2\u0709\u0708\3\2\2\2\u0709\u070a\3\2\2\2"+ - "\u070a\u070b\3\2\2\2\u070b\u070c\5\u015a\u00ae\2\u070c\u070f\3\2\2\2\u070d"+ - "\u070f\5\u015c\u00af\2\u070e\u0702\3\2\2\2\u070e\u0706\3\2\2\2\u070e\u070d"+ - "\3\2\2\2\u070f\u0151\3\2\2\2\u0710\u0714\5\u0154\u00ab\2\u0711\u0713\5"+ - "\u0154\u00ab\2\u0712\u0711\3\2\2\2\u0713\u0716\3\2\2\2\u0714\u0712\3\2"+ - "\2\2\u0714\u0715\3\2\2\2\u0715\u0153\3\2\2\2\u0716\u0714\3\2\2\2\u0717"+ - "\u0718\7\n\2\2\u0718\u0719\7<\2\2\u0719\u071a\5\u0156\u00ac\2\u071a\u071b"+ - "\7=\2\2\u071b\u071c\5\u00fe\u0080\2\u071c\u0155\3\2\2\2\u071d\u071f\5"+ - "\u009eP\2\u071e\u071d\3\2\2\2\u071f\u0722\3\2\2\2\u0720\u071e\3\2\2\2"+ - "\u0720\u0721\3\2\2\2\u0721\u0723\3\2\2\2\u0722\u0720\3\2\2\2\u0723\u0724"+ - "\5\u0158\u00ad\2\u0724\u0725\5r:\2\u0725\u0157\3\2\2\2\u0726\u072b\5~"+ - "@\2\u0727\u0728\7Y\2\2\u0728\u072a\5\22\n\2\u0729\u0727\3\2\2\2\u072a"+ - "\u072d\3\2\2\2\u072b\u0729\3\2\2\2\u072b\u072c\3\2\2\2\u072c\u0159\3\2"+ - "\2\2\u072d\u072b\3\2\2\2\u072e\u072f\7\26\2\2\u072f\u0730\5\u00fe\u0080"+ - "\2\u0730\u015b\3\2\2\2\u0731\u0732\7\62\2\2\u0732\u0733\5\u015e\u00b0"+ - "\2\u0733\u0735\5\u00fe\u0080\2\u0734\u0736\5\u0152\u00aa\2\u0735\u0734"+ - "\3\2\2\2\u0735\u0736\3\2\2\2\u0736\u0738\3\2\2\2\u0737\u0739\5\u015a\u00ae"+ - "\2\u0738\u0737\3\2\2\2\u0738\u0739\3\2\2\2\u0739\u015d\3\2\2\2\u073a\u073b"+ - "\7<\2\2\u073b\u073d\5\u0160\u00b1\2\u073c\u073e\7B\2\2\u073d\u073c\3\2"+ - "\2\2\u073d\u073e\3\2\2\2\u073e\u073f\3\2\2\2\u073f\u0740\7=\2\2\u0740"+ - "\u015f\3\2\2\2\u0741\u0746\5\u0162\u00b2\2\u0742\u0743\7B\2\2\u0743\u0745"+ - "\5\u0162\u00b2\2\u0744\u0742\3\2\2\2\u0745\u0748\3\2\2\2\u0746\u0744\3"+ - "\2\2\2\u0746\u0747\3\2\2\2\u0747\u0161\3\2\2\2\u0748\u0746\3\2\2\2\u0749"+ - "\u074b\5\u009eP\2\u074a\u0749\3\2\2\2\u074b\u074e\3\2\2\2\u074c\u074a"+ - "\3\2\2\2\u074c\u074d\3\2\2\2\u074d\u074f\3\2\2\2\u074e\u074c\3\2\2\2\u074f"+ - "\u0750\5v<\2\u0750\u0751\5r:\2\u0751\u0752\7E\2\2\u0752\u0753\5\u01a2"+ - "\u00d2\2\u0753\u0163\3\2\2\2\u0754\u0757\5\u0172\u00ba\2\u0755\u0757\5"+ - "\u019a\u00ce\2\u0756\u0754\3\2\2\2\u0756\u0755\3\2\2\2\u0757\u075b\3\2"+ - "\2\2\u0758\u075a\5\u016c\u00b7\2\u0759\u0758\3\2\2\2\u075a\u075d\3\2\2"+ - "\2\u075b\u0759\3\2\2\2\u075b\u075c\3\2\2\2\u075c\u0165\3\2\2\2\u075d\u075b"+ - "\3\2\2\2\u075e\u077c\5\2\2\2\u075f\u0764\58\35\2\u0760\u0761\7@\2\2\u0761"+ - "\u0763\7A\2\2\u0762\u0760\3\2\2\2\u0763\u0766\3\2\2\2\u0764\u0762\3\2"+ - "\2\2\u0764\u0765\3\2\2\2\u0765\u0767\3\2\2\2\u0766\u0764\3\2\2\2\u0767"+ - "\u0768\7D\2\2\u0768\u0769\7\f\2\2\u0769\u077c\3\2\2\2\u076a\u076b\7\63"+ - "\2\2\u076b\u076c\7D\2\2\u076c\u077c\7\f\2\2\u076d\u077c\7.\2\2\u076e\u076f"+ - "\58\35\2\u076f\u0770\7D\2\2\u0770\u0771\7.\2\2\u0771\u077c\3\2\2\2\u0772"+ - "\u0773\7<\2\2\u0773\u0774\5\u01a2\u00d2\2\u0774\u0775\7=\2\2\u0775\u077c"+ - "\3\2\2\2\u0776\u077c\5\u0178\u00bd\2\u0777\u077c\5\u0180\u00c1\2\u0778"+ - "\u077c\5\u0186\u00c4\2\u0779\u077c\5\u018c\u00c7\2\u077a\u077c\5\u0194"+ - "\u00cb\2\u077b\u075e\3\2\2\2\u077b\u075f\3\2\2\2\u077b\u076a\3\2\2\2\u077b"+ - "\u076d\3\2\2\2\u077b\u076e\3\2\2\2\u077b\u0772\3\2\2\2\u077b\u0776\3\2"+ - "\2\2\u077b\u0777\3\2\2\2\u077b\u0778\3\2\2\2\u077b\u0779\3\2\2\2\u077b"+ - "\u077a\3\2\2\2\u077c\u0167\3\2\2\2\u077d\u077e\3\2\2\2\u077e\u0169\3\2"+ - "\2\2\u077f\u079c\5\2\2\2\u0780\u0785\58\35\2\u0781\u0782\7@\2\2\u0782"+ - "\u0784\7A\2\2\u0783\u0781\3\2\2\2\u0784\u0787\3\2\2\2\u0785\u0783\3\2"+ - "\2\2\u0785\u0786\3\2\2\2\u0786\u0788\3\2\2\2\u0787\u0785\3\2\2\2\u0788"+ - "\u0789\7D\2\2\u0789\u078a\7\f\2\2\u078a\u079c\3\2\2\2\u078b\u078c\7\63"+ - "\2\2\u078c\u078d\7D\2\2\u078d\u079c\7\f\2\2\u078e\u079c\7.\2\2\u078f\u0790"+ - "\58\35\2\u0790\u0791\7D\2\2\u0791\u0792\7.\2\2\u0792\u079c\3\2\2\2\u0793"+ - "\u0794\7<\2\2\u0794\u0795\5\u01a2\u00d2\2\u0795\u0796\7=\2\2\u0796\u079c"+ - "\3\2\2\2\u0797\u079c\5\u0178\u00bd\2\u0798\u079c\5\u0180\u00c1\2\u0799"+ - "\u079c\5\u018c\u00c7\2\u079a\u079c\5\u0194\u00cb\2\u079b\u077f\3\2\2\2"+ - "\u079b\u0780\3\2\2\2\u079b\u078b\3\2\2\2\u079b\u078e\3\2\2\2\u079b\u078f"+ - "\3\2\2\2\u079b\u0793\3\2\2\2\u079b\u0797\3\2\2\2\u079b\u0798\3\2\2\2\u079b"+ - "\u0799\3\2\2\2\u079b\u079a\3\2\2\2\u079c\u016b\3\2\2\2\u079d\u07a3\5\u017a"+ - "\u00be\2\u079e\u07a3\5\u0182\u00c2\2\u079f\u07a3\5\u0188\u00c5\2\u07a0"+ - "\u07a3\5\u018e\u00c8\2\u07a1\u07a3\5\u0196\u00cc\2\u07a2\u079d\3\2\2\2"+ - "\u07a2\u079e\3\2\2\2\u07a2\u079f\3\2\2\2\u07a2\u07a0\3\2\2\2\u07a2\u07a1"+ - "\3\2\2\2\u07a3\u016d\3\2\2\2\u07a4\u07a5\3\2\2\2\u07a5\u016f\3\2\2\2\u07a6"+ - "\u07ab\5\u017a\u00be\2\u07a7\u07ab\5\u0182\u00c2\2\u07a8\u07ab\5\u018e"+ - "\u00c8\2\u07a9\u07ab\5\u0196\u00cc\2\u07aa\u07a6\3\2\2\2\u07aa\u07a7\3"+ - "\2\2\2\u07aa\u07a8\3\2\2\2\u07aa\u07a9\3\2\2\2\u07ab\u0171\3\2\2\2\u07ac"+ - "\u07d5\5\2\2\2\u07ad\u07b2\58\35\2\u07ae\u07af\7@\2\2\u07af\u07b1\7A\2"+ - "\2\u07b0\u07ae\3\2\2\2\u07b1\u07b4\3\2\2\2\u07b2\u07b0\3\2\2\2\u07b2\u07b3"+ - "\3\2\2\2\u07b3\u07b5\3\2\2\2\u07b4\u07b2\3\2\2\2\u07b5\u07b6\7D\2\2\u07b6"+ - "\u07b7\7\f\2\2\u07b7\u07d5\3\2\2\2\u07b8\u07bd\5x=\2\u07b9\u07ba\7@\2"+ - "\2\u07ba\u07bc\7A\2\2\u07bb\u07b9\3\2\2\2\u07bc\u07bf\3\2\2\2\u07bd\u07bb"+ - "\3\2\2\2\u07bd\u07be\3\2\2\2\u07be\u07c0\3\2\2\2\u07bf\u07bd\3\2\2\2\u07c0"+ - "\u07c1\7D\2\2\u07c1\u07c2\7\f\2\2\u07c2\u07d5\3\2\2\2\u07c3\u07c4\7\63"+ - "\2\2\u07c4\u07c5\7D\2\2\u07c5\u07d5\7\f\2\2\u07c6\u07d5\7.\2\2\u07c7\u07c8"+ - "\58\35\2\u07c8\u07c9\7D\2\2\u07c9\u07ca\7.\2\2\u07ca\u07d5\3\2\2\2\u07cb"+ - "\u07cc\7<\2\2\u07cc\u07cd\5\u01a2\u00d2\2\u07cd\u07ce\7=\2\2\u07ce\u07d5"+ - "\3\2\2\2\u07cf\u07d5\5\u017c\u00bf\2\u07d0\u07d5\5\u0184\u00c3\2\u07d1"+ - "\u07d5\5\u018a\u00c6\2\u07d2\u07d5\5\u0190\u00c9\2\u07d3\u07d5\5\u0198"+ - "\u00cd\2\u07d4\u07ac\3\2\2\2\u07d4\u07ad\3\2\2\2\u07d4\u07b8\3\2\2\2\u07d4"+ - "\u07c3\3\2\2\2\u07d4\u07c6\3\2\2\2\u07d4\u07c7\3\2\2\2\u07d4\u07cb\3\2"+ - "\2\2\u07d4\u07cf\3\2\2\2\u07d4\u07d0\3\2\2\2\u07d4\u07d1\3\2\2\2\u07d4"+ - "\u07d2\3\2\2\2\u07d4\u07d3\3\2\2\2\u07d5\u0173\3\2\2\2\u07d6\u07d7\3\2"+ - "\2\2\u07d7\u0175\3\2\2\2\u07d8\u0800\5\2\2\2\u07d9\u07de\58\35\2\u07da"+ - "\u07db\7@\2\2\u07db\u07dd\7A\2\2\u07dc\u07da\3\2\2\2\u07dd\u07e0\3\2\2"+ - "\2\u07de\u07dc\3\2\2\2\u07de\u07df\3\2\2\2\u07df\u07e1\3\2\2\2\u07e0\u07de"+ - "\3\2\2\2\u07e1\u07e2\7D\2\2\u07e2\u07e3\7\f\2\2\u07e3\u0800\3\2\2\2\u07e4"+ - "\u07e9\5x=\2\u07e5\u07e6\7@\2\2\u07e6\u07e8\7A\2\2\u07e7\u07e5\3\2\2\2"+ - "\u07e8\u07eb\3\2\2\2\u07e9\u07e7\3\2\2\2\u07e9\u07ea\3\2\2\2\u07ea\u07ec"+ - "\3\2\2\2\u07eb\u07e9\3\2\2\2\u07ec\u07ed\7D\2\2\u07ed\u07ee\7\f\2\2\u07ee"+ - "\u0800\3\2\2\2\u07ef\u07f0\7\63\2\2\u07f0\u07f1\7D\2\2\u07f1\u0800\7\f"+ - "\2\2\u07f2\u0800\7.\2\2\u07f3\u07f4\58\35\2\u07f4\u07f5\7D\2\2\u07f5\u07f6"+ - "\7.\2\2\u07f6\u0800\3\2\2\2\u07f7\u07f8\7<\2\2\u07f8\u07f9\5\u01a2\u00d2"+ - "\2\u07f9\u07fa\7=\2\2\u07fa\u0800\3\2\2\2\u07fb\u0800\5\u017c\u00bf\2"+ - "\u07fc\u0800\5\u0184\u00c3\2\u07fd\u0800\5\u0190\u00c9\2\u07fe\u0800\5"+ - "\u0198\u00cd\2\u07ff\u07d8\3\2\2\2\u07ff\u07d9\3\2\2\2\u07ff\u07e4\3\2"+ - "\2\2\u07ff\u07ef\3\2\2\2\u07ff\u07f2\3\2\2\2\u07ff\u07f3\3\2\2\2\u07ff"+ - "\u07f7\3\2\2\2\u07ff\u07fb\3\2\2\2\u07ff\u07fc\3\2\2\2\u07ff\u07fd\3\2"+ - "\2\2\u07ff\u07fe\3\2\2\2\u0800\u0177\3\2\2\2\u0801\u0803\7\"\2\2\u0802"+ - "\u0804\5,\27\2\u0803\u0802\3\2\2\2\u0803\u0804\3\2\2\2\u0804\u0808\3\2"+ - "\2\2\u0805\u0807\5\u00e8u\2\u0806\u0805\3\2\2\2\u0807\u080a\3\2\2\2\u0808"+ - "\u0806\3\2\2\2\u0808\u0809\3\2\2\2\u0809\u080b\3\2\2\2\u080a\u0808\3\2"+ - "\2\2\u080b\u0816\7i\2\2\u080c\u0810\7D\2\2\u080d\u080f\5\u00e8u\2\u080e"+ - "\u080d\3\2\2\2\u080f\u0812\3\2\2\2\u0810\u080e\3\2\2\2\u0810\u0811\3\2"+ - "\2\2\u0811\u0813\3\2\2\2\u0812\u0810\3\2\2\2\u0813\u0815\7i\2\2\u0814"+ - "\u080c\3\2\2\2\u0815\u0818\3\2\2\2\u0816\u0814\3\2\2\2\u0816\u0817\3\2"+ - "\2\2\u0817\u081a\3\2\2\2\u0818\u0816\3\2\2\2\u0819\u081b\5\u017e\u00c0"+ - "\2\u081a\u0819\3\2\2\2\u081a\u081b\3\2\2\2\u081b\u081c\3\2\2\2\u081c\u081e"+ - "\7<\2\2\u081d\u081f\5\u0192\u00ca\2\u081e\u081d\3\2\2\2\u081e\u081f\3"+ - "\2\2\2\u081f\u0820\3\2\2\2\u0820\u0822\7=\2\2\u0821\u0823\5d\63\2\u0822"+ - "\u0821\3\2\2\2\u0822\u0823\3\2\2\2\u0823\u0855\3\2\2\2\u0824\u0825\5<"+ - "\37\2\u0825\u0826\7D\2\2\u0826\u0828\7\"\2\2\u0827\u0829\5,\27\2\u0828"+ - "\u0827\3\2\2\2\u0828\u0829\3\2\2\2\u0829\u082d\3\2\2\2\u082a\u082c\5\u00e8"+ - "u\2\u082b\u082a\3\2\2\2\u082c\u082f\3\2\2\2\u082d\u082b\3\2\2\2\u082d"+ - "\u082e\3\2\2\2\u082e\u0830\3\2\2\2\u082f\u082d\3\2\2\2\u0830\u0832\7i"+ - "\2\2\u0831\u0833\5\u017e\u00c0\2\u0832\u0831\3\2\2\2\u0832\u0833\3\2\2"+ - "\2\u0833\u0834\3\2\2\2\u0834\u0836\7<\2\2\u0835\u0837\5\u0192\u00ca\2"+ - "\u0836\u0835\3\2\2\2\u0836\u0837\3\2\2\2\u0837\u0838\3\2\2\2\u0838\u083a"+ - "\7=\2\2\u0839\u083b\5d\63\2\u083a\u0839\3\2\2\2\u083a\u083b\3\2\2\2\u083b"+ - "\u0855\3\2\2\2\u083c\u083d\5\u0164\u00b3\2\u083d\u083e\7D\2\2\u083e\u0840"+ - "\7\"\2\2\u083f\u0841\5,\27\2\u0840\u083f\3\2\2\2\u0840\u0841\3\2\2\2\u0841"+ - "\u0845\3\2\2\2\u0842\u0844\5\u00e8u\2\u0843\u0842\3\2\2\2\u0844\u0847"+ - "\3\2\2\2\u0845\u0843\3\2\2\2\u0845\u0846\3\2\2\2\u0846\u0848\3\2\2\2\u0847"+ - "\u0845\3\2\2\2\u0848\u084a\7i\2\2\u0849\u084b\5\u017e\u00c0\2\u084a\u0849"+ - "\3\2\2\2\u084a\u084b\3\2\2\2\u084b\u084c\3\2\2\2\u084c\u084e\7<\2\2\u084d"+ - "\u084f\5\u0192\u00ca\2\u084e\u084d\3\2\2\2\u084e\u084f\3\2\2\2\u084f\u0850"+ - "\3\2\2\2\u0850\u0852\7=\2\2\u0851\u0853\5d\63\2\u0852\u0851\3\2\2\2\u0852"+ - "\u0853\3\2\2\2\u0853\u0855\3\2\2\2\u0854\u0801\3\2\2\2\u0854\u0824\3\2"+ - "\2\2\u0854\u083c\3\2\2\2\u0855\u0179\3\2\2\2\u0856\u0857\7D\2\2\u0857"+ - "\u0859\7\"\2\2\u0858\u085a\5,\27\2\u0859\u0858\3\2\2\2\u0859\u085a\3\2"+ - "\2\2\u085a\u085e\3\2\2\2\u085b\u085d\5\u00e8u\2\u085c\u085b\3\2\2\2\u085d"+ - "\u0860\3\2\2\2\u085e\u085c\3\2\2\2\u085e\u085f\3\2\2\2\u085f\u0861\3\2"+ - "\2\2\u0860\u085e\3\2\2\2\u0861\u0863\7i\2\2\u0862\u0864\5\u017e\u00c0"+ - "\2\u0863\u0862\3\2\2\2\u0863\u0864\3\2\2\2\u0864\u0865\3\2\2\2\u0865\u0867"+ - "\7<\2\2\u0866\u0868\5\u0192\u00ca\2\u0867\u0866\3\2\2\2\u0867\u0868\3"+ - "\2\2\2\u0868\u0869\3\2\2\2\u0869\u086b\7=\2\2\u086a\u086c\5d\63\2\u086b"+ - "\u086a\3\2\2\2\u086b\u086c\3\2\2\2\u086c\u017b\3\2\2\2\u086d\u086f\7\""+ - "\2\2\u086e\u0870\5,\27\2\u086f\u086e\3\2\2\2\u086f\u0870\3\2\2\2\u0870"+ - "\u0874\3\2\2\2\u0871\u0873\5\u00e8u\2\u0872\u0871\3\2\2\2\u0873\u0876"+ - "\3\2\2\2\u0874\u0872\3\2\2\2\u0874\u0875\3\2\2\2\u0875\u0877\3\2\2\2\u0876"+ - "\u0874\3\2\2\2\u0877\u0882\7i\2\2\u0878\u087c\7D\2\2\u0879\u087b\5\u00e8"+ - "u\2\u087a\u0879\3\2\2\2\u087b\u087e\3\2\2\2\u087c\u087a\3\2\2\2\u087c"+ - "\u087d\3\2\2\2\u087d\u087f\3\2\2\2\u087e\u087c\3\2\2\2\u087f\u0881\7i"+ - "\2\2\u0880\u0878\3\2\2\2\u0881\u0884\3\2\2\2\u0882\u0880\3\2\2\2\u0882"+ - "\u0883\3\2\2\2\u0883\u0886\3\2\2\2\u0884\u0882\3\2\2\2\u0885\u0887\5\u017e"+ - "\u00c0\2\u0886\u0885\3\2\2\2\u0886\u0887\3\2\2\2\u0887\u0888\3\2\2\2\u0888"+ - "\u088a\7<\2\2\u0889\u088b\5\u0192\u00ca\2\u088a\u0889\3\2\2\2\u088a\u088b"+ - "\3\2\2\2\u088b\u088c\3\2\2\2\u088c\u088e\7=\2\2\u088d\u088f\5d\63\2\u088e"+ - "\u088d\3\2\2\2\u088e\u088f\3\2\2\2\u088f\u08a9\3\2\2\2\u0890\u0891\5<"+ - "\37\2\u0891\u0892\7D\2\2\u0892\u0894\7\"\2\2\u0893\u0895\5,\27\2\u0894"+ - "\u0893\3\2\2\2\u0894\u0895\3\2\2\2\u0895\u0899\3\2\2\2\u0896\u0898\5\u00e8"+ - "u\2\u0897\u0896\3\2\2\2\u0898\u089b\3\2\2\2\u0899\u0897\3\2\2\2\u0899"+ - "\u089a\3\2\2\2\u089a\u089c\3\2\2\2\u089b\u0899\3\2\2\2\u089c\u089e\7i"+ - "\2\2\u089d\u089f\5\u017e\u00c0\2\u089e\u089d\3\2\2\2\u089e\u089f\3\2\2"+ - "\2\u089f\u08a0\3\2\2\2\u08a0\u08a2\7<\2\2\u08a1\u08a3\5\u0192\u00ca\2"+ - "\u08a2\u08a1\3\2\2\2\u08a2\u08a3\3\2\2\2\u08a3\u08a4\3\2\2\2\u08a4\u08a6"+ - "\7=\2\2\u08a5\u08a7\5d\63\2\u08a6\u08a5\3\2\2\2\u08a6\u08a7\3\2\2\2\u08a7"+ - "\u08a9\3\2\2\2\u08a8\u086d\3\2\2\2\u08a8\u0890\3\2\2\2\u08a9\u017d\3\2"+ - "\2\2\u08aa\u08ae\5,\27\2\u08ab\u08ac\7G\2\2\u08ac\u08ae\7F\2\2\u08ad\u08aa"+ - "\3\2\2\2\u08ad\u08ab\3\2\2\2\u08ae\u017f\3\2\2\2\u08af\u08b0\5\u0164\u00b3"+ - "\2\u08b0\u08b1\7D\2\2\u08b1\u08b2\7i\2\2\u08b2\u08bd\3\2\2\2\u08b3\u08b4"+ - "\7+\2\2\u08b4\u08b5\7D\2\2\u08b5\u08bd\7i\2\2\u08b6\u08b7\58\35\2\u08b7"+ - "\u08b8\7D\2\2\u08b8\u08b9\7+\2\2\u08b9\u08ba\7D\2\2\u08ba\u08bb\7i\2\2"+ - "\u08bb\u08bd\3\2\2\2\u08bc\u08af\3\2\2\2\u08bc\u08b3\3\2\2\2\u08bc\u08b6"+ - "\3\2\2\2\u08bd\u0181\3\2\2\2\u08be\u08bf\7D\2\2\u08bf\u08c0\7i\2\2\u08c0"+ - "\u0183\3\2\2\2\u08c1\u08c2\7+\2\2\u08c2\u08c3\7D\2\2\u08c3\u08cb\7i\2"+ - "\2\u08c4\u08c5\58\35\2\u08c5\u08c6\7D\2\2\u08c6\u08c7\7+\2\2\u08c7\u08c8"+ - "\7D\2\2\u08c8\u08c9\7i\2\2\u08c9\u08cb\3\2\2\2\u08ca\u08c1\3\2\2\2\u08ca"+ - "\u08c4\3\2\2\2\u08cb\u0185\3\2\2\2\u08cc\u08cd\5<\37\2\u08cd\u08ce\7@"+ - "\2\2\u08ce\u08cf\5\u01a2\u00d2\2\u08cf\u08d0\7A\2\2\u08d0\u08d7\3\2\2"+ - "\2\u08d1\u08d2\5\u016a\u00b6\2\u08d2\u08d3\7@\2\2\u08d3\u08d4\5\u01a2"+ - "\u00d2\2\u08d4\u08d5\7A\2\2\u08d5\u08d7\3\2\2\2\u08d6\u08cc\3\2\2\2\u08d6"+ - "\u08d1\3\2\2\2\u08d7\u08df\3\2\2\2\u08d8\u08d9\5\u0168\u00b5\2\u08d9\u08da"+ - "\7@\2\2\u08da\u08db\5\u01a2\u00d2\2\u08db\u08dc\7A\2\2\u08dc\u08de\3\2"+ - "\2\2\u08dd\u08d8\3\2\2\2\u08de\u08e1\3\2\2\2\u08df\u08dd\3\2\2\2\u08df"+ - "\u08e0\3\2\2\2\u08e0\u0187\3\2\2\2\u08e1\u08df\3\2\2\2\u08e2\u08e3\5\u0170"+ - "\u00b9\2\u08e3\u08e4\7@\2\2\u08e4\u08e5\5\u01a2\u00d2\2\u08e5\u08e6\7"+ - "A\2\2\u08e6\u08ee\3\2\2\2\u08e7\u08e8\5\u016e\u00b8\2\u08e8\u08e9\7@\2"+ - "\2\u08e9\u08ea\5\u01a2\u00d2\2\u08ea\u08eb\7A\2\2\u08eb\u08ed\3\2\2\2"+ - "\u08ec\u08e7\3\2\2\2\u08ed\u08f0\3\2\2\2\u08ee\u08ec\3\2\2\2\u08ee\u08ef"+ - "\3\2\2\2\u08ef\u0189\3\2\2\2\u08f0\u08ee\3\2\2\2\u08f1\u08f2\5<\37\2\u08f2"+ - "\u08f3\7@\2\2\u08f3\u08f4\5\u01a2\u00d2\2\u08f4\u08f5\7A\2\2\u08f5\u08fc"+ - "\3\2\2\2\u08f6\u08f7\5\u0176\u00bc\2\u08f7\u08f8\7@\2\2\u08f8\u08f9\5"+ - "\u01a2\u00d2\2\u08f9\u08fa\7A\2\2\u08fa\u08fc\3\2\2\2\u08fb\u08f1\3\2"+ - "\2\2\u08fb\u08f6\3\2\2\2\u08fc\u0904\3\2\2\2\u08fd\u08fe\5\u0174\u00bb"+ - "\2\u08fe\u08ff\7@\2\2\u08ff\u0900\5\u01a2\u00d2\2\u0900\u0901\7A\2\2\u0901"+ - "\u0903\3\2\2\2\u0902\u08fd\3\2\2\2\u0903\u0906\3\2\2\2\u0904\u0902\3\2"+ - "\2\2\u0904\u0905\3\2\2\2\u0905\u018b\3\2\2\2\u0906\u0904\3\2\2\2\u0907"+ - "\u0908\5> \2\u0908\u090a\7<\2\2\u0909\u090b\5\u0192\u00ca\2\u090a\u0909"+ - "\3\2\2\2\u090a\u090b\3\2\2\2\u090b\u090c\3\2\2\2\u090c\u090d\7=\2\2\u090d"+ - "\u094c\3\2\2\2\u090e\u090f\58\35\2\u090f\u0911\7D\2\2\u0910\u0912\5,\27"+ - "\2\u0911\u0910\3\2\2\2\u0911\u0912\3\2\2\2\u0912\u0913\3\2\2\2\u0913\u0914"+ - "\7i\2\2\u0914\u0916\7<\2\2\u0915\u0917\5\u0192\u00ca\2\u0916\u0915\3\2"+ - "\2\2\u0916\u0917\3\2\2\2\u0917\u0918\3\2\2\2\u0918\u0919\7=\2\2\u0919"+ - "\u094c\3\2\2\2\u091a\u091b\5<\37\2\u091b\u091d\7D\2\2\u091c\u091e\5,\27"+ - "\2\u091d\u091c\3\2\2\2\u091d\u091e\3\2\2\2\u091e\u091f\3\2\2\2\u091f\u0920"+ - "\7i\2\2\u0920\u0922\7<\2\2\u0921\u0923\5\u0192\u00ca\2\u0922\u0921\3\2"+ - "\2\2\u0922\u0923\3\2\2\2\u0923\u0924\3\2\2\2\u0924\u0925\7=\2\2\u0925"+ - "\u094c\3\2\2\2\u0926\u0927\5\u0164\u00b3\2\u0927\u0929\7D\2\2\u0928\u092a"+ - "\5,\27\2\u0929\u0928\3\2\2\2\u0929\u092a\3\2\2\2\u092a\u092b\3\2\2\2\u092b"+ - "\u092c\7i\2\2\u092c\u092e\7<\2\2\u092d\u092f\5\u0192\u00ca\2\u092e\u092d"+ - "\3\2\2\2\u092e\u092f\3\2\2\2\u092f\u0930\3\2\2\2\u0930\u0931\7=\2\2\u0931"+ - "\u094c\3\2\2\2\u0932\u0933\7+\2\2\u0933\u0935\7D\2\2\u0934\u0936\5,\27"+ - "\2\u0935\u0934\3\2\2\2\u0935\u0936\3\2\2\2\u0936\u0937\3\2\2\2\u0937\u0938"+ - "\7i\2\2\u0938\u093a\7<\2\2\u0939\u093b\5\u0192\u00ca\2\u093a\u0939\3\2"+ - "\2\2\u093a\u093b\3\2\2\2\u093b\u093c\3\2\2\2\u093c\u094c\7=\2\2\u093d"+ - "\u093e\58\35\2\u093e\u093f\7D\2\2\u093f\u0940\7+\2\2\u0940\u0942\7D\2"+ - "\2\u0941\u0943\5,\27\2\u0942\u0941\3\2\2\2\u0942\u0943\3\2\2\2\u0943\u0944"+ - "\3\2\2\2\u0944\u0945\7i\2\2\u0945\u0947\7<\2\2\u0946\u0948\5\u0192\u00ca"+ - "\2\u0947\u0946\3\2\2\2\u0947\u0948\3\2\2\2\u0948\u0949\3\2\2\2\u0949\u094a"+ - "\7=\2\2\u094a\u094c\3\2\2\2\u094b\u0907\3\2\2\2\u094b\u090e\3\2\2\2\u094b"+ - "\u091a\3\2\2\2\u094b\u0926\3\2\2\2\u094b\u0932\3\2\2\2\u094b\u093d\3\2"+ - "\2\2\u094c\u018d\3\2\2\2\u094d\u094f\7D\2\2\u094e\u0950\5,\27\2\u094f"+ - "\u094e\3\2\2\2\u094f\u0950\3\2\2\2\u0950\u0951\3\2\2\2\u0951\u0952\7i"+ - "\2\2\u0952\u0954\7<\2\2\u0953\u0955\5\u0192\u00ca\2\u0954\u0953\3\2\2"+ - "\2\u0954\u0955\3\2\2\2\u0955\u0956\3\2\2\2\u0956\u0957\7=\2\2\u0957\u018f"+ - "\3\2\2\2\u0958\u0959\5> \2\u0959\u095b\7<\2\2\u095a\u095c\5\u0192\u00ca"+ - "\2\u095b\u095a\3\2\2\2\u095b\u095c\3\2\2\2\u095c\u095d\3\2\2\2\u095d\u095e"+ - "\7=\2\2\u095e\u0991\3\2\2\2\u095f\u0960\58\35\2\u0960\u0962\7D\2\2\u0961"+ - "\u0963\5,\27\2\u0962\u0961\3\2\2\2\u0962\u0963\3\2\2\2\u0963\u0964\3\2"+ - "\2\2\u0964\u0965\7i\2\2\u0965\u0967\7<\2\2\u0966\u0968\5\u0192\u00ca\2"+ - "\u0967\u0966\3\2\2\2\u0967\u0968\3\2\2"; - private static final String _serializedATNSegment1 = - "\2\u0968\u0969\3\2\2\2\u0969\u096a\7=\2\2\u096a\u0991\3\2\2\2\u096b\u096c"+ - "\5<\37\2\u096c\u096e\7D\2\2\u096d\u096f\5,\27\2\u096e\u096d\3\2\2\2\u096e"+ - "\u096f\3\2\2\2\u096f\u0970\3\2\2\2\u0970\u0971\7i\2\2\u0971\u0973\7<\2"+ - "\2\u0972\u0974\5\u0192\u00ca\2\u0973\u0972\3\2\2\2\u0973\u0974\3\2\2\2"+ - "\u0974\u0975\3\2\2\2\u0975\u0976\7=\2\2\u0976\u0991\3\2\2\2\u0977\u0978"+ - "\7+\2\2\u0978\u097a\7D\2\2\u0979\u097b\5,\27\2\u097a\u0979\3\2\2\2\u097a"+ - "\u097b\3\2\2\2\u097b\u097c\3\2\2\2\u097c\u097d\7i\2\2\u097d\u097f\7<\2"+ - "\2\u097e\u0980\5\u0192\u00ca\2\u097f\u097e\3\2\2\2\u097f\u0980\3\2\2\2"+ - "\u0980\u0981\3\2\2\2\u0981\u0991\7=\2\2\u0982\u0983\58\35\2\u0983\u0984"+ - "\7D\2\2\u0984\u0985\7+\2\2\u0985\u0987\7D\2\2\u0986\u0988\5,\27\2\u0987"+ - "\u0986\3\2\2\2\u0987\u0988\3\2\2\2\u0988\u0989\3\2\2\2\u0989\u098a\7i"+ - "\2\2\u098a\u098c\7<\2\2\u098b\u098d\5\u0192\u00ca\2\u098c\u098b\3\2\2"+ - "\2\u098c\u098d\3\2\2\2\u098d\u098e\3\2\2\2\u098e\u098f\7=\2\2\u098f\u0991"+ - "\3\2\2\2\u0990\u0958\3\2\2\2\u0990\u095f\3\2\2\2\u0990\u096b\3\2\2\2\u0990"+ - "\u0977\3\2\2\2\u0990\u0982\3\2\2\2\u0991\u0191\3\2\2\2\u0992\u0997\5\u01a2"+ - "\u00d2\2\u0993\u0994\7C\2\2\u0994\u0996\5\u01a2\u00d2\2\u0995\u0993\3"+ - "\2\2\2\u0996\u0999\3\2\2\2\u0997\u0995\3\2\2\2\u0997\u0998\3\2\2\2\u0998"+ - "\u0193\3\2\2\2\u0999\u0997\3\2\2\2\u099a\u099b\5<\37\2\u099b\u099d\7]"+ - "\2\2\u099c\u099e\5,\27\2\u099d\u099c\3\2\2\2\u099d\u099e\3\2\2\2\u099e"+ - "\u099f\3\2\2\2\u099f\u09a0\7i\2\2\u09a0\u09ca\3\2\2\2\u09a1\u09a2\5\16"+ - "\b\2\u09a2\u09a4\7]\2\2\u09a3\u09a5\5,\27\2\u09a4\u09a3\3\2\2\2\u09a4"+ - "\u09a5\3\2\2\2\u09a5\u09a6\3\2\2\2\u09a6\u09a7\7i\2\2\u09a7\u09ca\3\2"+ - "\2\2\u09a8\u09a9\5\u0164\u00b3\2\u09a9\u09ab\7]\2\2\u09aa\u09ac\5,\27"+ - "\2\u09ab\u09aa\3\2\2\2\u09ab\u09ac\3\2\2\2\u09ac\u09ad\3\2\2\2\u09ad\u09ae"+ - "\7i\2\2\u09ae\u09ca\3\2\2\2\u09af\u09b0\7+\2\2\u09b0\u09b2\7]\2\2\u09b1"+ - "\u09b3\5,\27\2\u09b2\u09b1\3\2\2\2\u09b2\u09b3\3\2\2\2\u09b3\u09b4\3\2"+ - "\2\2\u09b4\u09ca\7i\2\2\u09b5\u09b6\58\35\2\u09b6\u09b7\7D\2\2\u09b7\u09b8"+ - "\7+\2\2\u09b8\u09ba\7]\2\2\u09b9\u09bb\5,\27\2\u09ba\u09b9\3\2\2\2\u09ba"+ - "\u09bb\3\2\2\2\u09bb\u09bc\3\2\2\2\u09bc\u09bd\7i\2\2\u09bd\u09ca\3\2"+ - "\2\2\u09be\u09bf\5\22\n\2\u09bf\u09c1\7]\2\2\u09c0\u09c2\5,\27\2\u09c1"+ - "\u09c0\3\2\2\2\u09c1\u09c2\3\2\2\2\u09c2\u09c3\3\2\2\2\u09c3\u09c4\7\""+ - "\2\2\u09c4\u09ca\3\2\2\2\u09c5\u09c6\5 \21\2\u09c6\u09c7\7]\2\2\u09c7"+ - "\u09c8\7\"\2\2\u09c8\u09ca\3\2\2\2\u09c9\u099a\3\2\2\2\u09c9\u09a1\3\2"+ - "\2\2\u09c9\u09a8\3\2\2\2\u09c9\u09af\3\2\2\2\u09c9\u09b5\3\2\2\2\u09c9"+ - "\u09be\3\2\2\2\u09c9\u09c5\3\2\2\2\u09ca\u0195\3\2\2\2\u09cb\u09cd\7]"+ - "\2\2\u09cc\u09ce\5,\27\2\u09cd\u09cc\3\2\2\2\u09cd\u09ce\3\2\2\2\u09ce"+ - "\u09cf\3\2\2\2\u09cf\u09d0\7i\2\2\u09d0\u0197\3\2\2\2\u09d1\u09d2\5<\37"+ - "\2\u09d2\u09d4\7]\2\2\u09d3\u09d5\5,\27\2\u09d4\u09d3\3\2\2\2\u09d4\u09d5"+ - "\3\2\2\2\u09d5\u09d6\3\2\2\2\u09d6\u09d7\7i\2\2\u09d7\u09fa\3\2\2\2\u09d8"+ - "\u09d9\5\16\b\2\u09d9\u09db\7]\2\2\u09da\u09dc\5,\27\2\u09db\u09da\3\2"+ - "\2\2\u09db\u09dc\3\2\2\2\u09dc\u09dd\3\2\2\2\u09dd\u09de\7i\2\2\u09de"+ - "\u09fa\3\2\2\2\u09df\u09e0\7+\2\2\u09e0\u09e2\7]\2\2\u09e1\u09e3\5,\27"+ - "\2\u09e2\u09e1\3\2\2\2\u09e2\u09e3\3\2\2\2\u09e3\u09e4\3\2\2\2\u09e4\u09fa"+ - "\7i\2\2\u09e5\u09e6\58\35\2\u09e6\u09e7\7D\2\2\u09e7\u09e8\7+\2\2\u09e8"+ - "\u09ea\7]\2\2\u09e9\u09eb\5,\27\2\u09ea\u09e9\3\2\2\2\u09ea\u09eb\3\2"+ - "\2\2\u09eb\u09ec\3\2\2\2\u09ec\u09ed\7i\2\2\u09ed\u09fa\3\2\2\2\u09ee"+ - "\u09ef\5\22\n\2\u09ef\u09f1\7]\2\2\u09f0\u09f2\5,\27\2\u09f1\u09f0\3\2"+ - "\2\2\u09f1\u09f2\3\2\2\2\u09f2\u09f3\3\2\2\2\u09f3\u09f4\7\"\2\2\u09f4"+ - "\u09fa\3\2\2\2\u09f5\u09f6\5 \21\2\u09f6\u09f7\7]\2\2\u09f7\u09f8\7\""+ - "\2\2\u09f8\u09fa\3\2\2\2\u09f9\u09d1\3\2\2\2\u09f9\u09d8\3\2\2\2\u09f9"+ - "\u09df\3\2\2\2\u09f9\u09e5\3\2\2\2\u09f9\u09ee\3\2\2\2\u09f9\u09f5\3\2"+ - "\2\2\u09fa\u0199\3\2\2\2\u09fb\u09fc\7\"\2\2\u09fc\u09fd\5\6\4\2\u09fd"+ - "\u09ff\5\u019c\u00cf\2\u09fe\u0a00\5\"\22\2\u09ff\u09fe\3\2\2\2\u09ff"+ - "\u0a00\3\2\2\2\u0a00\u0a12\3\2\2\2\u0a01\u0a02\7\"\2\2\u0a02\u0a03\5\20"+ - "\t\2\u0a03\u0a05\5\u019c\u00cf\2\u0a04\u0a06\5\"\22\2\u0a05\u0a04\3\2"+ - "\2\2\u0a05\u0a06\3\2\2\2\u0a06\u0a12\3\2\2\2\u0a07\u0a08\7\"\2\2\u0a08"+ - "\u0a09\5\6\4\2\u0a09\u0a0a\5\"\22\2\u0a0a\u0a0b\5\u00fa~\2\u0a0b\u0a12"+ - "\3\2\2\2\u0a0c\u0a0d\7\"\2\2\u0a0d\u0a0e\5\20\t\2\u0a0e\u0a0f\5\"\22\2"+ - "\u0a0f\u0a10\5\u00fa~\2\u0a10\u0a12\3\2\2\2\u0a11\u09fb\3\2\2\2\u0a11"+ - "\u0a01\3\2\2\2\u0a11\u0a07\3\2\2\2\u0a11\u0a0c\3\2\2\2\u0a12\u019b\3\2"+ - "\2\2\u0a13\u0a17\5\u019e\u00d0\2\u0a14\u0a16\5\u019e\u00d0\2\u0a15\u0a14"+ - "\3\2\2\2\u0a16\u0a19\3\2\2\2\u0a17\u0a15\3\2\2\2\u0a17\u0a18\3\2\2\2\u0a18"+ - "\u019d\3\2\2\2\u0a19\u0a17\3\2\2\2\u0a1a\u0a1c\5\u00e8u\2\u0a1b\u0a1a"+ - "\3\2\2\2\u0a1c\u0a1f\3\2\2\2\u0a1d\u0a1b\3\2\2\2\u0a1d\u0a1e\3\2\2\2\u0a1e"+ - "\u0a20\3\2\2\2\u0a1f\u0a1d\3\2\2\2\u0a20\u0a21\7@\2\2\u0a21\u0a22\5\u01a2"+ - "\u00d2\2\u0a22\u0a23\7A\2\2\u0a23\u019f\3\2\2\2\u0a24\u0a25\5\u01a2\u00d2"+ - "\2\u0a25\u01a1\3\2\2\2\u0a26\u0a29\5\u01a4\u00d3\2\u0a27\u0a29\5\u01ac"+ - "\u00d7\2\u0a28\u0a26\3\2\2\2\u0a28\u0a27\3\2\2\2\u0a29\u01a3\3\2\2\2\u0a2a"+ - "\u0a2b\5\u01a6\u00d4\2\u0a2b\u0a2c\7\\\2\2\u0a2c\u0a2d\5\u01aa\u00d6\2"+ - "\u0a2d\u01a5\3\2\2\2\u0a2e\u0a35\7i\2\2\u0a2f\u0a31\7<\2\2\u0a30\u0a32"+ - "\5\u0098M\2\u0a31\u0a30\3\2\2\2\u0a31\u0a32\3\2\2\2\u0a32\u0a33\3\2\2"+ - "\2\u0a33\u0a35\7=\2\2\u0a34\u0a2e\3\2\2\2\u0a34\u0a2f\3\2\2\2\u0a35\u01a7"+ - "\3\2\2\2\u0a36\u0a3b\7i\2\2\u0a37\u0a38\7C\2\2\u0a38\u0a3a\7i\2\2\u0a39"+ - "\u0a37\3\2\2\2\u0a3a\u0a3d\3\2\2\2\u0a3b\u0a39\3\2\2\2\u0a3b\u0a3c\3\2"+ - "\2\2\u0a3c\u01a9\3\2\2\2\u0a3d\u0a3b\3\2\2\2\u0a3e\u0a41\5\u01a2\u00d2"+ - "\2\u0a3f\u0a41\5\u00fe\u0080\2\u0a40\u0a3e\3\2\2\2\u0a40\u0a3f\3\2\2\2"+ - "\u0a41\u01ab\3\2\2\2\u0a42\u0a45\5\u01b4\u00db\2\u0a43\u0a45\5\u01ae\u00d8"+ - "\2\u0a44\u0a42\3\2\2\2\u0a44\u0a43\3\2\2\2\u0a45\u01ad\3\2\2\2\u0a46\u0a47"+ - "\5\u01b0\u00d9\2\u0a47\u0a48\5\u01b2\u00da\2\u0a48\u0a49\5\u01a2\u00d2"+ - "\2\u0a49\u01af\3\2\2\2\u0a4a\u0a4e\5<\37\2\u0a4b\u0a4e\5\u0180\u00c1\2"+ - "\u0a4c\u0a4e\5\u0186\u00c4\2\u0a4d\u0a4a\3\2\2\2\u0a4d\u0a4b\3\2\2\2\u0a4d"+ - "\u0a4c\3\2\2\2\u0a4e\u01b1\3\2\2\2\u0a4f\u0a50\t\5\2\2\u0a50\u01b3\3\2"+ - "\2\2\u0a51\u0a59\5\u01b6\u00dc\2\u0a52\u0a53\5\u01b6\u00dc\2\u0a53\u0a54"+ - "\7J\2\2\u0a54\u0a55\5\u01a2\u00d2\2\u0a55\u0a56\7K\2\2\u0a56\u0a57\5\u01b4"+ - "\u00db\2\u0a57\u0a59\3\2\2\2\u0a58\u0a51\3\2\2\2\u0a58\u0a52\3\2\2\2\u0a59"+ - "\u01b5\3\2\2\2\u0a5a\u0a5b\b\u00dc\1\2\u0a5b\u0a5c\5\u01b8\u00dd\2\u0a5c"+ - "\u0a62\3\2\2\2\u0a5d\u0a5e\f\3\2\2\u0a5e\u0a5f\7Q\2\2\u0a5f\u0a61\5\u01b8"+ - "\u00dd\2\u0a60\u0a5d\3\2\2\2\u0a61\u0a64\3\2\2\2\u0a62\u0a60\3\2\2\2\u0a62"+ - "\u0a63\3\2\2\2\u0a63\u01b7\3\2\2\2\u0a64\u0a62\3\2\2\2\u0a65\u0a66\b\u00dd"+ - "\1\2\u0a66\u0a67\5\u01ba\u00de\2\u0a67\u0a6d\3\2\2\2\u0a68\u0a69\f\3\2"+ - "\2\u0a69\u0a6a\7P\2\2\u0a6a\u0a6c\5\u01ba\u00de\2\u0a6b\u0a68\3\2\2\2"+ - "\u0a6c\u0a6f\3\2\2\2\u0a6d\u0a6b\3\2\2\2\u0a6d\u0a6e\3\2\2\2\u0a6e\u01b9"+ - "\3\2\2\2\u0a6f\u0a6d\3\2\2\2\u0a70\u0a71\b\u00de\1\2\u0a71\u0a72\5\u01bc"+ - "\u00df\2\u0a72\u0a78\3\2\2\2\u0a73\u0a74\f\3\2\2\u0a74\u0a75\7Y\2\2\u0a75"+ - "\u0a77\5\u01bc\u00df\2\u0a76\u0a73\3\2\2\2\u0a77\u0a7a\3\2\2\2\u0a78\u0a76"+ - "\3\2\2\2\u0a78\u0a79\3\2\2\2\u0a79\u01bb\3\2\2\2\u0a7a\u0a78\3\2\2\2\u0a7b"+ - "\u0a7c\b\u00df\1\2\u0a7c\u0a7d\5\u01be\u00e0\2\u0a7d\u0a83\3\2\2\2\u0a7e"+ - "\u0a7f\f\3\2\2\u0a7f\u0a80\7Z\2\2\u0a80\u0a82\5\u01be\u00e0\2\u0a81\u0a7e"+ - "\3\2\2\2\u0a82\u0a85\3\2\2\2\u0a83\u0a81\3\2\2\2\u0a83\u0a84\3\2\2\2\u0a84"+ - "\u01bd\3\2\2\2\u0a85\u0a83\3\2\2\2\u0a86\u0a87\b\u00e0\1\2\u0a87\u0a88"+ - "\5\u01c0\u00e1\2\u0a88\u0a8e\3\2\2\2\u0a89\u0a8a\f\3\2\2\u0a8a\u0a8b\7"+ - "X\2\2\u0a8b\u0a8d\5\u01c0\u00e1\2\u0a8c\u0a89\3\2\2\2\u0a8d\u0a90\3\2"+ - "\2\2\u0a8e\u0a8c\3\2\2\2\u0a8e\u0a8f\3\2\2\2\u0a8f\u01bf\3\2\2\2\u0a90"+ - "\u0a8e\3\2\2\2\u0a91\u0a92\b\u00e1\1\2\u0a92\u0a93\5\u01c2\u00e2\2\u0a93"+ - "\u0a9c\3\2\2\2\u0a94\u0a95\f\4\2\2\u0a95\u0a96\7L\2\2\u0a96\u0a9b\5\u01c2"+ - "\u00e2\2\u0a97\u0a98\f\3\2\2\u0a98\u0a99\7O\2\2\u0a99\u0a9b\5\u01c2\u00e2"+ - "\2\u0a9a\u0a94\3\2\2\2\u0a9a\u0a97\3\2\2\2\u0a9b\u0a9e\3\2\2\2\u0a9c\u0a9a"+ - "\3\2\2\2\u0a9c\u0a9d\3\2\2\2\u0a9d\u01c1\3\2\2\2\u0a9e\u0a9c\3\2\2\2\u0a9f"+ - "\u0aa0\b\u00e2\1\2\u0aa0\u0aa1\5\u01c4\u00e3\2\u0aa1\u0ab3\3\2\2\2\u0aa2"+ - "\u0aa3\f\7\2\2\u0aa3\u0aa4\7G\2\2\u0aa4\u0ab2\5\u01c4\u00e3\2\u0aa5\u0aa6"+ - "\f\6\2\2\u0aa6\u0aa7\7F\2\2\u0aa7\u0ab2\5\u01c4\u00e3\2\u0aa8\u0aa9\f"+ - "\5\2\2\u0aa9\u0aaa\7M\2\2\u0aaa\u0ab2\5\u01c4\u00e3\2\u0aab\u0aac\f\4"+ - "\2\2\u0aac\u0aad\7N\2\2\u0aad\u0ab2\5\u01c4\u00e3\2\u0aae\u0aaf\f\3\2"+ - "\2\u0aaf\u0ab0\7\35\2\2\u0ab0\u0ab2\5\16\b\2\u0ab1\u0aa2\3\2\2\2\u0ab1"+ - "\u0aa5\3\2\2\2\u0ab1\u0aa8\3\2\2\2\u0ab1\u0aab\3\2\2\2\u0ab1\u0aae\3\2"+ - "\2\2\u0ab2\u0ab5\3\2\2\2\u0ab3\u0ab1\3\2\2\2\u0ab3\u0ab4\3\2\2\2\u0ab4"+ - "\u01c3\3\2\2\2\u0ab5\u0ab3\3\2\2\2\u0ab6\u0ab7\b\u00e3\1\2\u0ab7\u0ab8"+ - "\5\u01c6\u00e4\2\u0ab8\u0ac8\3\2\2\2\u0ab9\u0aba\f\5\2\2\u0aba\u0abb\7"+ - "G\2\2\u0abb\u0abc\7G\2\2\u0abc\u0ac7\5\u01c6\u00e4\2\u0abd\u0abe\f\4\2"+ - "\2\u0abe\u0abf\7F\2\2\u0abf\u0ac0\7F\2\2\u0ac0\u0ac7\5\u01c6\u00e4\2\u0ac1"+ - "\u0ac2\f\3\2\2\u0ac2\u0ac3\7F\2\2\u0ac3\u0ac4\7F\2\2\u0ac4\u0ac5\7F\2"+ - "\2\u0ac5\u0ac7\5\u01c6\u00e4\2\u0ac6\u0ab9\3\2\2\2\u0ac6\u0abd\3\2\2\2"+ - "\u0ac6\u0ac1\3\2\2\2\u0ac7\u0aca\3\2\2\2\u0ac8\u0ac6\3\2\2\2\u0ac8\u0ac9"+ - "\3\2\2\2\u0ac9\u01c5\3\2\2\2\u0aca\u0ac8\3\2\2\2\u0acb\u0acc\b\u00e4\1"+ - "\2\u0acc\u0acd\5\u01c8\u00e5\2\u0acd\u0ad6\3\2\2\2\u0ace\u0acf\f\4\2\2"+ - "\u0acf\u0ad0\7T\2\2\u0ad0\u0ad5\5\u01c8\u00e5\2\u0ad1\u0ad2\f\3\2\2\u0ad2"+ - "\u0ad3\7U\2\2\u0ad3\u0ad5\5\u01c8\u00e5\2\u0ad4\u0ace\3\2\2\2\u0ad4\u0ad1"+ - "\3\2\2\2\u0ad5\u0ad8\3\2\2\2\u0ad6\u0ad4\3\2\2\2\u0ad6\u0ad7\3\2\2\2\u0ad7"+ - "\u01c7\3\2\2\2\u0ad8\u0ad6\3\2\2\2\u0ad9\u0ada\b\u00e5\1\2\u0ada\u0adb"+ - "\5\u01ca\u00e6\2\u0adb\u0ae7\3\2\2\2\u0adc\u0add\f\5\2\2\u0add\u0ade\7"+ - "V\2\2\u0ade\u0ae6\5\u01ca\u00e6\2\u0adf\u0ae0\f\4\2\2\u0ae0\u0ae1\7W\2"+ - "\2\u0ae1\u0ae6\5\u01ca\u00e6\2\u0ae2\u0ae3\f\3\2\2\u0ae3\u0ae4\7[\2\2"+ - "\u0ae4\u0ae6\5\u01ca\u00e6\2\u0ae5\u0adc\3\2\2\2\u0ae5\u0adf\3\2\2\2\u0ae5"+ - "\u0ae2\3\2\2\2\u0ae6\u0ae9\3\2\2\2\u0ae7\u0ae5\3\2\2\2\u0ae7\u0ae8\3\2"+ - "\2\2\u0ae8\u01c9\3\2\2\2\u0ae9\u0ae7\3\2\2\2\u0aea\u0af2\5\u01cc\u00e7"+ - "\2\u0aeb\u0af2\5\u01ce\u00e8\2\u0aec\u0aed\7T\2\2\u0aed\u0af2\5\u01ca"+ - "\u00e6\2\u0aee\u0aef\7U\2\2\u0aef\u0af2\5\u01ca\u00e6\2\u0af0\u0af2\5"+ - "\u01d0\u00e9\2\u0af1\u0aea\3\2\2\2\u0af1\u0aeb\3\2\2\2\u0af1\u0aec\3\2"+ - "\2\2\u0af1\u0aee\3\2\2\2\u0af1\u0af0\3\2\2\2\u0af2\u01cb\3\2\2\2\u0af3"+ - "\u0af4\7R\2\2\u0af4\u0af5\5\u01ca\u00e6\2\u0af5\u01cd\3\2\2\2\u0af6\u0af7"+ - "\7S\2\2\u0af7\u0af8\5\u01ca\u00e6\2\u0af8\u01cf\3\2\2\2\u0af9\u0b00\5"+ - "\u01d2\u00ea\2\u0afa\u0afb\7I\2\2\u0afb\u0b00\5\u01ca\u00e6\2\u0afc\u0afd"+ - "\7H\2\2\u0afd\u0b00\5\u01ca\u00e6\2\u0afe\u0b00\5\u01dc\u00ef\2\u0aff"+ - "\u0af9\3\2\2\2\u0aff\u0afa\3\2\2\2\u0aff\u0afc\3\2\2\2\u0aff\u0afe\3\2"+ - "\2\2\u0b00\u01d1\3\2\2\2\u0b01\u0b04\5\u0164\u00b3\2\u0b02\u0b04\5<\37"+ - "\2\u0b03\u0b01\3\2\2\2\u0b03\u0b02\3\2\2\2\u0b04\u0b09\3\2\2\2\u0b05\u0b08"+ - "\5\u01d6\u00ec\2\u0b06\u0b08\5\u01da\u00ee\2\u0b07\u0b05\3\2\2\2\u0b07"+ - "\u0b06\3\2\2\2\u0b08\u0b0b\3\2\2\2\u0b09\u0b07\3\2\2\2\u0b09\u0b0a\3\2"+ - "\2\2\u0b0a\u01d3\3\2\2\2\u0b0b\u0b09\3\2\2\2\u0b0c\u0b0d\5\u01d2\u00ea"+ - "\2\u0b0d\u0b0e\7R\2\2\u0b0e\u01d5\3\2\2\2\u0b0f\u0b10\7R\2\2\u0b10\u01d7"+ - "\3\2\2\2\u0b11\u0b12\5\u01d2\u00ea\2\u0b12\u0b13\7S\2\2\u0b13\u01d9\3"+ - "\2\2\2\u0b14\u0b15\7S\2\2\u0b15\u01db\3\2\2\2\u0b16\u0b17\7<\2\2\u0b17"+ - "\u0b18\5\6\4\2\u0b18\u0b19\7=\2\2\u0b19\u0b1a\5\u01ca\u00e6\2\u0b1a\u0b32"+ - "\3\2\2\2\u0b1b\u0b1c\7<\2\2\u0b1c\u0b20\5\16\b\2\u0b1d\u0b1f\5*\26\2\u0b1e"+ - "\u0b1d\3\2\2\2\u0b1f\u0b22\3\2\2\2\u0b20\u0b1e\3\2\2\2\u0b20\u0b21\3\2"+ - "\2\2\u0b21\u0b23\3\2\2\2\u0b22\u0b20\3\2\2\2\u0b23\u0b24\7=\2\2\u0b24"+ - "\u0b25\5\u01d0\u00e9\2\u0b25\u0b32\3\2\2\2\u0b26\u0b27\7<\2\2\u0b27\u0b2b"+ - "\5\16\b\2\u0b28\u0b2a\5*\26\2\u0b29\u0b28\3\2\2\2\u0b2a\u0b2d\3\2\2\2"+ - "\u0b2b\u0b29\3\2\2\2\u0b2b\u0b2c\3\2\2\2\u0b2c\u0b2e\3\2\2\2\u0b2d\u0b2b"+ - "\3\2\2\2\u0b2e\u0b2f\7=\2\2\u0b2f\u0b30\5\u01a4\u00d3\2\u0b30\u0b32\3"+ - "\2\2\2\u0b31\u0b16\3\2\2\2\u0b31\u0b1b\3\2\2\2\u0b31\u0b26\3\2\2\2\u0b32"+ - "\u01dd\3\2\2\2\u014a\u01e2\u01e7\u01ee\u01f2\u01f6\u01ff\u0203\u0208\u020e"+ - "\u0213\u021a\u021f\u0221\u0227\u022c\u0231\u0236\u0241\u024f\u0254\u025c"+ - "\u0263\u0269\u026e\u0279\u027c\u028a\u028f\u0294\u0299\u029f\u02a9\u02b1"+ - "\u02bb\u02c3\u02cf\u02d3\u02d8\u02de\u02e6\u02ef\u02fa\u0317\u031b\u0320"+ - "\u0326\u0329\u032c\u0338\u0343\u0351\u0358\u0360\u0367\u036c\u0370\u037d"+ - "\u0384\u038a\u038e\u0392\u0396\u039a\u039f\u03a3\u03a7\u03a9\u03ae\u03b5"+ - "\u03ba\u03bc\u03c2\u03c7\u03cb\u03de\u03e3\u03f3\u03f6\u03fa\u0400\u0404"+ - "\u0408\u040a\u040e\u0413\u0417\u041e\u0425\u042d\u0430\u0435\u0439\u043f"+ - "\u0444\u044b\u0452\u0457\u045d\u0469\u046e\u0472\u047c\u0481\u0489\u048c"+ - "\u0491\u0499\u049c\u04a1\u04a6\u04ab\u04b0\u04b7\u04bc\u04c4\u04c9\u04ce"+ - "\u04d3\u04d9\u04df\u04e2\u04e5\u04ee\u04f4\u04fa\u04fd\u0500\u0508\u050d"+ - "\u0512\u0518\u051b\u0526\u052f\u0539\u053e\u0549\u054e\u055a\u055f\u056b"+ - "\u0575\u057a\u0582\u0585\u058c\u0594\u059a\u05a3\u05ad\u05b1\u05b4\u05bd"+ - "\u05cb\u05ce\u05d7\u05dc\u05e4\u05ea\u05f1\u05f6\u0602\u0609\u0617\u062d"+ - "\u064f\u065b\u0661\u066d\u067a\u0694\u0698\u069d\u06a1\u06a5\u06ad\u06b1"+ - "\u06b5\u06bc\u06c5\u06cd\u06dc\u06e8\u06ee\u06f4\u0709\u070e\u0714\u0720"+ - "\u072b\u0735\u0738\u073d\u0746\u074c\u0756\u075b\u0764\u077b\u0785\u079b"+ - "\u07a2\u07aa\u07b2\u07bd\u07d4\u07de\u07e9\u07ff\u0803\u0808\u0810\u0816"+ - "\u081a\u081e\u0822\u0828\u082d\u0832\u0836\u083a\u0840\u0845\u084a\u084e"+ - "\u0852\u0854\u0859\u085e\u0863\u0867\u086b\u086f\u0874\u087c\u0882\u0886"+ - "\u088a\u088e\u0894\u0899\u089e\u08a2\u08a6\u08a8\u08ad\u08bc\u08ca\u08d6"+ - "\u08df\u08ee\u08fb\u0904\u090a\u0911\u0916\u091d\u0922\u0929\u092e\u0935"+ - "\u093a\u0942\u0947\u094b\u094f\u0954\u095b\u0962\u0967\u096e\u0973\u097a"+ - "\u097f\u0987\u098c\u0990\u0997\u099d\u09a4\u09ab\u09b2\u09ba\u09c1\u09c9"+ - "\u09cd\u09d4\u09db\u09e2\u09ea\u09f1\u09f9\u09ff\u0a05\u0a11\u0a17\u0a1d"+ - "\u0a28\u0a31\u0a34\u0a3b\u0a40\u0a44\u0a4d\u0a58\u0a62\u0a6d\u0a78\u0a83"+ - "\u0a8e\u0a9a\u0a9c\u0ab1\u0ab3\u0ac6\u0ac8\u0ad4\u0ad6\u0ae5\u0ae7\u0af1"+ - "\u0aff\u0b03\u0b07\u0b09\u0b20\u0b2b\u0b31"; - public static final String _serializedATN = Utils.join( - new String[] { - _serializedATNSegment0, - _serializedATNSegment1 - }, - "" - ); - public static final ATN _ATN = - new ATNDeserializer().deserialize(_serializedATN.toCharArray()); - static { - _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; - for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { - _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); - } - } -} \ No newline at end of file diff --git a/src/main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java b/src/main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java index d9ccb66ce..abe48103e 100644 --- a/src/main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java +++ b/src/main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java @@ -178,7 +178,7 @@ public class TypeUnifyTask extends RecursiveTask>> { writeLog("thNo2 " + thNo); try { this.logFile = //new OutputStreamWriter(new NullOutputStream()); - //new FileWriter(new File(System.getProperty("user.dir")+"/src/test/resources/logFiles/"+"Thread_"+thNo)); + //new FileWriter(new File(System.getProperty("user.dir")+"/resources/logFiles/"+"Thread_"+thNo)); new FileWriter(new File(System.getProperty("user.dir")+"/logFiles/"+"Thread_"+thNo)); logFile.write(""); } diff --git a/src/test/java/AllgemeinTest.java b/src/test/java/AllgemeinTest.java deleted file mode 100644 index a16970bf0..000000000 --- a/src/test/java/AllgemeinTest.java +++ /dev/null @@ -1,71 +0,0 @@ - - -import static org.junit.Assert.*; - -import java.io.File; -import java.lang.reflect.Field; -import java.net.URL; -import java.net.URLClassLoader; -import java.util.Arrays; - -import org.junit.BeforeClass; -import org.junit.Test; - -import com.google.common.collect.Lists; - -import de.dhbwstuttgart.core.JavaTXCompiler; - -public class AllgemeinTest { - - private static String path; - private static File fileToTest; - private static JavaTXCompiler compiler; - private static ClassLoader loader; - private static Class classToTest; - private static String pathToClassFile; - private static Object instanceOfClass; - - - @Test - public void test() throws Exception { - //String className = "GenTest"; - //String className = "Overloading_Generics"; - //String className = "Generics"; - //String className = "OverloadingMain"; - //String className = "OverrideMain"; - //String className = "OverrideMainRet"; - //String className = "FCTest1"; - //String className = "FCTest2"; - //String className = "Pair"; - //String className = "FCTest3"; - //String className = "Var"; - //String className = "Put"; - //String className = "Twice"; - //String className = "TestSubTypless"; - //String className = "addList"; - //String className = "M"; - //String className = "Wildcard_Andi"; - //String className = "Box"; - String className = "Box_Main"; - //String className ="wildcardPair"; - //PL 2019-10-24: genutzt fuer unterschiedliche Tests - path = System.getProperty("user.dir")+"/src/test/resources/AllgemeinTest/" + className + ".jav"; - //path = System.getProperty("user.dir")+"/src/test/resources/AllgemeinTest/Overloading_Generics.jav"; - //path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/mathStrucInteger.jav"; - //compiler = new JavaTXCompiler(Lists.newArrayList(new File(System.getProperty("user.dir")+"/src/test/resources/AllgemeinTest/Overloading_Generics.jav"))); - ///* - compiler = new JavaTXCompiler( - Lists.newArrayList(new File(path)), - Lists.newArrayList(new File(System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"))); - //*/ - compiler.generateBytecode(System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; - loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); - classToTest = loader.loadClass(className); - //classToTest = loader.loadClass("Overloading_Generics"); - //instanceOfClass = classToTest.getDeclaredConstructor().newInstance("A"); - //classToTest = loader.loadClass("Overloading_Generics1"); - //instanceOfClass = classToTest.getDeclaredConstructor(Object.class).newInstance("B"); - } - -} diff --git a/src/test/java/astfactory/ASTFactoryTest.java b/src/test/java/java/astfactory/ASTFactoryTest.java similarity index 100% rename from src/test/java/astfactory/ASTFactoryTest.java rename to src/test/java/java/astfactory/ASTFactoryTest.java diff --git a/src/test/java/bytecode/BinaryTest.java b/src/test/java/java/bytecode/BinaryTest.java similarity index 87% rename from src/test/java/bytecode/BinaryTest.java rename to src/test/java/java/bytecode/BinaryTest.java index b2b5d1652..a23961062 100644 --- a/src/test/java/bytecode/BinaryTest.java +++ b/src/test/java/java/bytecode/BinaryTest.java @@ -23,10 +23,10 @@ public class BinaryTest { @BeforeClass public static void setUpBeforeClass() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/BinaryInMeth.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/BinaryInMeth.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; compiler.generateBytecode(pathToClassFile); loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); classToTest = loader.loadClass("BinaryInMeth"); diff --git a/src/test/java/bytecode/ClassGenLamTest.java b/src/test/java/java/bytecode/ClassGenLamTest.java similarity index 82% rename from src/test/java/bytecode/ClassGenLamTest.java rename to src/test/java/java/bytecode/ClassGenLamTest.java index 33b9ee76a..3fc81e64c 100644 --- a/src/test/java/bytecode/ClassGenLamTest.java +++ b/src/test/java/java/bytecode/ClassGenLamTest.java @@ -24,10 +24,10 @@ public class ClassGenLamTest { @Test public void generateBC() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/ClassGenLam.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/ClassGenLam.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; compiler.generateBytecode(pathToClassFile); loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); classToTest = loader.loadClass("ClassGenLam"); diff --git a/src/test/java/bytecode/FacTest.java b/src/test/java/java/bytecode/FacTest.java similarity index 87% rename from src/test/java/bytecode/FacTest.java rename to src/test/java/java/bytecode/FacTest.java index 12525edac..7f5c1b978 100644 --- a/src/test/java/bytecode/FacTest.java +++ b/src/test/java/java/bytecode/FacTest.java @@ -24,10 +24,10 @@ public class FacTest { @BeforeClass public static void setUpBeforeClass() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/Fac.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/Fac.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; compiler.generateBytecode(pathToClassFile); loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); classToTest = loader.loadClass("Fac"); diff --git a/src/test/java/bytecode/FacultyTest.java b/src/test/java/java/bytecode/FacultyTest.java similarity index 85% rename from src/test/java/bytecode/FacultyTest.java rename to src/test/java/java/bytecode/FacultyTest.java index 2caffa8b3..102072624 100644 --- a/src/test/java/bytecode/FacultyTest.java +++ b/src/test/java/java/bytecode/FacultyTest.java @@ -24,11 +24,11 @@ public class FacultyTest { @Test public void generateBC() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/Faculty.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/Faculty.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - compiler.generateBytecode(System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + compiler.generateBytecode(System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"); + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); classToTest = loader.loadClass("Faculty"); instanceOfClass = classToTest.getDeclaredConstructor().newInstance(); diff --git a/src/test/java/bytecode/FieldTest.java b/src/test/java/java/bytecode/FieldTest.java similarity index 77% rename from src/test/java/bytecode/FieldTest.java rename to src/test/java/java/bytecode/FieldTest.java index ed1a562f8..e0b98ff05 100644 --- a/src/test/java/bytecode/FieldTest.java +++ b/src/test/java/java/bytecode/FieldTest.java @@ -24,11 +24,11 @@ public class FieldTest { @BeforeClass public static void setUpBeforeClass() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/Field.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/Field.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - compiler.generateBytecode(System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + compiler.generateBytecode(System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"); + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); classToTest = loader.loadClass("Field"); instanceOfClass = classToTest.getDeclaredConstructor().newInstance(); diff --git a/src/test/java/bytecode/FieldTph2Test.java b/src/test/java/java/bytecode/FieldTph2Test.java similarity index 81% rename from src/test/java/bytecode/FieldTph2Test.java rename to src/test/java/java/bytecode/FieldTph2Test.java index f2b4d4134..509e00f85 100644 --- a/src/test/java/bytecode/FieldTph2Test.java +++ b/src/test/java/java/bytecode/FieldTph2Test.java @@ -25,11 +25,11 @@ public class FieldTph2Test { @BeforeClass public static void setUpBeforeClass() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/FieldTph2.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/FieldTph2.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - compiler.generateBytecode(System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + compiler.generateBytecode(System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"); + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); classToTest = loader.loadClass("FieldTph2"); instanceOfClass = classToTest.getDeclaredConstructor().newInstance(); diff --git a/src/test/java/bytecode/FieldTphConsMethTest.java b/src/test/java/java/bytecode/FieldTphConsMethTest.java similarity index 80% rename from src/test/java/bytecode/FieldTphConsMethTest.java rename to src/test/java/java/bytecode/FieldTphConsMethTest.java index 18bb7f2bf..3d5dbe7a1 100644 --- a/src/test/java/bytecode/FieldTphConsMethTest.java +++ b/src/test/java/java/bytecode/FieldTphConsMethTest.java @@ -25,11 +25,11 @@ public class FieldTphConsMethTest { @BeforeClass public static void setUpBeforeClass() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/FieldTphConsMeth.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/FieldTphConsMeth.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - compiler.generateBytecode(System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + compiler.generateBytecode(System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"); + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); classToTest = loader.loadClass("FieldTphConsMeth"); } diff --git a/src/test/java/bytecode/FieldTphMMethTest.java b/src/test/java/java/bytecode/FieldTphMMethTest.java similarity index 84% rename from src/test/java/bytecode/FieldTphMMethTest.java rename to src/test/java/java/bytecode/FieldTphMMethTest.java index f21adefe6..ae04383b0 100644 --- a/src/test/java/bytecode/FieldTphMMethTest.java +++ b/src/test/java/java/bytecode/FieldTphMMethTest.java @@ -26,11 +26,11 @@ public class FieldTphMMethTest { @BeforeClass public static void setUpBeforeClass() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/FieldTphMMeth.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/FieldTphMMeth.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - compiler.generateBytecode(System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + compiler.generateBytecode(System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"); + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); classToTest = loader.loadClass("FieldTphMMeth"); instanceOfClass = classToTest.getConstructor(Object.class,Object.class,Boolean.class).newInstance("C",42,true); diff --git a/src/test/java/bytecode/GenTest.java b/src/test/java/java/bytecode/GenTest.java similarity index 75% rename from src/test/java/bytecode/GenTest.java rename to src/test/java/java/bytecode/GenTest.java index 09d283a39..a830aac03 100644 --- a/src/test/java/bytecode/GenTest.java +++ b/src/test/java/java/bytecode/GenTest.java @@ -20,10 +20,10 @@ public class GenTest { @Test public void generateBC() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/Gen.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/Gen.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; compiler.generateBytecode(pathToClassFile); } diff --git a/src/test/java/bytecode/GreaterEqualTest.java b/src/test/java/java/bytecode/GreaterEqualTest.java similarity index 96% rename from src/test/java/bytecode/GreaterEqualTest.java rename to src/test/java/java/bytecode/GreaterEqualTest.java index 890dea9ee..bbc7d844d 100644 --- a/src/test/java/bytecode/GreaterEqualTest.java +++ b/src/test/java/java/bytecode/GreaterEqualTest.java @@ -25,10 +25,10 @@ public class GreaterEqualTest { @BeforeClass public static void setUpBeforeClass() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/GreaterEqual.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/GreaterEqual.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; compiler.generateBytecode(pathToClassFile); loader = new URLClassLoader(new URL[] {new URL("File://"+pathToClassFile)}); classToTest = loader.loadClass("GreaterEqual"); diff --git a/src/test/java/bytecode/GreaterThanTest.java b/src/test/java/java/bytecode/GreaterThanTest.java similarity index 96% rename from src/test/java/bytecode/GreaterThanTest.java rename to src/test/java/java/bytecode/GreaterThanTest.java index 472daa493..001ebbc9b 100644 --- a/src/test/java/bytecode/GreaterThanTest.java +++ b/src/test/java/java/bytecode/GreaterThanTest.java @@ -25,10 +25,10 @@ public class GreaterThanTest { @BeforeClass public static void setUpBeforeClass() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/GreaterThan.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/GreaterThan.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; compiler.generateBytecode(pathToClassFile); loader = new URLClassLoader(new URL[] {new URL("File://"+pathToClassFile)}); classToTest = loader.loadClass("GreaterThan"); diff --git a/src/test/java/bytecode/IdTest.java b/src/test/java/java/bytecode/IdTest.java similarity index 74% rename from src/test/java/bytecode/IdTest.java rename to src/test/java/java/bytecode/IdTest.java index 02ff15923..6e252aed8 100644 --- a/src/test/java/bytecode/IdTest.java +++ b/src/test/java/java/bytecode/IdTest.java @@ -26,11 +26,11 @@ public class IdTest { @Test public void test() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/Id.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/Id.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - compiler.generateBytecode(System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + compiler.generateBytecode(System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"); + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); classToTest = loader.loadClass("Id"); instanceOfClass = classToTest.getDeclaredConstructor().newInstance(); diff --git a/src/test/java/bytecode/InfTest.java b/src/test/java/java/bytecode/InfTest.java similarity index 82% rename from src/test/java/bytecode/InfTest.java rename to src/test/java/java/bytecode/InfTest.java index 75608bfe0..cc6a7a259 100644 --- a/src/test/java/bytecode/InfTest.java +++ b/src/test/java/java/bytecode/InfTest.java @@ -24,10 +24,10 @@ public class InfTest { @Test public void generateBC() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/Inf.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/Inf.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; compiler.generateBytecode(pathToClassFile); loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); classToTest = loader.loadClass("Inf"); diff --git a/src/test/java/bytecode/InheritTest.java b/src/test/java/java/bytecode/InheritTest.java similarity index 94% rename from src/test/java/bytecode/InheritTest.java rename to src/test/java/java/bytecode/InheritTest.java index 19c16612b..74db5b85e 100644 --- a/src/test/java/bytecode/InheritTest.java +++ b/src/test/java/java/bytecode/InheritTest.java @@ -33,8 +33,8 @@ public class InheritTest { private static ClassLoader loader; private static Class classToTest; private static Class classToTestAA, classToTestBB, classToTestCC, classToTestDD; - private static String pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/";; - //private static String pathToClassFile1 = System.getProperty("user.dir") + "/src/test/resources/testBytecode/generatedBC/"; + private static String pathToClassFile = System.getProperty("user.dir")+"/resources/bytecode/javFiles/";; + //private static String pathToClassFile1 = System.getProperty("user.dir") + "/resources/testBytecode/generatedBC/"; private static Object instanceOfClass; private static Object instanceOfClassAA, instanceOfClassBB, instanceOfClassCC, instanceOfClassDD; private static HashMap, Method> hm = new HashMap<>(); @@ -43,7 +43,7 @@ public class InheritTest { @BeforeClass public static void setUpBeforeClass() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/AA.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/AA.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); List typeinferenceResult = compiler.typeInference(); @@ -55,7 +55,7 @@ public class InheritTest { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/BB.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/BB.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); typeinferenceResult = compiler.typeInference(); @@ -64,7 +64,7 @@ public class InheritTest { classToTestBB = loader.loadClass("BB"); instanceOfClassBB = classToTestBB.getDeclaredConstructor().newInstance(); - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/CC.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/CC.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); typeinferenceResult = compiler.typeInference(); @@ -73,7 +73,7 @@ public class InheritTest { classToTestCC = loader.loadClass("CC"); instanceOfClassCC = classToTestCC.getDeclaredConstructor().newInstance(); - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/DD.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/DD.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); typeinferenceResult = compiler.typeInference(); @@ -83,7 +83,7 @@ public class InheritTest { instanceOfClassDD = classToTestDD.getDeclaredConstructor().newInstance(); - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/Inherit.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/Inherit.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); typeinferenceResult = compiler.typeInference(); diff --git a/src/test/java/bytecode/InheritTest2.java b/src/test/java/java/bytecode/InheritTest2.java similarity index 94% rename from src/test/java/bytecode/InheritTest2.java rename to src/test/java/java/bytecode/InheritTest2.java index 366027048..4d0c5d6ca 100644 --- a/src/test/java/bytecode/InheritTest2.java +++ b/src/test/java/java/bytecode/InheritTest2.java @@ -33,8 +33,8 @@ public class InheritTest2 { private static ClassLoader loader; private static Class classToTest; private static Class classToTestAA, classToTestBB, classToTestCC, classToTestDD; - private static String pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/";; - //private static String pathToClassFile1 = System.getProperty("user.dir") + "/src/test/resources/testBytecode/generatedBC/"; + private static String pathToClassFile = System.getProperty("user.dir")+"/resources/bytecode/javFiles/";; + //private static String pathToClassFile1 = System.getProperty("user.dir") + "/resources/testBytecode/generatedBC/"; private static Object instanceOfClass; private static Object instanceOfClassAA, instanceOfClassBB, instanceOfClassCC, instanceOfClassDD; private static HashMap, Method> hm = new HashMap<>(); @@ -43,7 +43,7 @@ public class InheritTest2 { @BeforeClass public static void setUpBeforeClass() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/AA.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/AA.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); List typeinferenceResult = compiler.typeInference(); @@ -55,7 +55,7 @@ public class InheritTest2 { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/BB.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/BB.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); typeinferenceResult = compiler.typeInference(); @@ -64,7 +64,7 @@ public class InheritTest2 { classToTestBB = loader.loadClass("BB"); instanceOfClassBB = classToTestBB.getDeclaredConstructor().newInstance(); - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/CC.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/CC.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); typeinferenceResult = compiler.typeInference(); @@ -73,7 +73,7 @@ public class InheritTest2 { classToTestCC = loader.loadClass("CC"); instanceOfClassCC = classToTestCC.getDeclaredConstructor().newInstance(); - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/DD.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/DD.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); typeinferenceResult = compiler.typeInference(); @@ -83,7 +83,7 @@ public class InheritTest2 { instanceOfClassDD = classToTestDD.getDeclaredConstructor().newInstance(); - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/Inherit2.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/Inherit2.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); typeinferenceResult = compiler.typeInference(); diff --git a/src/test/java/bytecode/KompTphTest.java b/src/test/java/java/bytecode/KompTphTest.java similarity index 82% rename from src/test/java/bytecode/KompTphTest.java rename to src/test/java/java/bytecode/KompTphTest.java index 8fca0c0ba..0ecaed01b 100644 --- a/src/test/java/bytecode/KompTphTest.java +++ b/src/test/java/java/bytecode/KompTphTest.java @@ -24,10 +24,10 @@ public class KompTphTest { @Test public void generateBC() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/KompTph.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/KompTph.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; compiler.generateBytecode(pathToClassFile); loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); classToTest = loader.loadClass("KompTph"); diff --git a/src/test/java/bytecode/LambdaCapturetest.java b/src/test/java/java/bytecode/LambdaCapturetest.java similarity index 75% rename from src/test/java/bytecode/LambdaCapturetest.java rename to src/test/java/java/bytecode/LambdaCapturetest.java index 24baaf7a9..f3f5e341d 100644 --- a/src/test/java/bytecode/LambdaCapturetest.java +++ b/src/test/java/java/bytecode/LambdaCapturetest.java @@ -30,11 +30,11 @@ public class LambdaCapturetest { @Test public void generateBC() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/LambdaCapture.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/LambdaCapture.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - compiler.generateBytecode(System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + compiler.generateBytecode(System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"); + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); classToTest = loader.loadClass("LambdaCapture"); instanceOfClass = classToTest.getDeclaredConstructor().newInstance(); diff --git a/src/test/java/bytecode/LambdaTest.java b/src/test/java/java/bytecode/LambdaTest.java similarity index 81% rename from src/test/java/bytecode/LambdaTest.java rename to src/test/java/java/bytecode/LambdaTest.java index f75cd7f8f..79665697a 100644 --- a/src/test/java/bytecode/LambdaTest.java +++ b/src/test/java/java/bytecode/LambdaTest.java @@ -23,11 +23,11 @@ public class LambdaTest { @Test public void generateBC() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/Lambda.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/Lambda.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - compiler.generateBytecode(System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + compiler.generateBytecode(System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"); + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); classToTest = loader.loadClass("Lambda"); instanceOfClass = classToTest.getDeclaredConstructor().newInstance(); diff --git a/src/test/java/bytecode/LambdaVoidTest.java b/src/test/java/java/bytecode/LambdaVoidTest.java similarity index 80% rename from src/test/java/bytecode/LambdaVoidTest.java rename to src/test/java/java/bytecode/LambdaVoidTest.java index 1a737bd32..e2c09204e 100644 --- a/src/test/java/bytecode/LambdaVoidTest.java +++ b/src/test/java/java/bytecode/LambdaVoidTest.java @@ -23,11 +23,11 @@ public class LambdaVoidTest { @Test public void generateBC() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/Lambda.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/Lambda.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - compiler.generateBytecode(System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + compiler.generateBytecode(System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"); + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); classToTest = loader.loadClass("Lambda"); instanceOfClass = classToTest.getDeclaredConstructor().newInstance(); diff --git a/src/test/java/bytecode/LessEqualTest.java b/src/test/java/java/bytecode/LessEqualTest.java similarity index 96% rename from src/test/java/bytecode/LessEqualTest.java rename to src/test/java/java/bytecode/LessEqualTest.java index 2e39e072c..ce2cc46cb 100644 --- a/src/test/java/bytecode/LessEqualTest.java +++ b/src/test/java/java/bytecode/LessEqualTest.java @@ -25,10 +25,10 @@ public class LessEqualTest { @BeforeClass public static void setUpBeforeClass() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/LessEqual.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/LessEqual.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; compiler.generateBytecode(pathToClassFile); loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); classToTest = loader.loadClass("LessEqual"); diff --git a/src/test/java/bytecode/LessThanTest.java b/src/test/java/java/bytecode/LessThanTest.java similarity index 96% rename from src/test/java/bytecode/LessThanTest.java rename to src/test/java/java/bytecode/LessThanTest.java index 98830542e..bdc6b8bd2 100644 --- a/src/test/java/bytecode/LessThanTest.java +++ b/src/test/java/java/bytecode/LessThanTest.java @@ -25,10 +25,10 @@ public class LessThanTest { @BeforeClass public static void setUpBeforeClass() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/LessThan.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/LessThan.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; compiler.generateBytecode(pathToClassFile); loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); classToTest = loader.loadClass("LessThan"); diff --git a/src/test/java/bytecode/MatrixOpTest.java b/src/test/java/java/bytecode/MatrixOpTest.java similarity index 94% rename from src/test/java/bytecode/MatrixOpTest.java rename to src/test/java/java/bytecode/MatrixOpTest.java index 389280abe..01c123721 100644 --- a/src/test/java/bytecode/MatrixOpTest.java +++ b/src/test/java/java/bytecode/MatrixOpTest.java @@ -29,10 +29,10 @@ public class MatrixOpTest { @Test public void test() throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, ClassNotFoundException, IOException, InstantiationException, NoSuchFieldException { - path = System.getProperty("user.dir") + "/src/test/resources/bytecode/javFiles/MatrixOP.jav"; + path = System.getProperty("user.dir") + "/resources/bytecode/javFiles/MatrixOP.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - pathToClassFile = System.getProperty("user.dir") + "/src/test/resources/testBytecode/generatedBC/"; + pathToClassFile = System.getProperty("user.dir") + "/resources/testBytecode/generatedBC/"; compiler.generateBytecode(pathToClassFile); loader = new URLClassLoader(new URL[]{new URL("file://" + pathToClassFile)}); classToTest = loader.loadClass("MatrixOP"); diff --git a/src/test/java/bytecode/MatrixTest.java b/src/test/java/java/bytecode/MatrixTest.java similarity index 93% rename from src/test/java/bytecode/MatrixTest.java rename to src/test/java/java/bytecode/MatrixTest.java index ce356ecef..0689f4900 100755 --- a/src/test/java/bytecode/MatrixTest.java +++ b/src/test/java/java/bytecode/MatrixTest.java @@ -28,10 +28,10 @@ public class MatrixTest { @Test public void test() throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, ClassNotFoundException, IOException, InstantiationException { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/Matrix.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/Matrix.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; compiler.generateBytecode(pathToClassFile); loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); classToTest = loader.loadClass("Matrix"); diff --git a/src/test/java/bytecode/MergeTest.java b/src/test/java/java/bytecode/MergeTest.java similarity index 84% rename from src/test/java/bytecode/MergeTest.java rename to src/test/java/java/bytecode/MergeTest.java index d259ee2cb..b0bc9a899 100644 --- a/src/test/java/bytecode/MergeTest.java +++ b/src/test/java/java/bytecode/MergeTest.java @@ -24,10 +24,10 @@ public class MergeTest { @Test public void generateBC() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/Merge.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/Merge.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - compiler.generateBytecode(System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"); + compiler.generateBytecode(System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"); // pathToClassFile = System.getProperty("user.dir")+"/testBytecode/generatedBC/"; // loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); // classToTest = loader.loadClass("Merge"); diff --git a/src/test/java/bytecode/OLFunTest.java b/src/test/java/java/bytecode/OLFunTest.java similarity index 81% rename from src/test/java/bytecode/OLFunTest.java rename to src/test/java/java/bytecode/OLFunTest.java index 1277cdded..14e0885e9 100644 --- a/src/test/java/bytecode/OLFunTest.java +++ b/src/test/java/java/bytecode/OLFunTest.java @@ -23,11 +23,11 @@ public class OLFunTest { @Test public void generateBC() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/OLFun.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/OLFun.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - compiler.generateBytecode(System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + compiler.generateBytecode(System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"); + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); classToTest = loader.loadClass("OLFun"); /* diff --git a/src/test/java/bytecode/OLTest.java b/src/test/java/java/bytecode/OLTest.java similarity index 95% rename from src/test/java/bytecode/OLTest.java rename to src/test/java/java/bytecode/OLTest.java index 5b98c7ff8..7cf2508fe 100644 --- a/src/test/java/bytecode/OLTest.java +++ b/src/test/java/java/bytecode/OLTest.java @@ -29,10 +29,10 @@ public class OLTest { @BeforeClass public static void setUpBeforeClass() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/OL.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/OL.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; List typeinferenceResult = compiler.typeInference(); List simplifyResultsForAllSourceFiles = compiler.getGeneratedGenericResultsForAllSourceFiles(typeinferenceResult); compiler.generateBytecode(new File(pathToClassFile),typeinferenceResult,simplifyResultsForAllSourceFiles); diff --git a/src/test/java/bytecode/OpTest.java b/src/test/java/java/bytecode/OpTest.java similarity index 90% rename from src/test/java/bytecode/OpTest.java rename to src/test/java/java/bytecode/OpTest.java index 43d2cc97e..ce4d77df8 100644 --- a/src/test/java/bytecode/OpTest.java +++ b/src/test/java/java/bytecode/OpTest.java @@ -25,10 +25,10 @@ public class OpTest { @BeforeClass public static void setUpBeforeClass() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/Op.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/Op.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; compiler.generateBytecode(pathToClassFile); loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); classToTest = loader.loadClass("Op"); diff --git a/src/test/java/bytecode/OverloadingSortingTest.java b/src/test/java/java/bytecode/OverloadingSortingTest.java similarity index 89% rename from src/test/java/bytecode/OverloadingSortingTest.java rename to src/test/java/java/bytecode/OverloadingSortingTest.java index bb174d7d7..c64f1f2a9 100644 --- a/src/test/java/bytecode/OverloadingSortingTest.java +++ b/src/test/java/java/bytecode/OverloadingSortingTest.java @@ -26,10 +26,10 @@ public class OverloadingSortingTest { @Test public void generateBC() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/Sorting.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/Sorting.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; compiler.generateBytecode(pathToClassFile); // loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); // classToTest = loader.loadClass("Sorting"); diff --git a/src/test/java/bytecode/OverloadingTest.java b/src/test/java/java/bytecode/OverloadingTest.java similarity index 90% rename from src/test/java/bytecode/OverloadingTest.java rename to src/test/java/java/bytecode/OverloadingTest.java index 4645110e3..f93f01665 100644 --- a/src/test/java/bytecode/OverloadingTest.java +++ b/src/test/java/java/bytecode/OverloadingTest.java @@ -27,10 +27,10 @@ public class OverloadingTest { @BeforeClass public static void setUpBeforeClass() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/Overloading.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/Overloading.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; compiler.generateBytecode(pathToClassFile); loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); classToTest = loader.loadClass("Overloading"); diff --git a/src/test/java/bytecode/PlusTest.java b/src/test/java/java/bytecode/PlusTest.java similarity index 90% rename from src/test/java/bytecode/PlusTest.java rename to src/test/java/java/bytecode/PlusTest.java index ac20360f9..a11d505ee 100644 --- a/src/test/java/bytecode/PlusTest.java +++ b/src/test/java/java/bytecode/PlusTest.java @@ -24,10 +24,10 @@ public class PlusTest { @BeforeClass public static void setUpBeforeClass() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/Plus.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/Plus.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; compiler.generateBytecode(pathToClassFile); loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); classToTest = loader.loadClass("Plus"); diff --git a/src/test/java/bytecode/PostIncTest.java b/src/test/java/java/bytecode/PostIncTest.java similarity index 91% rename from src/test/java/bytecode/PostIncTest.java rename to src/test/java/java/bytecode/PostIncTest.java index 6c11d5cd4..9ecabd238 100644 --- a/src/test/java/bytecode/PostIncTest.java +++ b/src/test/java/java/bytecode/PostIncTest.java @@ -24,10 +24,10 @@ public class PostIncTest { @BeforeClass public static void setUpBeforeClass() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/PostIncDec.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/PostIncDec.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; compiler.generateBytecode(pathToClassFile); loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); classToTest = loader.loadClass("PostIncDec"); diff --git a/src/test/java/bytecode/PreIncTest.java b/src/test/java/java/bytecode/PreIncTest.java similarity index 91% rename from src/test/java/bytecode/PreIncTest.java rename to src/test/java/java/bytecode/PreIncTest.java index 749825979..3c30e27f9 100644 --- a/src/test/java/bytecode/PreIncTest.java +++ b/src/test/java/java/bytecode/PreIncTest.java @@ -24,10 +24,10 @@ public class PreIncTest { @BeforeClass public static void setUpBeforeClass() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/PreInc.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/PreInc.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; compiler.generateBytecode(pathToClassFile); loader = new URLClassLoader(new URL[] {new URL("file://" + pathToClassFile)}); classToTest = loader.loadClass("PreInc"); diff --git a/src/test/java/bytecode/PutTest.java b/src/test/java/java/bytecode/PutTest.java similarity index 94% rename from src/test/java/bytecode/PutTest.java rename to src/test/java/java/bytecode/PutTest.java index b5fd39d1a..cf3e83d3f 100644 --- a/src/test/java/bytecode/PutTest.java +++ b/src/test/java/java/bytecode/PutTest.java @@ -31,10 +31,10 @@ public class PutTest { @BeforeClass public static void setUpBeforeClass() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/Put.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/Put.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; List typeinferenceResult = compiler.typeInference(); List simplifyResultsForAllSourceFiles = compiler.getGeneratedGenericResultsForAllSourceFiles(typeinferenceResult); compiler.generateBytecode(new File(pathToClassFile),typeinferenceResult,simplifyResultsForAllSourceFiles); diff --git a/src/test/java/bytecode/RelOpsTest.java b/src/test/java/java/bytecode/RelOpsTest.java similarity index 87% rename from src/test/java/bytecode/RelOpsTest.java rename to src/test/java/java/bytecode/RelOpsTest.java index 9ffeeca20..527743277 100644 --- a/src/test/java/bytecode/RelOpsTest.java +++ b/src/test/java/java/bytecode/RelOpsTest.java @@ -24,10 +24,10 @@ public class RelOpsTest { @BeforeClass public static void setUpBeforeClass() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/RelOps.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/RelOps.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; compiler.generateBytecode(pathToClassFile); loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); classToTest = loader.loadClass("RelOps"); diff --git a/src/test/java/bytecode/SimpleCycleTest.java b/src/test/java/java/bytecode/SimpleCycleTest.java similarity index 82% rename from src/test/java/bytecode/SimpleCycleTest.java rename to src/test/java/java/bytecode/SimpleCycleTest.java index 19e28bc23..45a63e44e 100644 --- a/src/test/java/bytecode/SimpleCycleTest.java +++ b/src/test/java/java/bytecode/SimpleCycleTest.java @@ -24,10 +24,10 @@ public class SimpleCycleTest { @Test public void generateGen() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/SimpleCycle.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/SimpleCycle.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; compiler.generateBytecode(pathToClassFile); loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); classToTest = loader.loadClass("SimpleCycle"); diff --git a/src/test/java/bytecode/SortingTest.java b/src/test/java/java/bytecode/SortingTest.java similarity index 81% rename from src/test/java/bytecode/SortingTest.java rename to src/test/java/java/bytecode/SortingTest.java index 4b8abb613..9220bb81a 100644 --- a/src/test/java/bytecode/SortingTest.java +++ b/src/test/java/java/bytecode/SortingTest.java @@ -23,11 +23,11 @@ public class SortingTest { @Test public void generateBC() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/Sorting.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/Sorting.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - compiler.generateBytecode(System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + compiler.generateBytecode(System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"); + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); classToTest = loader.loadClass("Sorting"); /* diff --git a/src/test/java/bytecode/SubMatTest.java b/src/test/java/java/bytecode/SubMatTest.java similarity index 73% rename from src/test/java/bytecode/SubMatTest.java rename to src/test/java/java/bytecode/SubMatTest.java index 000f7569f..e3988697a 100644 --- a/src/test/java/bytecode/SubMatTest.java +++ b/src/test/java/java/bytecode/SubMatTest.java @@ -17,10 +17,10 @@ public class SubMatTest { @Test public void test() throws ClassNotFoundException, IOException { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/SubMatrix.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/SubMatrix.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; compiler.generateBytecode(pathToClassFile); } diff --git a/src/test/java/bytecode/Tph2Test.java b/src/test/java/java/bytecode/Tph2Test.java similarity index 90% rename from src/test/java/bytecode/Tph2Test.java rename to src/test/java/java/bytecode/Tph2Test.java index ad9c06f0b..a6acf5b2c 100644 --- a/src/test/java/bytecode/Tph2Test.java +++ b/src/test/java/java/bytecode/Tph2Test.java @@ -24,10 +24,10 @@ public class Tph2Test { @BeforeClass public static void setUpBeforeClass() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/Tph2.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/Tph2.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; compiler.generateBytecode(pathToClassFile); loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); classToTest = loader.loadClass("Tph2"); diff --git a/src/test/java/bytecode/Tph3Test.java b/src/test/java/java/bytecode/Tph3Test.java similarity index 76% rename from src/test/java/bytecode/Tph3Test.java rename to src/test/java/java/bytecode/Tph3Test.java index bc680e7ea..ba76e3c09 100644 --- a/src/test/java/bytecode/Tph3Test.java +++ b/src/test/java/java/bytecode/Tph3Test.java @@ -21,10 +21,10 @@ public class Tph3Test { @Test public void generateBC() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/Tph3.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/Tph3.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; compiler.generateBytecode(pathToClassFile); } diff --git a/src/test/java/bytecode/Tph5Test.java b/src/test/java/java/bytecode/Tph5Test.java similarity index 86% rename from src/test/java/bytecode/Tph5Test.java rename to src/test/java/java/bytecode/Tph5Test.java index 78b2c4009..de0284690 100644 --- a/src/test/java/bytecode/Tph5Test.java +++ b/src/test/java/java/bytecode/Tph5Test.java @@ -24,10 +24,10 @@ public class Tph5Test { @BeforeClass public static void setUpBeforeClass() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/Tph5.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/Tph5.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; compiler.generateBytecode(pathToClassFile); loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); classToTest = loader.loadClass("Tph5"); diff --git a/src/test/java/bytecode/Tph6Test.java b/src/test/java/java/bytecode/Tph6Test.java similarity index 86% rename from src/test/java/bytecode/Tph6Test.java rename to src/test/java/java/bytecode/Tph6Test.java index da3681519..39580320e 100644 --- a/src/test/java/bytecode/Tph6Test.java +++ b/src/test/java/java/bytecode/Tph6Test.java @@ -24,10 +24,10 @@ public class Tph6Test { @BeforeClass public static void setUpBeforeClass() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/Tph6.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/Tph6.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; compiler.generateBytecode(pathToClassFile); loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); classToTest = loader.loadClass("Tph6"); diff --git a/src/test/java/bytecode/TphTest.java b/src/test/java/java/bytecode/TphTest.java similarity index 90% rename from src/test/java/bytecode/TphTest.java rename to src/test/java/java/bytecode/TphTest.java index 7fa8df48c..6effa0693 100644 --- a/src/test/java/bytecode/TphTest.java +++ b/src/test/java/java/bytecode/TphTest.java @@ -24,10 +24,10 @@ public class TphTest { @BeforeClass public static void setUpBeforeClass() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/Tph.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/Tph.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; compiler.generateBytecode(pathToClassFile); loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); classToTest = loader.loadClass("Tph"); diff --git a/src/test/java/bytecode/TypedIDTest.java b/src/test/java/java/bytecode/TypedIDTest.java similarity index 74% rename from src/test/java/bytecode/TypedIDTest.java rename to src/test/java/java/bytecode/TypedIDTest.java index 29f623fcf..99a9995fc 100644 --- a/src/test/java/bytecode/TypedIDTest.java +++ b/src/test/java/java/bytecode/TypedIDTest.java @@ -25,11 +25,11 @@ public class TypedIDTest { @Test public void test() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/TypedID.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/TypedID.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - compiler.generateBytecode(System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + compiler.generateBytecode(System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"); + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); classToTest = loader.loadClass("TypedID"); instanceOfClass = classToTest.getDeclaredConstructor().newInstance(); diff --git a/src/test/java/bytecode/VectorAddTest.java b/src/test/java/java/bytecode/VectorAddTest.java similarity index 82% rename from src/test/java/bytecode/VectorAddTest.java rename to src/test/java/java/bytecode/VectorAddTest.java index 834f516f2..120bd7a08 100644 --- a/src/test/java/bytecode/VectorAddTest.java +++ b/src/test/java/java/bytecode/VectorAddTest.java @@ -25,10 +25,10 @@ public class VectorAddTest { @Test public void test() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/VectorAdd.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/VectorAdd.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; compiler.generateBytecode(pathToClassFile); loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); classToTest = loader.loadClass("VectorAdd"); diff --git a/src/test/java/bytecode/VectorSuperTest.java b/src/test/java/java/bytecode/VectorSuperTest.java similarity index 85% rename from src/test/java/bytecode/VectorSuperTest.java rename to src/test/java/java/bytecode/VectorSuperTest.java index 7699b684a..e7015b518 100644 --- a/src/test/java/bytecode/VectorSuperTest.java +++ b/src/test/java/java/bytecode/VectorSuperTest.java @@ -25,10 +25,10 @@ public class VectorSuperTest { @BeforeClass public static void setUpBeforeClass() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/VectorSuper.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/VectorSuper.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; compiler.generateBytecode(pathToClassFile); loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); classToTest = loader.loadClass("VectorSuper"); diff --git a/src/test/java/bytecode/WhileTest.java b/src/test/java/java/bytecode/WhileTest.java similarity index 91% rename from src/test/java/bytecode/WhileTest.java rename to src/test/java/java/bytecode/WhileTest.java index c266d0761..2adaff4a0 100644 --- a/src/test/java/bytecode/WhileTest.java +++ b/src/test/java/java/bytecode/WhileTest.java @@ -24,10 +24,10 @@ public class WhileTest { @BeforeClass public static void setUpBeforeClass() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/While.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/While.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; compiler.generateBytecode(pathToClassFile); loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); classToTest = loader.loadClass("While"); diff --git a/src/test/java/bytecode/YTest.java b/src/test/java/java/bytecode/YTest.java similarity index 81% rename from src/test/java/bytecode/YTest.java rename to src/test/java/java/bytecode/YTest.java index 45373e2bd..bb78a2043 100644 --- a/src/test/java/bytecode/YTest.java +++ b/src/test/java/java/bytecode/YTest.java @@ -23,11 +23,11 @@ public class YTest { @Test public void generateBC() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/Y.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/Y.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - compiler.generateBytecode(System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + compiler.generateBytecode(System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"); + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); classToTest = loader.loadClass("Y"); /* diff --git a/src/test/java/bytecode/applyLambdaTest.java b/src/test/java/java/bytecode/applyLambdaTest.java similarity index 77% rename from src/test/java/bytecode/applyLambdaTest.java rename to src/test/java/java/bytecode/applyLambdaTest.java index 6fb4722e2..ada25547a 100644 --- a/src/test/java/bytecode/applyLambdaTest.java +++ b/src/test/java/java/bytecode/applyLambdaTest.java @@ -23,11 +23,11 @@ public class applyLambdaTest { @Test public void generateBC() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/applyLambda.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/applyLambda.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - compiler.generateBytecode(System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + compiler.generateBytecode(System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"); + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); classToTest = loader.loadClass("applyLambda"); instanceOfClass = classToTest.getDeclaredConstructor().newInstance(); diff --git a/src/test/java/bytecode/mathStrucIntegerTest.java b/src/test/java/java/bytecode/mathStrucIntegerTest.java similarity index 74% rename from src/test/java/bytecode/mathStrucIntegerTest.java rename to src/test/java/java/bytecode/mathStrucIntegerTest.java index 7100e4af3..ee614db44 100644 --- a/src/test/java/bytecode/mathStrucIntegerTest.java +++ b/src/test/java/java/bytecode/mathStrucIntegerTest.java @@ -25,11 +25,11 @@ public class mathStrucIntegerTest { @Test public void test() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/mathStrucInteger.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/mathStrucInteger.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - compiler.generateBytecode(System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + compiler.generateBytecode(System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"); + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); classToTest = loader.loadClass("mathStrucInteger"); //instanceOfClass = classToTest.getDeclaredConstructor(Integer.class).newInstance("A"); diff --git a/src/test/java/bytecode/mathStrucMatrixOPTest.java.txt b/src/test/java/java/bytecode/mathStrucMatrixOPTest.java.txt similarity index 69% rename from src/test/java/bytecode/mathStrucMatrixOPTest.java.txt rename to src/test/java/java/bytecode/mathStrucMatrixOPTest.java.txt index 30668595f..50bb30adb 100644 --- a/src/test/java/bytecode/mathStrucMatrixOPTest.java.txt +++ b/src/test/java/java/bytecode/mathStrucMatrixOPTest.java.txt @@ -26,12 +26,12 @@ public class mathStrucMatrixOPTest { @Test public void test() throws Exception { //PL 2019-10-24: laeuft nicht durch deshalb ersetzt - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/mathStrucMatrixOp.jav"; - //path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/mathStrucInteger.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/mathStrucMatrixOp.jav"; + //path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/mathStrucInteger.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - compiler.generateBytecode(System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + compiler.generateBytecode(System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"); + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); classToTest = loader.loadClass("mathStrucMatrixOP"); instanceOfClass = classToTest.getDeclaredConstructor(Object.class).newInstance("A"); diff --git a/src/test/java/bytecode/mathStrucTest.java b/src/test/java/java/bytecode/mathStrucTest.java similarity index 74% rename from src/test/java/bytecode/mathStrucTest.java rename to src/test/java/java/bytecode/mathStrucTest.java index d0048f466..d472b403e 100644 --- a/src/test/java/bytecode/mathStrucTest.java +++ b/src/test/java/java/bytecode/mathStrucTest.java @@ -25,11 +25,11 @@ public class mathStrucTest { @Test public void test() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/mathStruc.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/mathStruc.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - compiler.generateBytecode(System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + compiler.generateBytecode(System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"); + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); classToTest = loader.loadClass("mathStruc"); instanceOfClass = classToTest.getDeclaredConstructor(Object.class).newInstance("A"); diff --git a/src/test/java/bytecode/mathStrucVectorAddTest.java.txt b/src/test/java/java/bytecode/mathStrucVectorAddTest.java.txt similarity index 74% rename from src/test/java/bytecode/mathStrucVectorAddTest.java.txt rename to src/test/java/java/bytecode/mathStrucVectorAddTest.java.txt index d26360dc9..61130cf16 100644 --- a/src/test/java/bytecode/mathStrucVectorAddTest.java.txt +++ b/src/test/java/java/bytecode/mathStrucVectorAddTest.java.txt @@ -25,11 +25,11 @@ public class mathStrucVectorAddTest { @Test public void test() throws Exception { - path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/mathStrucVector.jav"; + path = System.getProperty("user.dir")+"/resources/bytecode/javFiles/mathStrucVector.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); - compiler.generateBytecode(System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + compiler.generateBytecode(System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"); + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); classToTest = loader.loadClass("mathStrucVector"); //instanceOfClass = classToTest.getDeclaredConstructor(Integer.class).newInstance("A"); diff --git a/src/test/java/constraintSimplify/FamilyOfGenerics.java b/src/test/java/java/constraintSimplify/FamilyOfGenerics.java similarity index 100% rename from src/test/java/constraintSimplify/FamilyOfGenerics.java rename to src/test/java/java/constraintSimplify/FamilyOfGenerics.java diff --git a/src/test/java/finiteClosure/SuperInterfacesTest.java b/src/test/java/java/finiteClosure/SuperInterfacesTest.java similarity index 100% rename from src/test/java/finiteClosure/SuperInterfacesTest.java rename to src/test/java/java/finiteClosure/SuperInterfacesTest.java diff --git a/src/test/java/insertGenerics/FamilyOfGeneratedGenericsTest.java b/src/test/java/java/insertGenerics/FamilyOfGeneratedGenericsTest.java similarity index 100% rename from src/test/java/insertGenerics/FamilyOfGeneratedGenericsTest.java rename to src/test/java/java/insertGenerics/FamilyOfGeneratedGenericsTest.java diff --git a/src/test/java/insertGenerics/TestAny.java b/src/test/java/java/insertGenerics/TestAny.java similarity index 98% rename from src/test/java/insertGenerics/TestAny.java rename to src/test/java/java/insertGenerics/TestAny.java index e56145152..5865e16be 100644 --- a/src/test/java/insertGenerics/TestAny.java +++ b/src/test/java/java/insertGenerics/TestAny.java @@ -32,7 +32,7 @@ import java.util.Set; public class TestAny { - public static final String rootDirectory = System.getProperty("user.dir")+"/src/test/resources/insertGenericsJav/"; + public static final String rootDirectory = System.getProperty("user.dir")+"/resources/insertGenericsJav/"; @BeforeClass public static void resetNamesOfTypePlaceholder() { diff --git a/src/test/java/insertGenerics/TestClassField.java b/src/test/java/java/insertGenerics/TestClassField.java similarity index 98% rename from src/test/java/insertGenerics/TestClassField.java rename to src/test/java/java/insertGenerics/TestClassField.java index a8070976d..4f03ceb09 100644 --- a/src/test/java/insertGenerics/TestClassField.java +++ b/src/test/java/java/insertGenerics/TestClassField.java @@ -24,7 +24,7 @@ import java.util.Set; public class TestClassField { - public static final String rootDirectory = System.getProperty("user.dir")+"/src/test/resources/insertGenericsJav/"; + public static final String rootDirectory = System.getProperty("user.dir")+"/resources/insertGenericsJav/"; @BeforeClass public static void resetNamesOfTypePlaceholder() { diff --git a/src/test/java/insertGenerics/TestContraVariant.java b/src/test/java/java/insertGenerics/TestContraVariant.java similarity index 98% rename from src/test/java/insertGenerics/TestContraVariant.java rename to src/test/java/java/insertGenerics/TestContraVariant.java index 744f18f5d..3e04a6ae3 100644 --- a/src/test/java/insertGenerics/TestContraVariant.java +++ b/src/test/java/java/insertGenerics/TestContraVariant.java @@ -32,7 +32,7 @@ import java.util.Set; public class TestContraVariant { - public static final String rootDirectory = System.getProperty("user.dir")+"/src/test/resources/insertGenericsJav/"; + public static final String rootDirectory = System.getProperty("user.dir")+"/resources/insertGenericsJav/"; @BeforeClass public static void resetNamesOfTypePlaceholder() { diff --git a/src/test/java/insertGenerics/TestExample42.java b/src/test/java/java/insertGenerics/TestExample42.java similarity index 100% rename from src/test/java/insertGenerics/TestExample42.java rename to src/test/java/java/insertGenerics/TestExample42.java diff --git a/src/test/java/insertGenerics/TestExample42_allInOneMethod.java b/src/test/java/java/insertGenerics/TestExample42_allInOneMethod.java similarity index 100% rename from src/test/java/insertGenerics/TestExample42_allInOneMethod.java rename to src/test/java/java/insertGenerics/TestExample42_allInOneMethod.java diff --git a/src/test/java/insertGenerics/TestGGFinder.java b/src/test/java/java/insertGenerics/TestGGFinder.java similarity index 97% rename from src/test/java/insertGenerics/TestGGFinder.java rename to src/test/java/java/insertGenerics/TestGGFinder.java index 49ca4297f..cc4fdcc6e 100644 --- a/src/test/java/insertGenerics/TestGGFinder.java +++ b/src/test/java/java/insertGenerics/TestGGFinder.java @@ -35,8 +35,8 @@ import java.util.Set; public class TestGGFinder { - private static final String rootDirectory = System.getProperty("user.dir")+"/src/test/resources/insertGenericsJav/"; - private String pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + private static final String rootDirectory = System.getProperty("user.dir")+"/resources/insertGenericsJav/"; + private String pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; private static ClassLoader loader; private static Class classToTest; private static Object instanceOfClass; diff --git a/src/test/java/insertGenerics/TestLocalVarLambda.java b/src/test/java/java/insertGenerics/TestLocalVarLambda.java similarity index 97% rename from src/test/java/insertGenerics/TestLocalVarLambda.java rename to src/test/java/java/insertGenerics/TestLocalVarLambda.java index a3592a24a..8fc87a820 100644 --- a/src/test/java/insertGenerics/TestLocalVarLambda.java +++ b/src/test/java/java/insertGenerics/TestLocalVarLambda.java @@ -35,8 +35,8 @@ import java.util.Set; public class TestLocalVarLambda { - private static final String rootDirectory = System.getProperty("user.dir")+"/src/test/resources/insertGenericsJav/"; - private String pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + private static final String rootDirectory = System.getProperty("user.dir")+"/resources/insertGenericsJav/"; + private String pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; private static ClassLoader loader; private static Class classToTest; private static Object instanceOfClass; diff --git a/src/test/java/insertGenerics/TestMutualRecursion.java b/src/test/java/java/insertGenerics/TestMutualRecursion.java similarity index 98% rename from src/test/java/insertGenerics/TestMutualRecursion.java rename to src/test/java/java/insertGenerics/TestMutualRecursion.java index 823850606..a1345f6b3 100644 --- a/src/test/java/insertGenerics/TestMutualRecursion.java +++ b/src/test/java/java/insertGenerics/TestMutualRecursion.java @@ -35,8 +35,8 @@ import java.util.Set; public class TestMutualRecursion { - private static final String rootDirectory = System.getProperty("user.dir")+"/src/test/resources/insertGenericsJav/"; - private String pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + private static final String rootDirectory = System.getProperty("user.dir")+"/resources/insertGenericsJav/"; + private String pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; private static ClassLoader loader; private static Class classToTest; private static Object instanceOfClass; diff --git a/src/test/java/insertGenerics/TestReturnVar.java b/src/test/java/java/insertGenerics/TestReturnVar.java similarity index 98% rename from src/test/java/insertGenerics/TestReturnVar.java rename to src/test/java/java/insertGenerics/TestReturnVar.java index d4b984745..6c66cc73a 100644 --- a/src/test/java/insertGenerics/TestReturnVar.java +++ b/src/test/java/java/insertGenerics/TestReturnVar.java @@ -24,7 +24,7 @@ import java.util.Set; public class TestReturnVar { - public static final String rootDirectory = System.getProperty("user.dir")+"/src/test/resources/insertGenericsJav/"; + public static final String rootDirectory = System.getProperty("user.dir")+"/resources/insertGenericsJav/"; @BeforeClass public static void resetNamesOfTypePlaceholder() { diff --git a/src/test/java/insertGenerics/TestSecondLineOfClassConstraints.java b/src/test/java/java/insertGenerics/TestSecondLineOfClassConstraints.java similarity index 98% rename from src/test/java/insertGenerics/TestSecondLineOfClassConstraints.java rename to src/test/java/java/insertGenerics/TestSecondLineOfClassConstraints.java index 97cd468f7..73a72ed47 100644 --- a/src/test/java/insertGenerics/TestSecondLineOfClassConstraints.java +++ b/src/test/java/java/insertGenerics/TestSecondLineOfClassConstraints.java @@ -24,7 +24,7 @@ import java.util.Set; public class TestSecondLineOfClassConstraints { - public static final String rootDirectory = System.getProperty("user.dir")+"/src/test/resources/insertGenericsJav/"; + public static final String rootDirectory = System.getProperty("user.dir")+"/resources/insertGenericsJav/"; @BeforeClass public static void resetNamesOfTypePlaceholder() { diff --git a/src/test/java/insertGenerics/TestTPHsAndGenerics.java b/src/test/java/java/insertGenerics/TestTPHsAndGenerics.java similarity index 98% rename from src/test/java/insertGenerics/TestTPHsAndGenerics.java rename to src/test/java/java/insertGenerics/TestTPHsAndGenerics.java index d065151b7..17318b845 100644 --- a/src/test/java/insertGenerics/TestTPHsAndGenerics.java +++ b/src/test/java/java/insertGenerics/TestTPHsAndGenerics.java @@ -36,8 +36,8 @@ import java.util.HashSet; public class TestTPHsAndGenerics { - private static final String rootDirectory = System.getProperty("user.dir")+"/src/test/resources/insertGenericsJav/"; - private String pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + private static final String rootDirectory = System.getProperty("user.dir")+"/resources/insertGenericsJav/"; + private String pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; private static ClassLoader loader; private static Class classToTest; private static Object instanceOfClass; diff --git a/src/test/java/insertGenerics/TestTPHsAndGenerics2.java b/src/test/java/java/insertGenerics/TestTPHsAndGenerics2.java similarity index 98% rename from src/test/java/insertGenerics/TestTPHsAndGenerics2.java rename to src/test/java/java/insertGenerics/TestTPHsAndGenerics2.java index ebf0d9dff..cd24b974b 100644 --- a/src/test/java/insertGenerics/TestTPHsAndGenerics2.java +++ b/src/test/java/java/insertGenerics/TestTPHsAndGenerics2.java @@ -24,7 +24,7 @@ import java.util.Set; public class TestTPHsAndGenerics2 { - public static final String rootDirectory = System.getProperty("user.dir")+"/src/test/resources/insertGenericsJav/"; + public static final String rootDirectory = System.getProperty("user.dir")+"/resources/insertGenericsJav/"; @BeforeClass public static void resetNamesOfTypePlaceholder() { diff --git a/src/test/java/insertGenerics/TestThreeArgs.java b/src/test/java/java/insertGenerics/TestThreeArgs.java similarity index 97% rename from src/test/java/insertGenerics/TestThreeArgs.java rename to src/test/java/java/insertGenerics/TestThreeArgs.java index ff7951f6d..a7c0c09ea 100644 --- a/src/test/java/insertGenerics/TestThreeArgs.java +++ b/src/test/java/java/insertGenerics/TestThreeArgs.java @@ -35,8 +35,8 @@ import java.util.Set; public class TestThreeArgs { - private static final String rootDirectory = System.getProperty("user.dir")+"/src/test/resources/insertGenericsJav/"; - private String pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + private static final String rootDirectory = System.getProperty("user.dir")+"/resources/insertGenericsJav/"; + private String pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; private static ClassLoader loader; private static Class classToTest; private static Object instanceOfClass; diff --git a/src/test/java/insertGenerics/TestTransitiveClosure.java b/src/test/java/java/insertGenerics/TestTransitiveClosure.java similarity index 100% rename from src/test/java/insertGenerics/TestTransitiveClosure.java rename to src/test/java/java/insertGenerics/TestTransitiveClosure.java diff --git a/src/test/java/insertGenerics/TestTwoArgs.java b/src/test/java/java/insertGenerics/TestTwoArgs.java similarity index 98% rename from src/test/java/insertGenerics/TestTwoArgs.java rename to src/test/java/java/insertGenerics/TestTwoArgs.java index 16fbd062c..b21bb99b6 100644 --- a/src/test/java/insertGenerics/TestTwoArgs.java +++ b/src/test/java/java/insertGenerics/TestTwoArgs.java @@ -36,8 +36,8 @@ import java.util.Set; public class TestTwoArgs { - private static final String rootDirectory = System.getProperty("user.dir")+"/src/test/resources/insertGenericsJav/"; - private String pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + private static final String rootDirectory = System.getProperty("user.dir")+"/resources/insertGenericsJav/"; + private String pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; private static ClassLoader loader; private static Class classToTest; private static Object instanceOfClass; diff --git a/src/test/java/insertGenerics/TestTwoArgs2.java b/src/test/java/java/insertGenerics/TestTwoArgs2.java similarity index 97% rename from src/test/java/insertGenerics/TestTwoArgs2.java rename to src/test/java/java/insertGenerics/TestTwoArgs2.java index 467cac404..f9168a205 100644 --- a/src/test/java/insertGenerics/TestTwoArgs2.java +++ b/src/test/java/java/insertGenerics/TestTwoArgs2.java @@ -35,8 +35,8 @@ import java.util.Set; public class TestTwoArgs2 { - private static final String rootDirectory = System.getProperty("user.dir")+"/src/test/resources/insertGenericsJav/"; - private String pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + private static final String rootDirectory = System.getProperty("user.dir")+"/resources/insertGenericsJav/"; + private String pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; private static ClassLoader loader; private static Class classToTest; private static Object instanceOfClass; diff --git a/src/test/java/insertGenerics/TestTwoCalls.java b/src/test/java/java/insertGenerics/TestTwoCalls.java similarity index 97% rename from src/test/java/insertGenerics/TestTwoCalls.java rename to src/test/java/java/insertGenerics/TestTwoCalls.java index adc3bbac7..e5331fca9 100644 --- a/src/test/java/insertGenerics/TestTwoCalls.java +++ b/src/test/java/java/insertGenerics/TestTwoCalls.java @@ -35,8 +35,8 @@ import java.util.Set; public class TestTwoCalls { - private static final String rootDirectory = System.getProperty("user.dir")+"/src/test/resources/insertGenericsJav/"; - private String pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + private static final String rootDirectory = System.getProperty("user.dir")+"/resources/insertGenericsJav/"; + private String pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; private static ClassLoader loader; private static Class classToTest; private static Object instanceOfClass; diff --git a/src/test/java/insertGenerics/TestVector.java b/src/test/java/java/insertGenerics/TestVector.java similarity index 97% rename from src/test/java/insertGenerics/TestVector.java rename to src/test/java/java/insertGenerics/TestVector.java index 6a30a4561..b8e42c21b 100644 --- a/src/test/java/insertGenerics/TestVector.java +++ b/src/test/java/java/insertGenerics/TestVector.java @@ -35,8 +35,8 @@ import java.util.Set; public class TestVector { - private static final String rootDirectory = System.getProperty("user.dir")+"/src/test/resources/insertGenericsJav/"; - private String pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + private static final String rootDirectory = System.getProperty("user.dir")+"/resources/insertGenericsJav/"; + private String pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; private static ClassLoader loader; private static Class classToTest; private static Object instanceOfClass; diff --git a/src/test/java/insertGenerics/TestVectorArg.java b/src/test/java/java/insertGenerics/TestVectorArg.java similarity index 97% rename from src/test/java/insertGenerics/TestVectorArg.java rename to src/test/java/java/insertGenerics/TestVectorArg.java index 455092883..ff1a1b99e 100644 --- a/src/test/java/insertGenerics/TestVectorArg.java +++ b/src/test/java/java/insertGenerics/TestVectorArg.java @@ -35,8 +35,8 @@ import java.util.Set; public class TestVectorArg { - private static final String rootDirectory = System.getProperty("user.dir")+"/src/test/resources/insertGenericsJav/"; - private String pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/testBytecode/generatedBC/"; + private static final String rootDirectory = System.getProperty("user.dir")+"/resources/insertGenericsJav/"; + private String pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; private static ClassLoader loader; private static Class classToTest; private static Object instanceOfClass; diff --git a/src/test/java/insertGenerics/TestVoidMeth.java b/src/test/java/java/insertGenerics/TestVoidMeth.java similarity index 98% rename from src/test/java/insertGenerics/TestVoidMeth.java rename to src/test/java/java/insertGenerics/TestVoidMeth.java index 9dc8f99b5..3b4c19848 100644 --- a/src/test/java/insertGenerics/TestVoidMeth.java +++ b/src/test/java/java/insertGenerics/TestVoidMeth.java @@ -24,7 +24,7 @@ import java.util.Set; public class TestVoidMeth { - public static final String rootDirectory = System.getProperty("user.dir")+"/src/test/resources/insertGenericsJav/"; + public static final String rootDirectory = System.getProperty("user.dir")+"/resources/insertGenericsJav/"; @BeforeClass public static void resetNamesOfTypePlaceholder() { diff --git a/src/test/resources/log4jTesting.xml b/src/test/java/java/log4jTesting.xml similarity index 100% rename from src/test/resources/log4jTesting.xml rename to src/test/java/java/log4jTesting.xml diff --git a/src/test/java/packages/Bytecode.java b/src/test/java/java/packages/Bytecode.java similarity index 97% rename from src/test/java/packages/Bytecode.java rename to src/test/java/java/packages/Bytecode.java index 7b5bb9588..48a21f9bb 100644 --- a/src/test/java/packages/Bytecode.java +++ b/src/test/java/java/packages/Bytecode.java @@ -12,7 +12,7 @@ import java.net.URLClassLoader; public class Bytecode extends TestCase { - public static final String rootDirectory = System.getProperty("user.dir")+"/src/test/resources/javFiles/packageTest/"; + public static final String rootDirectory = System.getProperty("user.dir")+"/resources/javFiles/packageTest/"; @Test public void testSetPackageNameInBytecode() throws Exception { JavaTXCompiler compiler = new JavaTXCompiler(new File(rootDirectory+"de/test/TestClass.jav")); diff --git a/src/test/java/packages/CheckPackageFolder.java b/src/test/java/java/packages/CheckPackageFolder.java similarity index 97% rename from src/test/java/packages/CheckPackageFolder.java rename to src/test/java/java/packages/CheckPackageFolder.java index 4f5454859..cb9a6231b 100644 --- a/src/test/java/packages/CheckPackageFolder.java +++ b/src/test/java/java/packages/CheckPackageFolder.java @@ -12,7 +12,7 @@ import java.util.Arrays; public class CheckPackageFolder extends TestCase { - public static final String rootDirectory = System.getProperty("user.dir")+"/src/test/resources/javFiles/packageTest/de/test/"; + public static final String rootDirectory = System.getProperty("user.dir")+"/resources/javFiles/packageTest/de/test/"; @Test public void testCorrectFolder1FileWithWrongPackageName() throws IOException, ClassNotFoundException { diff --git a/src/test/java/packages/ConsoleInterfaceTest.java b/src/test/java/java/packages/ConsoleInterfaceTest.java similarity index 98% rename from src/test/java/packages/ConsoleInterfaceTest.java rename to src/test/java/java/packages/ConsoleInterfaceTest.java index c92bc8a95..658455af2 100644 --- a/src/test/java/packages/ConsoleInterfaceTest.java +++ b/src/test/java/java/packages/ConsoleInterfaceTest.java @@ -11,7 +11,7 @@ import java.net.URLClassLoader; public class ConsoleInterfaceTest extends TestCase { - public static final String rootDirectory = System.getProperty("user.dir")+"/src/test/resources/javFiles/packageTest/"; + public static final String rootDirectory = System.getProperty("user.dir")+"/resources/javFiles/packageTest/"; @Test public void testCompileSingleJavFile() throws Exception { diff --git a/src/test/java/packages/ImportTest.java b/src/test/java/java/packages/ImportTest.java similarity index 98% rename from src/test/java/packages/ImportTest.java rename to src/test/java/java/packages/ImportTest.java index dc4596291..c6fc6e2e2 100644 --- a/src/test/java/packages/ImportTest.java +++ b/src/test/java/java/packages/ImportTest.java @@ -12,7 +12,7 @@ import java.net.URL; public class ImportTest extends TestCase { - public static final String rootDirectory = System.getProperty("user.dir")+"/src/test/resources/javFiles/packageTest/de/test/"; + public static final String rootDirectory = System.getProperty("user.dir")+"/resources/javFiles/packageTest/de/test/"; public ImportTest() throws ClassNotFoundException, IOException { diff --git a/src/test/java/packages/LoadDefaultPackageClassesTest.java b/src/test/java/java/packages/LoadDefaultPackageClassesTest.java similarity index 97% rename from src/test/java/packages/LoadDefaultPackageClassesTest.java rename to src/test/java/java/packages/LoadDefaultPackageClassesTest.java index 8a3aa3c0d..49f333858 100644 --- a/src/test/java/packages/LoadDefaultPackageClassesTest.java +++ b/src/test/java/java/packages/LoadDefaultPackageClassesTest.java @@ -13,7 +13,7 @@ import java.net.URLClassLoader; public class LoadDefaultPackageClassesTest extends TestCase { - public static final String rootDirectory = System.getProperty("user.dir")+"/src/test/resources/javFiles/packageTest/"; + public static final String rootDirectory = System.getProperty("user.dir")+"/resources/javFiles/packageTest/"; public LoadDefaultPackageClassesTest() throws ClassNotFoundException, IOException { diff --git a/src/test/java/packages/OLOneFileTest.java b/src/test/java/java/packages/OLOneFileTest.java similarity index 97% rename from src/test/java/packages/OLOneFileTest.java rename to src/test/java/java/packages/OLOneFileTest.java index 64b1a2b14..6e91fef7d 100644 --- a/src/test/java/packages/OLOneFileTest.java +++ b/src/test/java/java/packages/OLOneFileTest.java @@ -31,7 +31,7 @@ public class OLOneFileTest { private static Object instanceOfClass1; private static Object instanceOfClass2; - public static final String rootDirectory = System.getProperty("user.dir")+"/src/test/resources/javFiles/packageTest/"; + public static final String rootDirectory = System.getProperty("user.dir")+"/resources/javFiles/packageTest/"; @BeforeClass public static void setUpBeforeClass() throws Exception { @@ -40,7 +40,7 @@ public class OLOneFileTest { compiler = new JavaTXCompiler( Lists.newArrayList(fileToTest), Lists.newArrayList(new File(rootDirectory+"de/test/output/"))); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/javFiles/packageTest/"; + pathToClassFile = System.getProperty("user.dir")+"/resources/javFiles/packageTest/"; List typeinferenceResult = compiler.typeInference(); List simplifyResultsForAllSourceFiles = compiler.getGeneratedGenericResultsForAllSourceFiles(typeinferenceResult); compiler.generateBytecode(new File(pathToClassFile),typeinferenceResult,simplifyResultsForAllSourceFiles); diff --git a/src/test/java/packages/OLTest.java b/src/test/java/java/packages/OLTest.java similarity index 93% rename from src/test/java/packages/OLTest.java rename to src/test/java/java/packages/OLTest.java index c45b387db..ea3f9c1b9 100644 --- a/src/test/java/packages/OLTest.java +++ b/src/test/java/java/packages/OLTest.java @@ -31,7 +31,7 @@ public class OLTest { private static Object instanceOfClass1; private static Object instanceOfClass2; - public static final String rootDirectory = System.getProperty("user.dir")+"/src/test/resources/javFiles/packageTest"; + public static final String rootDirectory = System.getProperty("user.dir")+"/resources/javFiles/packageTest"; @BeforeClass public static void setUpBeforeClass() throws Exception { @@ -42,25 +42,25 @@ public class OLTest { classToTest = loader.loadClass("de.test.OL"); instanceOfClass = classToTest.getDeclaredConstructor().newInstance(); - path = System.getProperty("user.dir")+"/src/test/resources/javFiles/packageTest/OLextends.jav"; + path = System.getProperty("user.dir")+"/resources/javFiles/packageTest/OLextends.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler( Lists.newArrayList(new File(rootDirectory+"/OLextends.jav")), Lists.newArrayList(new File(rootDirectory+"/de/test/output/"))); //compiler = new JavaTXCompiler(fileToTest); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/javFiles/packageTest/"; + pathToClassFile = System.getProperty("user.dir")+"/resources/javFiles/packageTest/"; compiler.generateBytecode(pathToClassFile); loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile), new URL("file://"+ rootDirectory + "/de/test/output/")}); classToTest1 = loader.loadClass("OLextends"); instanceOfClass1 = classToTest1.getDeclaredConstructor().newInstance(); - path = System.getProperty("user.dir")+"/src/test/resources/javFiles/packageTest/OLMain.jav"; + path = System.getProperty("user.dir")+"/resources/javFiles/packageTest/OLMain.jav"; fileToTest = new File(path); compiler = new JavaTXCompiler( Lists.newArrayList(new File(rootDirectory+"/OLMain.jav")), Lists.newArrayList(new File(rootDirectory+"/de/test/output/"))); //compiler = new JavaTXCompiler(fileToTest); - pathToClassFile = System.getProperty("user.dir")+"/src/test/resources/javFiles/packageTest/"; + pathToClassFile = System.getProperty("user.dir")+"/resources/javFiles/packageTest/"; compiler.generateBytecode(pathToClassFile); loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile), new URL("file://"+ rootDirectory + "/de/test/output/")}); classToTest2 = loader.loadClass("OLMain"); diff --git a/src/test/java/packages/ParsePackageName.java b/src/test/java/java/packages/ParsePackageName.java similarity index 90% rename from src/test/java/packages/ParsePackageName.java rename to src/test/java/java/packages/ParsePackageName.java index 9dc0ea9ab..ba5abac7a 100644 --- a/src/test/java/packages/ParsePackageName.java +++ b/src/test/java/java/packages/ParsePackageName.java @@ -9,7 +9,7 @@ import java.io.IOException; public class ParsePackageName { - public static final String rootDirectory = System.getProperty("user.dir")+"/src/test/resources/javFiles/packageTest/de/test/"; + public static final String rootDirectory = System.getProperty("user.dir")+"/resources/javFiles/packageTest/de/test/"; @Test public void parsePackage() throws IOException, ClassNotFoundException { JavaTXCompiler compiler = new JavaTXCompiler(new File(rootDirectory+"TestClass.jav")); diff --git a/src/test/java/packages/mathStrucMatrixOPTest.java.txt b/src/test/java/java/packages/mathStrucMatrixOPTest.java.txt similarity index 96% rename from src/test/java/packages/mathStrucMatrixOPTest.java.txt rename to src/test/java/java/packages/mathStrucMatrixOPTest.java.txt index f383a2b84..c9c24969d 100644 --- a/src/test/java/packages/mathStrucMatrixOPTest.java.txt +++ b/src/test/java/java/packages/mathStrucMatrixOPTest.java.txt @@ -12,7 +12,7 @@ import java.net.URL; public class mathStrucMatrixOPTest extends TestCase { - public static final String rootDirectory = System.getProperty("user.dir")+"/src/test/resources/javFiles/packageTest/de/test/"; + public static final String rootDirectory = System.getProperty("user.dir")+"/resources/javFiles/packageTest/de/test/"; public mathStrucMatrixOPTest() throws ClassNotFoundException, IOException { diff --git a/src/test/java/packages/mathStrucVectorTest.java b/src/test/java/java/packages/mathStrucVectorTest.java similarity index 96% rename from src/test/java/packages/mathStrucVectorTest.java rename to src/test/java/java/packages/mathStrucVectorTest.java index a9d076840..0d299d7b8 100644 --- a/src/test/java/packages/mathStrucVectorTest.java +++ b/src/test/java/java/packages/mathStrucVectorTest.java @@ -12,7 +12,7 @@ import java.net.URL; public class mathStrucVectorTest extends TestCase { - public static final String rootDirectory = System.getProperty("user.dir")+"/src/test/resources/javFiles/packageTest/de/test/"; + public static final String rootDirectory = System.getProperty("user.dir")+"/resources/javFiles/packageTest/de/test/"; public mathStrucVectorTest() throws ClassNotFoundException, IOException { diff --git a/src/test/java/parser/AntlrTest.jav b/src/test/java/java/parser/AntlrTest.jav similarity index 100% rename from src/test/java/parser/AntlrTest.jav rename to src/test/java/java/parser/AntlrTest.jav diff --git a/src/test/java/parser/BoundedParameter.jav b/src/test/java/java/parser/BoundedParameter.jav similarity index 100% rename from src/test/java/parser/BoundedParameter.jav rename to src/test/java/java/parser/BoundedParameter.jav diff --git a/src/test/java/parser/CastTest.jav b/src/test/java/java/parser/CastTest.jav similarity index 100% rename from src/test/java/parser/CastTest.jav rename to src/test/java/java/parser/CastTest.jav diff --git a/src/test/java/parser/ExtendsTest.jav b/src/test/java/java/parser/ExtendsTest.jav similarity index 100% rename from src/test/java/parser/ExtendsTest.jav rename to src/test/java/java/parser/ExtendsTest.jav diff --git a/src/test/java/parser/FeatherWeightJava.jav b/src/test/java/java/parser/FeatherWeightJava.jav similarity index 100% rename from src/test/java/parser/FeatherWeightJava.jav rename to src/test/java/java/parser/FeatherWeightJava.jav diff --git a/src/test/java/parser/FieldInitializationTest.jav b/src/test/java/java/parser/FieldInitializationTest.jav similarity index 100% rename from src/test/java/parser/FieldInitializationTest.jav rename to src/test/java/java/parser/FieldInitializationTest.jav diff --git a/src/test/java/parser/FieldVarTest.jav b/src/test/java/java/parser/FieldVarTest.jav similarity index 100% rename from src/test/java/parser/FieldVarTest.jav rename to src/test/java/java/parser/FieldVarTest.jav diff --git a/src/test/java/parser/GeneralParserTest.java b/src/test/java/java/parser/GeneralParserTest.java similarity index 100% rename from src/test/java/parser/GeneralParserTest.java rename to src/test/java/java/parser/GeneralParserTest.java diff --git a/src/test/java/parser/GenericFieldVarTest.jav b/src/test/java/java/parser/GenericFieldVarTest.jav similarity index 100% rename from src/test/java/parser/GenericFieldVarTest.jav rename to src/test/java/java/parser/GenericFieldVarTest.jav diff --git a/src/test/java/parser/ImportTest.jav b/src/test/java/java/parser/ImportTest.jav similarity index 100% rename from src/test/java/parser/ImportTest.jav rename to src/test/java/java/parser/ImportTest.jav diff --git a/src/test/java/parser/ImportTest2.jav b/src/test/java/java/parser/ImportTest2.jav similarity index 100% rename from src/test/java/parser/ImportTest2.jav rename to src/test/java/java/parser/ImportTest2.jav diff --git a/src/test/java/parser/ImportTestGeneric.jav b/src/test/java/java/parser/ImportTestGeneric.jav similarity index 100% rename from src/test/java/parser/ImportTestGeneric.jav rename to src/test/java/java/parser/ImportTestGeneric.jav diff --git a/src/test/java/parser/NewTest.jav b/src/test/java/java/parser/NewTest.jav similarity index 100% rename from src/test/java/parser/NewTest.jav rename to src/test/java/java/parser/NewTest.jav diff --git a/src/test/java/parser/OpratorTest.jav b/src/test/java/java/parser/OpratorTest.jav similarity index 100% rename from src/test/java/parser/OpratorTest.jav rename to src/test/java/java/parser/OpratorTest.jav diff --git a/src/test/java/parser/PackageNameTest.jav b/src/test/java/java/parser/PackageNameTest.jav similarity index 100% rename from src/test/java/parser/PackageNameTest.jav rename to src/test/java/java/parser/PackageNameTest.jav diff --git a/src/test/java/parser/StatementsTest.jav b/src/test/java/java/parser/StatementsTest.jav similarity index 100% rename from src/test/java/parser/StatementsTest.jav rename to src/test/java/java/parser/StatementsTest.jav diff --git a/src/test/java/parser/StructuralTypes.jav b/src/test/java/java/parser/StructuralTypes.jav similarity index 100% rename from src/test/java/parser/StructuralTypes.jav rename to src/test/java/java/parser/StructuralTypes.jav diff --git a/src/test/java/parser/WhileTest.jav b/src/test/java/java/parser/WhileTest.jav similarity index 100% rename from src/test/java/parser/WhileTest.jav rename to src/test/java/java/parser/WhileTest.jav diff --git a/src/test/java/typeinference/JavaTXCompilerTest.java b/src/test/java/java/typeinference/JavaTXCompilerTest.java similarity index 99% rename from src/test/java/typeinference/JavaTXCompilerTest.java rename to src/test/java/java/typeinference/JavaTXCompilerTest.java index 7a062779b..63570d959 100644 --- a/src/test/java/typeinference/JavaTXCompilerTest.java +++ b/src/test/java/java/typeinference/JavaTXCompilerTest.java @@ -23,7 +23,7 @@ import java.util.Set; public class JavaTXCompilerTest { - public static final String rootDirectory = System.getProperty("user.dir")+"/src/test/resources/javFiles/"; + public static final String rootDirectory = System.getProperty("user.dir")+"/resources/javFiles/"; @Test public void finiteClosure() throws IOException, ClassNotFoundException { execute(new File(rootDirectory+"fc.jav")); diff --git a/src/test/java/typeinference/Meth_GenTest.java b/src/test/java/java/typeinference/Meth_GenTest.java similarity index 99% rename from src/test/java/typeinference/Meth_GenTest.java rename to src/test/java/java/typeinference/Meth_GenTest.java index 1fa39d9a0..0eb4feabc 100644 --- a/src/test/java/typeinference/Meth_GenTest.java +++ b/src/test/java/java/typeinference/Meth_GenTest.java @@ -23,7 +23,7 @@ import java.util.Set; public class Meth_GenTest { - public static final String rootDirectory = System.getProperty("user.dir")+"/src/test/resources/javFiles/"; + public static final String rootDirectory = System.getProperty("user.dir")+"/resources/javFiles/"; /* @Test public void finiteClosure() throws IOException, ClassNotFoundException { diff --git a/src/test/java/typeinference/UnifyTest.java b/src/test/java/java/typeinference/UnifyTest.java similarity index 99% rename from src/test/java/typeinference/UnifyTest.java rename to src/test/java/java/typeinference/UnifyTest.java index 5a0492b5d..366b010ec 100644 --- a/src/test/java/typeinference/UnifyTest.java +++ b/src/test/java/java/typeinference/UnifyTest.java @@ -23,7 +23,7 @@ import java.util.Set; public class UnifyTest { - public static final String rootDirectory = System.getProperty("user.dir")+"/src/test/resources/javFiles/"; + public static final String rootDirectory = System.getProperty("user.dir")+"/resources/javFiles/"; /* @Test public void finiteClosure() throws IOException, ClassNotFoundException { diff --git a/src/test/java/visualisation/ToString.java b/src/test/java/java/visualisation/ToString.java similarity index 100% rename from src/test/java/visualisation/ToString.java rename to src/test/java/java/visualisation/ToString.java diff --git a/src/test/resources/testBytecode/manually/Fac1.java b/src/test/resources/testBytecode/manually/Fac1.java deleted file mode 100644 index e36ad3aed..000000000 --- a/src/test/resources/testBytecode/manually/Fac1.java +++ /dev/null @@ -1,6 +0,0 @@ -class Fuc1{ - - Integer mul(Integer x, Integer y) { - return x; - } -} diff --git a/src/test/resources/testBytecode/manually/Fac2.java b/src/test/resources/testBytecode/manually/Fac2.java deleted file mode 100644 index dbf307b83..000000000 --- a/src/test/resources/testBytecode/manually/Fac2.java +++ /dev/null @@ -1,14 +0,0 @@ -import java.util.function.Function; -class Fac2 { - - Integer mul(Integer x, Integer y) { - return x; - } - - Function m () { - Function fact = (Integer x) -> { - return mul(x, x); - }; - return fact; - } -} diff --git a/src/test/resources/testBytecode/manually/LamAssign.java b/src/test/resources/testBytecode/manually/LamAssign.java deleted file mode 100644 index 8d45a6415..000000000 --- a/src/test/resources/testBytecode/manually/LamAssign.java +++ /dev/null @@ -1,10 +0,0 @@ -import java.util.function.Function; -class LamAssign { - - Function m () { - Function lam1 = (Integer x) -> { - return x; - }; - return lam1; - } -} diff --git a/src/test/resources/testBytecode/manually/LamAssignWithM.java b/src/test/resources/testBytecode/manually/LamAssignWithM.java deleted file mode 100644 index 61077d275..000000000 --- a/src/test/resources/testBytecode/manually/LamAssignWithM.java +++ /dev/null @@ -1,12 +0,0 @@ -import java.util.function.Function; -class LamAssignWithM { - Integer mul(Integer x, Integer y) { - return x; - } - Function m () { - Function lam1 = (Integer x) -> { - return mul(x,x); - }; - return lam1; - } -} diff --git a/src/test/resources/testBytecode/manually/LamWithAnField.java b/src/test/resources/testBytecode/manually/LamWithAnField.java deleted file mode 100644 index ae6da4fc1..000000000 --- a/src/test/resources/testBytecode/manually/LamWithAnField.java +++ /dev/null @@ -1,14 +0,0 @@ -import java.util.function.Function; -class LamWithAnField { - Integer mul(Integer x, Integer y) { - return x; - } - LamWithField temp= new LamWithField(); - Function m () { - Function lam1 = (Integer x) -> { - return temp.res*x; - }; - return lam1; - } -} - diff --git a/src/test/resources/testBytecode/manually/LamWithField.java b/src/test/resources/testBytecode/manually/LamWithField.java deleted file mode 100644 index dacdca8bf..000000000 --- a/src/test/resources/testBytecode/manually/LamWithField.java +++ /dev/null @@ -1,14 +0,0 @@ -import java.util.function.Function; -class LamWithField { - Integer mul(Integer x, Integer y) { - return x; - } - Integer res = new Integer(5); - Function m () { - Function lam1 = (Integer x) -> { - return res*x; - }; - return lam1; - } -} - diff --git a/src/test/resources/testBytecode/manually/ReturnM1.java b/src/test/resources/testBytecode/manually/ReturnM1.java deleted file mode 100644 index 3f89147dd..000000000 --- a/src/test/resources/testBytecode/manually/ReturnM1.java +++ /dev/null @@ -1,6 +0,0 @@ -class ReturnM1{ - Integer r; - Integer mul(Integer x, Integer y) { - return r; - } -} From 3df7df9802b7bfdb329a7827f89b78512d9330de Mon Sep 17 00:00:00 2001 From: "pl@gohorb.ba-horb.de" Date: Tue, 15 Nov 2022 16:50:43 +0100 Subject: [PATCH 07/10] modified: src/test/resources/bytecode/javFiles/VectorAdd.jav --- src/test/resources/bytecode/javFiles/VectorAdd.jav | 1 + 1 file changed, 1 insertion(+) diff --git a/src/test/resources/bytecode/javFiles/VectorAdd.jav b/src/test/resources/bytecode/javFiles/VectorAdd.jav index 252c322c3..af44a8231 100644 --- a/src/test/resources/bytecode/javFiles/VectorAdd.jav +++ b/src/test/resources/bytecode/javFiles/VectorAdd.jav @@ -16,6 +16,7 @@ public class VectorAdd { erg = v1.elementAt(i) + v2.elementAt(i); ret.addElement(erg); } + v1.addAll return ret; } } From f8c8e2c805b3ee2c805baa560e33f4996271cf18 Mon Sep 17 00:00:00 2001 From: JanUlrich Date: Fri, 18 Nov 2022 09:50:35 +0100 Subject: [PATCH 08/10] Move Tests --- src/test/java/{java => }/astfactory/ASTFactoryTest.java | 0 src/test/java/{java => }/bytecode/BinaryTest.java | 0 src/test/java/{java => }/bytecode/ClassGenLamTest.java | 0 src/test/java/{java => }/bytecode/FacTest.java | 0 src/test/java/{java => }/bytecode/FacultyTest.java | 0 src/test/java/{java => }/bytecode/FieldTest.java | 0 src/test/java/{java => }/bytecode/FieldTph2Test.java | 0 src/test/java/{java => }/bytecode/FieldTphConsMethTest.java | 0 src/test/java/{java => }/bytecode/FieldTphMMethTest.java | 0 src/test/java/{java => }/bytecode/GenTest.java | 0 src/test/java/{java => }/bytecode/GreaterEqualTest.java | 0 src/test/java/{java => }/bytecode/GreaterThanTest.java | 0 src/test/java/{java => }/bytecode/IdTest.java | 0 src/test/java/{java => }/bytecode/InfTest.java | 0 src/test/java/{java => }/bytecode/InheritTest.java | 0 src/test/java/{java => }/bytecode/InheritTest2.java | 0 src/test/java/{java => }/bytecode/KompTphTest.java | 0 src/test/java/{java => }/bytecode/LambdaCapturetest.java | 0 src/test/java/{java => }/bytecode/LambdaTest.java | 0 src/test/java/{java => }/bytecode/LambdaVoidTest.java | 0 src/test/java/{java => }/bytecode/LessEqualTest.java | 0 src/test/java/{java => }/bytecode/LessThanTest.java | 0 src/test/java/{java => }/bytecode/MatrixOpTest.java | 0 src/test/java/{java => }/bytecode/MatrixTest.java | 0 src/test/java/{java => }/bytecode/MergeTest.java | 0 src/test/java/{java => }/bytecode/OLFunTest.java | 0 src/test/java/{java => }/bytecode/OLTest.java | 0 src/test/java/{java => }/bytecode/OpTest.java | 0 src/test/java/{java => }/bytecode/OverloadingSortingTest.java | 0 src/test/java/{java => }/bytecode/OverloadingTest.java | 0 src/test/java/{java => }/bytecode/PlusTest.java | 0 src/test/java/{java => }/bytecode/PostIncTest.java | 0 src/test/java/{java => }/bytecode/PreIncTest.java | 0 src/test/java/{java => }/bytecode/PutTest.java | 0 src/test/java/{java => }/bytecode/RelOpsTest.java | 0 src/test/java/{java => }/bytecode/SimpleCycleTest.java | 0 src/test/java/{java => }/bytecode/SortingTest.java | 0 src/test/java/{java => }/bytecode/SubMatTest.java | 0 src/test/java/{java => }/bytecode/Tph2Test.java | 0 src/test/java/{java => }/bytecode/Tph3Test.java | 0 src/test/java/{java => }/bytecode/Tph5Test.java | 0 src/test/java/{java => }/bytecode/Tph6Test.java | 0 src/test/java/{java => }/bytecode/TphTest.java | 0 src/test/java/{java => }/bytecode/TypedIDTest.java | 0 src/test/java/{java => }/bytecode/VectorAddTest.java | 0 src/test/java/{java => }/bytecode/VectorSuperTest.java | 0 src/test/java/{java => }/bytecode/WhileTest.java | 0 src/test/java/{java => }/bytecode/YTest.java | 0 src/test/java/{java => }/bytecode/applyLambdaTest.java | 0 src/test/java/{java => }/bytecode/mathStrucIntegerTest.java | 0 src/test/java/{java => }/bytecode/mathStrucMatrixOPTest.java.txt | 0 src/test/java/{java => }/bytecode/mathStrucTest.java | 0 src/test/java/{java => }/bytecode/mathStrucVectorAddTest.java.txt | 0 src/test/java/{java => }/constraintSimplify/FamilyOfGenerics.java | 0 src/test/java/{java => }/finiteClosure/SuperInterfacesTest.java | 0 .../{java => }/insertGenerics/FamilyOfGeneratedGenericsTest.java | 0 src/test/java/{java => }/insertGenerics/TestAny.java | 0 src/test/java/{java => }/insertGenerics/TestClassField.java | 0 src/test/java/{java => }/insertGenerics/TestContraVariant.java | 0 src/test/java/{java => }/insertGenerics/TestExample42.java | 0 .../{java => }/insertGenerics/TestExample42_allInOneMethod.java | 0 src/test/java/{java => }/insertGenerics/TestGGFinder.java | 0 src/test/java/{java => }/insertGenerics/TestLocalVarLambda.java | 0 src/test/java/{java => }/insertGenerics/TestMutualRecursion.java | 0 src/test/java/{java => }/insertGenerics/TestReturnVar.java | 0 .../insertGenerics/TestSecondLineOfClassConstraints.java | 0 src/test/java/{java => }/insertGenerics/TestTPHsAndGenerics.java | 0 src/test/java/{java => }/insertGenerics/TestTPHsAndGenerics2.java | 0 src/test/java/{java => }/insertGenerics/TestThreeArgs.java | 0 .../java/{java => }/insertGenerics/TestTransitiveClosure.java | 0 src/test/java/{java => }/insertGenerics/TestTwoArgs.java | 0 src/test/java/{java => }/insertGenerics/TestTwoArgs2.java | 0 src/test/java/{java => }/insertGenerics/TestTwoCalls.java | 0 src/test/java/{java => }/insertGenerics/TestVector.java | 0 src/test/java/{java => }/insertGenerics/TestVectorArg.java | 0 src/test/java/{java => }/insertGenerics/TestVoidMeth.java | 0 src/test/java/{java => }/log4jTesting.xml | 0 src/test/java/{java => }/packages/Bytecode.java | 0 src/test/java/{java => }/packages/CheckPackageFolder.java | 0 src/test/java/{java => }/packages/ConsoleInterfaceTest.java | 0 src/test/java/{java => }/packages/ImportTest.java | 0 .../java/{java => }/packages/LoadDefaultPackageClassesTest.java | 0 src/test/java/{java => }/packages/OLOneFileTest.java | 0 src/test/java/{java => }/packages/OLTest.java | 0 src/test/java/{java => }/packages/ParsePackageName.java | 0 src/test/java/{java => }/packages/mathStrucMatrixOPTest.java.txt | 0 src/test/java/{java => }/packages/mathStrucVectorTest.java | 0 src/test/java/{java => }/parser/AntlrTest.jav | 0 src/test/java/{java => }/parser/BoundedParameter.jav | 0 src/test/java/{java => }/parser/CastTest.jav | 0 src/test/java/{java => }/parser/ExtendsTest.jav | 0 src/test/java/{java => }/parser/FeatherWeightJava.jav | 0 src/test/java/{java => }/parser/FieldInitializationTest.jav | 0 src/test/java/{java => }/parser/FieldVarTest.jav | 0 src/test/java/{java => }/parser/GeneralParserTest.java | 0 src/test/java/{java => }/parser/GenericFieldVarTest.jav | 0 src/test/java/{java => }/parser/ImportTest.jav | 0 src/test/java/{java => }/parser/ImportTest2.jav | 0 src/test/java/{java => }/parser/ImportTestGeneric.jav | 0 src/test/java/{java => }/parser/NewTest.jav | 0 src/test/java/{java => }/parser/OpratorTest.jav | 0 src/test/java/{java => }/parser/PackageNameTest.jav | 0 src/test/java/{java => }/parser/StatementsTest.jav | 0 src/test/java/{java => }/parser/StructuralTypes.jav | 0 src/test/java/{java => }/parser/WhileTest.jav | 0 src/test/java/{java => }/typeinference/JavaTXCompilerTest.java | 0 src/test/java/{java => }/typeinference/Meth_GenTest.java | 0 src/test/java/{java => }/typeinference/UnifyTest.java | 0 src/test/java/{java => }/visualisation/ToString.java | 0 109 files changed, 0 insertions(+), 0 deletions(-) rename src/test/java/{java => }/astfactory/ASTFactoryTest.java (100%) rename src/test/java/{java => }/bytecode/BinaryTest.java (100%) rename src/test/java/{java => }/bytecode/ClassGenLamTest.java (100%) rename src/test/java/{java => }/bytecode/FacTest.java (100%) rename src/test/java/{java => }/bytecode/FacultyTest.java (100%) rename src/test/java/{java => }/bytecode/FieldTest.java (100%) rename src/test/java/{java => }/bytecode/FieldTph2Test.java (100%) rename src/test/java/{java => }/bytecode/FieldTphConsMethTest.java (100%) rename src/test/java/{java => }/bytecode/FieldTphMMethTest.java (100%) rename src/test/java/{java => }/bytecode/GenTest.java (100%) rename src/test/java/{java => }/bytecode/GreaterEqualTest.java (100%) rename src/test/java/{java => }/bytecode/GreaterThanTest.java (100%) rename src/test/java/{java => }/bytecode/IdTest.java (100%) rename src/test/java/{java => }/bytecode/InfTest.java (100%) rename src/test/java/{java => }/bytecode/InheritTest.java (100%) rename src/test/java/{java => }/bytecode/InheritTest2.java (100%) rename src/test/java/{java => }/bytecode/KompTphTest.java (100%) rename src/test/java/{java => }/bytecode/LambdaCapturetest.java (100%) rename src/test/java/{java => }/bytecode/LambdaTest.java (100%) rename src/test/java/{java => }/bytecode/LambdaVoidTest.java (100%) rename src/test/java/{java => }/bytecode/LessEqualTest.java (100%) rename src/test/java/{java => }/bytecode/LessThanTest.java (100%) rename src/test/java/{java => }/bytecode/MatrixOpTest.java (100%) rename src/test/java/{java => }/bytecode/MatrixTest.java (100%) rename src/test/java/{java => }/bytecode/MergeTest.java (100%) rename src/test/java/{java => }/bytecode/OLFunTest.java (100%) rename src/test/java/{java => }/bytecode/OLTest.java (100%) rename src/test/java/{java => }/bytecode/OpTest.java (100%) rename src/test/java/{java => }/bytecode/OverloadingSortingTest.java (100%) rename src/test/java/{java => }/bytecode/OverloadingTest.java (100%) rename src/test/java/{java => }/bytecode/PlusTest.java (100%) rename src/test/java/{java => }/bytecode/PostIncTest.java (100%) rename src/test/java/{java => }/bytecode/PreIncTest.java (100%) rename src/test/java/{java => }/bytecode/PutTest.java (100%) rename src/test/java/{java => }/bytecode/RelOpsTest.java (100%) rename src/test/java/{java => }/bytecode/SimpleCycleTest.java (100%) rename src/test/java/{java => }/bytecode/SortingTest.java (100%) rename src/test/java/{java => }/bytecode/SubMatTest.java (100%) rename src/test/java/{java => }/bytecode/Tph2Test.java (100%) rename src/test/java/{java => }/bytecode/Tph3Test.java (100%) rename src/test/java/{java => }/bytecode/Tph5Test.java (100%) rename src/test/java/{java => }/bytecode/Tph6Test.java (100%) rename src/test/java/{java => }/bytecode/TphTest.java (100%) rename src/test/java/{java => }/bytecode/TypedIDTest.java (100%) rename src/test/java/{java => }/bytecode/VectorAddTest.java (100%) rename src/test/java/{java => }/bytecode/VectorSuperTest.java (100%) rename src/test/java/{java => }/bytecode/WhileTest.java (100%) rename src/test/java/{java => }/bytecode/YTest.java (100%) rename src/test/java/{java => }/bytecode/applyLambdaTest.java (100%) rename src/test/java/{java => }/bytecode/mathStrucIntegerTest.java (100%) rename src/test/java/{java => }/bytecode/mathStrucMatrixOPTest.java.txt (100%) rename src/test/java/{java => }/bytecode/mathStrucTest.java (100%) rename src/test/java/{java => }/bytecode/mathStrucVectorAddTest.java.txt (100%) rename src/test/java/{java => }/constraintSimplify/FamilyOfGenerics.java (100%) rename src/test/java/{java => }/finiteClosure/SuperInterfacesTest.java (100%) rename src/test/java/{java => }/insertGenerics/FamilyOfGeneratedGenericsTest.java (100%) rename src/test/java/{java => }/insertGenerics/TestAny.java (100%) rename src/test/java/{java => }/insertGenerics/TestClassField.java (100%) rename src/test/java/{java => }/insertGenerics/TestContraVariant.java (100%) rename src/test/java/{java => }/insertGenerics/TestExample42.java (100%) rename src/test/java/{java => }/insertGenerics/TestExample42_allInOneMethod.java (100%) rename src/test/java/{java => }/insertGenerics/TestGGFinder.java (100%) rename src/test/java/{java => }/insertGenerics/TestLocalVarLambda.java (100%) rename src/test/java/{java => }/insertGenerics/TestMutualRecursion.java (100%) rename src/test/java/{java => }/insertGenerics/TestReturnVar.java (100%) rename src/test/java/{java => }/insertGenerics/TestSecondLineOfClassConstraints.java (100%) rename src/test/java/{java => }/insertGenerics/TestTPHsAndGenerics.java (100%) rename src/test/java/{java => }/insertGenerics/TestTPHsAndGenerics2.java (100%) rename src/test/java/{java => }/insertGenerics/TestThreeArgs.java (100%) rename src/test/java/{java => }/insertGenerics/TestTransitiveClosure.java (100%) rename src/test/java/{java => }/insertGenerics/TestTwoArgs.java (100%) rename src/test/java/{java => }/insertGenerics/TestTwoArgs2.java (100%) rename src/test/java/{java => }/insertGenerics/TestTwoCalls.java (100%) rename src/test/java/{java => }/insertGenerics/TestVector.java (100%) rename src/test/java/{java => }/insertGenerics/TestVectorArg.java (100%) rename src/test/java/{java => }/insertGenerics/TestVoidMeth.java (100%) rename src/test/java/{java => }/log4jTesting.xml (100%) rename src/test/java/{java => }/packages/Bytecode.java (100%) rename src/test/java/{java => }/packages/CheckPackageFolder.java (100%) rename src/test/java/{java => }/packages/ConsoleInterfaceTest.java (100%) rename src/test/java/{java => }/packages/ImportTest.java (100%) rename src/test/java/{java => }/packages/LoadDefaultPackageClassesTest.java (100%) rename src/test/java/{java => }/packages/OLOneFileTest.java (100%) rename src/test/java/{java => }/packages/OLTest.java (100%) rename src/test/java/{java => }/packages/ParsePackageName.java (100%) rename src/test/java/{java => }/packages/mathStrucMatrixOPTest.java.txt (100%) rename src/test/java/{java => }/packages/mathStrucVectorTest.java (100%) rename src/test/java/{java => }/parser/AntlrTest.jav (100%) rename src/test/java/{java => }/parser/BoundedParameter.jav (100%) rename src/test/java/{java => }/parser/CastTest.jav (100%) rename src/test/java/{java => }/parser/ExtendsTest.jav (100%) rename src/test/java/{java => }/parser/FeatherWeightJava.jav (100%) rename src/test/java/{java => }/parser/FieldInitializationTest.jav (100%) rename src/test/java/{java => }/parser/FieldVarTest.jav (100%) rename src/test/java/{java => }/parser/GeneralParserTest.java (100%) rename src/test/java/{java => }/parser/GenericFieldVarTest.jav (100%) rename src/test/java/{java => }/parser/ImportTest.jav (100%) rename src/test/java/{java => }/parser/ImportTest2.jav (100%) rename src/test/java/{java => }/parser/ImportTestGeneric.jav (100%) rename src/test/java/{java => }/parser/NewTest.jav (100%) rename src/test/java/{java => }/parser/OpratorTest.jav (100%) rename src/test/java/{java => }/parser/PackageNameTest.jav (100%) rename src/test/java/{java => }/parser/StatementsTest.jav (100%) rename src/test/java/{java => }/parser/StructuralTypes.jav (100%) rename src/test/java/{java => }/parser/WhileTest.jav (100%) rename src/test/java/{java => }/typeinference/JavaTXCompilerTest.java (100%) rename src/test/java/{java => }/typeinference/Meth_GenTest.java (100%) rename src/test/java/{java => }/typeinference/UnifyTest.java (100%) rename src/test/java/{java => }/visualisation/ToString.java (100%) diff --git a/src/test/java/java/astfactory/ASTFactoryTest.java b/src/test/java/astfactory/ASTFactoryTest.java similarity index 100% rename from src/test/java/java/astfactory/ASTFactoryTest.java rename to src/test/java/astfactory/ASTFactoryTest.java diff --git a/src/test/java/java/bytecode/BinaryTest.java b/src/test/java/bytecode/BinaryTest.java similarity index 100% rename from src/test/java/java/bytecode/BinaryTest.java rename to src/test/java/bytecode/BinaryTest.java diff --git a/src/test/java/java/bytecode/ClassGenLamTest.java b/src/test/java/bytecode/ClassGenLamTest.java similarity index 100% rename from src/test/java/java/bytecode/ClassGenLamTest.java rename to src/test/java/bytecode/ClassGenLamTest.java diff --git a/src/test/java/java/bytecode/FacTest.java b/src/test/java/bytecode/FacTest.java similarity index 100% rename from src/test/java/java/bytecode/FacTest.java rename to src/test/java/bytecode/FacTest.java diff --git a/src/test/java/java/bytecode/FacultyTest.java b/src/test/java/bytecode/FacultyTest.java similarity index 100% rename from src/test/java/java/bytecode/FacultyTest.java rename to src/test/java/bytecode/FacultyTest.java diff --git a/src/test/java/java/bytecode/FieldTest.java b/src/test/java/bytecode/FieldTest.java similarity index 100% rename from src/test/java/java/bytecode/FieldTest.java rename to src/test/java/bytecode/FieldTest.java diff --git a/src/test/java/java/bytecode/FieldTph2Test.java b/src/test/java/bytecode/FieldTph2Test.java similarity index 100% rename from src/test/java/java/bytecode/FieldTph2Test.java rename to src/test/java/bytecode/FieldTph2Test.java diff --git a/src/test/java/java/bytecode/FieldTphConsMethTest.java b/src/test/java/bytecode/FieldTphConsMethTest.java similarity index 100% rename from src/test/java/java/bytecode/FieldTphConsMethTest.java rename to src/test/java/bytecode/FieldTphConsMethTest.java diff --git a/src/test/java/java/bytecode/FieldTphMMethTest.java b/src/test/java/bytecode/FieldTphMMethTest.java similarity index 100% rename from src/test/java/java/bytecode/FieldTphMMethTest.java rename to src/test/java/bytecode/FieldTphMMethTest.java diff --git a/src/test/java/java/bytecode/GenTest.java b/src/test/java/bytecode/GenTest.java similarity index 100% rename from src/test/java/java/bytecode/GenTest.java rename to src/test/java/bytecode/GenTest.java diff --git a/src/test/java/java/bytecode/GreaterEqualTest.java b/src/test/java/bytecode/GreaterEqualTest.java similarity index 100% rename from src/test/java/java/bytecode/GreaterEqualTest.java rename to src/test/java/bytecode/GreaterEqualTest.java diff --git a/src/test/java/java/bytecode/GreaterThanTest.java b/src/test/java/bytecode/GreaterThanTest.java similarity index 100% rename from src/test/java/java/bytecode/GreaterThanTest.java rename to src/test/java/bytecode/GreaterThanTest.java diff --git a/src/test/java/java/bytecode/IdTest.java b/src/test/java/bytecode/IdTest.java similarity index 100% rename from src/test/java/java/bytecode/IdTest.java rename to src/test/java/bytecode/IdTest.java diff --git a/src/test/java/java/bytecode/InfTest.java b/src/test/java/bytecode/InfTest.java similarity index 100% rename from src/test/java/java/bytecode/InfTest.java rename to src/test/java/bytecode/InfTest.java diff --git a/src/test/java/java/bytecode/InheritTest.java b/src/test/java/bytecode/InheritTest.java similarity index 100% rename from src/test/java/java/bytecode/InheritTest.java rename to src/test/java/bytecode/InheritTest.java diff --git a/src/test/java/java/bytecode/InheritTest2.java b/src/test/java/bytecode/InheritTest2.java similarity index 100% rename from src/test/java/java/bytecode/InheritTest2.java rename to src/test/java/bytecode/InheritTest2.java diff --git a/src/test/java/java/bytecode/KompTphTest.java b/src/test/java/bytecode/KompTphTest.java similarity index 100% rename from src/test/java/java/bytecode/KompTphTest.java rename to src/test/java/bytecode/KompTphTest.java diff --git a/src/test/java/java/bytecode/LambdaCapturetest.java b/src/test/java/bytecode/LambdaCapturetest.java similarity index 100% rename from src/test/java/java/bytecode/LambdaCapturetest.java rename to src/test/java/bytecode/LambdaCapturetest.java diff --git a/src/test/java/java/bytecode/LambdaTest.java b/src/test/java/bytecode/LambdaTest.java similarity index 100% rename from src/test/java/java/bytecode/LambdaTest.java rename to src/test/java/bytecode/LambdaTest.java diff --git a/src/test/java/java/bytecode/LambdaVoidTest.java b/src/test/java/bytecode/LambdaVoidTest.java similarity index 100% rename from src/test/java/java/bytecode/LambdaVoidTest.java rename to src/test/java/bytecode/LambdaVoidTest.java diff --git a/src/test/java/java/bytecode/LessEqualTest.java b/src/test/java/bytecode/LessEqualTest.java similarity index 100% rename from src/test/java/java/bytecode/LessEqualTest.java rename to src/test/java/bytecode/LessEqualTest.java diff --git a/src/test/java/java/bytecode/LessThanTest.java b/src/test/java/bytecode/LessThanTest.java similarity index 100% rename from src/test/java/java/bytecode/LessThanTest.java rename to src/test/java/bytecode/LessThanTest.java diff --git a/src/test/java/java/bytecode/MatrixOpTest.java b/src/test/java/bytecode/MatrixOpTest.java similarity index 100% rename from src/test/java/java/bytecode/MatrixOpTest.java rename to src/test/java/bytecode/MatrixOpTest.java diff --git a/src/test/java/java/bytecode/MatrixTest.java b/src/test/java/bytecode/MatrixTest.java similarity index 100% rename from src/test/java/java/bytecode/MatrixTest.java rename to src/test/java/bytecode/MatrixTest.java diff --git a/src/test/java/java/bytecode/MergeTest.java b/src/test/java/bytecode/MergeTest.java similarity index 100% rename from src/test/java/java/bytecode/MergeTest.java rename to src/test/java/bytecode/MergeTest.java diff --git a/src/test/java/java/bytecode/OLFunTest.java b/src/test/java/bytecode/OLFunTest.java similarity index 100% rename from src/test/java/java/bytecode/OLFunTest.java rename to src/test/java/bytecode/OLFunTest.java diff --git a/src/test/java/java/bytecode/OLTest.java b/src/test/java/bytecode/OLTest.java similarity index 100% rename from src/test/java/java/bytecode/OLTest.java rename to src/test/java/bytecode/OLTest.java diff --git a/src/test/java/java/bytecode/OpTest.java b/src/test/java/bytecode/OpTest.java similarity index 100% rename from src/test/java/java/bytecode/OpTest.java rename to src/test/java/bytecode/OpTest.java diff --git a/src/test/java/java/bytecode/OverloadingSortingTest.java b/src/test/java/bytecode/OverloadingSortingTest.java similarity index 100% rename from src/test/java/java/bytecode/OverloadingSortingTest.java rename to src/test/java/bytecode/OverloadingSortingTest.java diff --git a/src/test/java/java/bytecode/OverloadingTest.java b/src/test/java/bytecode/OverloadingTest.java similarity index 100% rename from src/test/java/java/bytecode/OverloadingTest.java rename to src/test/java/bytecode/OverloadingTest.java diff --git a/src/test/java/java/bytecode/PlusTest.java b/src/test/java/bytecode/PlusTest.java similarity index 100% rename from src/test/java/java/bytecode/PlusTest.java rename to src/test/java/bytecode/PlusTest.java diff --git a/src/test/java/java/bytecode/PostIncTest.java b/src/test/java/bytecode/PostIncTest.java similarity index 100% rename from src/test/java/java/bytecode/PostIncTest.java rename to src/test/java/bytecode/PostIncTest.java diff --git a/src/test/java/java/bytecode/PreIncTest.java b/src/test/java/bytecode/PreIncTest.java similarity index 100% rename from src/test/java/java/bytecode/PreIncTest.java rename to src/test/java/bytecode/PreIncTest.java diff --git a/src/test/java/java/bytecode/PutTest.java b/src/test/java/bytecode/PutTest.java similarity index 100% rename from src/test/java/java/bytecode/PutTest.java rename to src/test/java/bytecode/PutTest.java diff --git a/src/test/java/java/bytecode/RelOpsTest.java b/src/test/java/bytecode/RelOpsTest.java similarity index 100% rename from src/test/java/java/bytecode/RelOpsTest.java rename to src/test/java/bytecode/RelOpsTest.java diff --git a/src/test/java/java/bytecode/SimpleCycleTest.java b/src/test/java/bytecode/SimpleCycleTest.java similarity index 100% rename from src/test/java/java/bytecode/SimpleCycleTest.java rename to src/test/java/bytecode/SimpleCycleTest.java diff --git a/src/test/java/java/bytecode/SortingTest.java b/src/test/java/bytecode/SortingTest.java similarity index 100% rename from src/test/java/java/bytecode/SortingTest.java rename to src/test/java/bytecode/SortingTest.java diff --git a/src/test/java/java/bytecode/SubMatTest.java b/src/test/java/bytecode/SubMatTest.java similarity index 100% rename from src/test/java/java/bytecode/SubMatTest.java rename to src/test/java/bytecode/SubMatTest.java diff --git a/src/test/java/java/bytecode/Tph2Test.java b/src/test/java/bytecode/Tph2Test.java similarity index 100% rename from src/test/java/java/bytecode/Tph2Test.java rename to src/test/java/bytecode/Tph2Test.java diff --git a/src/test/java/java/bytecode/Tph3Test.java b/src/test/java/bytecode/Tph3Test.java similarity index 100% rename from src/test/java/java/bytecode/Tph3Test.java rename to src/test/java/bytecode/Tph3Test.java diff --git a/src/test/java/java/bytecode/Tph5Test.java b/src/test/java/bytecode/Tph5Test.java similarity index 100% rename from src/test/java/java/bytecode/Tph5Test.java rename to src/test/java/bytecode/Tph5Test.java diff --git a/src/test/java/java/bytecode/Tph6Test.java b/src/test/java/bytecode/Tph6Test.java similarity index 100% rename from src/test/java/java/bytecode/Tph6Test.java rename to src/test/java/bytecode/Tph6Test.java diff --git a/src/test/java/java/bytecode/TphTest.java b/src/test/java/bytecode/TphTest.java similarity index 100% rename from src/test/java/java/bytecode/TphTest.java rename to src/test/java/bytecode/TphTest.java diff --git a/src/test/java/java/bytecode/TypedIDTest.java b/src/test/java/bytecode/TypedIDTest.java similarity index 100% rename from src/test/java/java/bytecode/TypedIDTest.java rename to src/test/java/bytecode/TypedIDTest.java diff --git a/src/test/java/java/bytecode/VectorAddTest.java b/src/test/java/bytecode/VectorAddTest.java similarity index 100% rename from src/test/java/java/bytecode/VectorAddTest.java rename to src/test/java/bytecode/VectorAddTest.java diff --git a/src/test/java/java/bytecode/VectorSuperTest.java b/src/test/java/bytecode/VectorSuperTest.java similarity index 100% rename from src/test/java/java/bytecode/VectorSuperTest.java rename to src/test/java/bytecode/VectorSuperTest.java diff --git a/src/test/java/java/bytecode/WhileTest.java b/src/test/java/bytecode/WhileTest.java similarity index 100% rename from src/test/java/java/bytecode/WhileTest.java rename to src/test/java/bytecode/WhileTest.java diff --git a/src/test/java/java/bytecode/YTest.java b/src/test/java/bytecode/YTest.java similarity index 100% rename from src/test/java/java/bytecode/YTest.java rename to src/test/java/bytecode/YTest.java diff --git a/src/test/java/java/bytecode/applyLambdaTest.java b/src/test/java/bytecode/applyLambdaTest.java similarity index 100% rename from src/test/java/java/bytecode/applyLambdaTest.java rename to src/test/java/bytecode/applyLambdaTest.java diff --git a/src/test/java/java/bytecode/mathStrucIntegerTest.java b/src/test/java/bytecode/mathStrucIntegerTest.java similarity index 100% rename from src/test/java/java/bytecode/mathStrucIntegerTest.java rename to src/test/java/bytecode/mathStrucIntegerTest.java diff --git a/src/test/java/java/bytecode/mathStrucMatrixOPTest.java.txt b/src/test/java/bytecode/mathStrucMatrixOPTest.java.txt similarity index 100% rename from src/test/java/java/bytecode/mathStrucMatrixOPTest.java.txt rename to src/test/java/bytecode/mathStrucMatrixOPTest.java.txt diff --git a/src/test/java/java/bytecode/mathStrucTest.java b/src/test/java/bytecode/mathStrucTest.java similarity index 100% rename from src/test/java/java/bytecode/mathStrucTest.java rename to src/test/java/bytecode/mathStrucTest.java diff --git a/src/test/java/java/bytecode/mathStrucVectorAddTest.java.txt b/src/test/java/bytecode/mathStrucVectorAddTest.java.txt similarity index 100% rename from src/test/java/java/bytecode/mathStrucVectorAddTest.java.txt rename to src/test/java/bytecode/mathStrucVectorAddTest.java.txt diff --git a/src/test/java/java/constraintSimplify/FamilyOfGenerics.java b/src/test/java/constraintSimplify/FamilyOfGenerics.java similarity index 100% rename from src/test/java/java/constraintSimplify/FamilyOfGenerics.java rename to src/test/java/constraintSimplify/FamilyOfGenerics.java diff --git a/src/test/java/java/finiteClosure/SuperInterfacesTest.java b/src/test/java/finiteClosure/SuperInterfacesTest.java similarity index 100% rename from src/test/java/java/finiteClosure/SuperInterfacesTest.java rename to src/test/java/finiteClosure/SuperInterfacesTest.java diff --git a/src/test/java/java/insertGenerics/FamilyOfGeneratedGenericsTest.java b/src/test/java/insertGenerics/FamilyOfGeneratedGenericsTest.java similarity index 100% rename from src/test/java/java/insertGenerics/FamilyOfGeneratedGenericsTest.java rename to src/test/java/insertGenerics/FamilyOfGeneratedGenericsTest.java diff --git a/src/test/java/java/insertGenerics/TestAny.java b/src/test/java/insertGenerics/TestAny.java similarity index 100% rename from src/test/java/java/insertGenerics/TestAny.java rename to src/test/java/insertGenerics/TestAny.java diff --git a/src/test/java/java/insertGenerics/TestClassField.java b/src/test/java/insertGenerics/TestClassField.java similarity index 100% rename from src/test/java/java/insertGenerics/TestClassField.java rename to src/test/java/insertGenerics/TestClassField.java diff --git a/src/test/java/java/insertGenerics/TestContraVariant.java b/src/test/java/insertGenerics/TestContraVariant.java similarity index 100% rename from src/test/java/java/insertGenerics/TestContraVariant.java rename to src/test/java/insertGenerics/TestContraVariant.java diff --git a/src/test/java/java/insertGenerics/TestExample42.java b/src/test/java/insertGenerics/TestExample42.java similarity index 100% rename from src/test/java/java/insertGenerics/TestExample42.java rename to src/test/java/insertGenerics/TestExample42.java diff --git a/src/test/java/java/insertGenerics/TestExample42_allInOneMethod.java b/src/test/java/insertGenerics/TestExample42_allInOneMethod.java similarity index 100% rename from src/test/java/java/insertGenerics/TestExample42_allInOneMethod.java rename to src/test/java/insertGenerics/TestExample42_allInOneMethod.java diff --git a/src/test/java/java/insertGenerics/TestGGFinder.java b/src/test/java/insertGenerics/TestGGFinder.java similarity index 100% rename from src/test/java/java/insertGenerics/TestGGFinder.java rename to src/test/java/insertGenerics/TestGGFinder.java diff --git a/src/test/java/java/insertGenerics/TestLocalVarLambda.java b/src/test/java/insertGenerics/TestLocalVarLambda.java similarity index 100% rename from src/test/java/java/insertGenerics/TestLocalVarLambda.java rename to src/test/java/insertGenerics/TestLocalVarLambda.java diff --git a/src/test/java/java/insertGenerics/TestMutualRecursion.java b/src/test/java/insertGenerics/TestMutualRecursion.java similarity index 100% rename from src/test/java/java/insertGenerics/TestMutualRecursion.java rename to src/test/java/insertGenerics/TestMutualRecursion.java diff --git a/src/test/java/java/insertGenerics/TestReturnVar.java b/src/test/java/insertGenerics/TestReturnVar.java similarity index 100% rename from src/test/java/java/insertGenerics/TestReturnVar.java rename to src/test/java/insertGenerics/TestReturnVar.java diff --git a/src/test/java/java/insertGenerics/TestSecondLineOfClassConstraints.java b/src/test/java/insertGenerics/TestSecondLineOfClassConstraints.java similarity index 100% rename from src/test/java/java/insertGenerics/TestSecondLineOfClassConstraints.java rename to src/test/java/insertGenerics/TestSecondLineOfClassConstraints.java diff --git a/src/test/java/java/insertGenerics/TestTPHsAndGenerics.java b/src/test/java/insertGenerics/TestTPHsAndGenerics.java similarity index 100% rename from src/test/java/java/insertGenerics/TestTPHsAndGenerics.java rename to src/test/java/insertGenerics/TestTPHsAndGenerics.java diff --git a/src/test/java/java/insertGenerics/TestTPHsAndGenerics2.java b/src/test/java/insertGenerics/TestTPHsAndGenerics2.java similarity index 100% rename from src/test/java/java/insertGenerics/TestTPHsAndGenerics2.java rename to src/test/java/insertGenerics/TestTPHsAndGenerics2.java diff --git a/src/test/java/java/insertGenerics/TestThreeArgs.java b/src/test/java/insertGenerics/TestThreeArgs.java similarity index 100% rename from src/test/java/java/insertGenerics/TestThreeArgs.java rename to src/test/java/insertGenerics/TestThreeArgs.java diff --git a/src/test/java/java/insertGenerics/TestTransitiveClosure.java b/src/test/java/insertGenerics/TestTransitiveClosure.java similarity index 100% rename from src/test/java/java/insertGenerics/TestTransitiveClosure.java rename to src/test/java/insertGenerics/TestTransitiveClosure.java diff --git a/src/test/java/java/insertGenerics/TestTwoArgs.java b/src/test/java/insertGenerics/TestTwoArgs.java similarity index 100% rename from src/test/java/java/insertGenerics/TestTwoArgs.java rename to src/test/java/insertGenerics/TestTwoArgs.java diff --git a/src/test/java/java/insertGenerics/TestTwoArgs2.java b/src/test/java/insertGenerics/TestTwoArgs2.java similarity index 100% rename from src/test/java/java/insertGenerics/TestTwoArgs2.java rename to src/test/java/insertGenerics/TestTwoArgs2.java diff --git a/src/test/java/java/insertGenerics/TestTwoCalls.java b/src/test/java/insertGenerics/TestTwoCalls.java similarity index 100% rename from src/test/java/java/insertGenerics/TestTwoCalls.java rename to src/test/java/insertGenerics/TestTwoCalls.java diff --git a/src/test/java/java/insertGenerics/TestVector.java b/src/test/java/insertGenerics/TestVector.java similarity index 100% rename from src/test/java/java/insertGenerics/TestVector.java rename to src/test/java/insertGenerics/TestVector.java diff --git a/src/test/java/java/insertGenerics/TestVectorArg.java b/src/test/java/insertGenerics/TestVectorArg.java similarity index 100% rename from src/test/java/java/insertGenerics/TestVectorArg.java rename to src/test/java/insertGenerics/TestVectorArg.java diff --git a/src/test/java/java/insertGenerics/TestVoidMeth.java b/src/test/java/insertGenerics/TestVoidMeth.java similarity index 100% rename from src/test/java/java/insertGenerics/TestVoidMeth.java rename to src/test/java/insertGenerics/TestVoidMeth.java diff --git a/src/test/java/java/log4jTesting.xml b/src/test/java/log4jTesting.xml similarity index 100% rename from src/test/java/java/log4jTesting.xml rename to src/test/java/log4jTesting.xml diff --git a/src/test/java/java/packages/Bytecode.java b/src/test/java/packages/Bytecode.java similarity index 100% rename from src/test/java/java/packages/Bytecode.java rename to src/test/java/packages/Bytecode.java diff --git a/src/test/java/java/packages/CheckPackageFolder.java b/src/test/java/packages/CheckPackageFolder.java similarity index 100% rename from src/test/java/java/packages/CheckPackageFolder.java rename to src/test/java/packages/CheckPackageFolder.java diff --git a/src/test/java/java/packages/ConsoleInterfaceTest.java b/src/test/java/packages/ConsoleInterfaceTest.java similarity index 100% rename from src/test/java/java/packages/ConsoleInterfaceTest.java rename to src/test/java/packages/ConsoleInterfaceTest.java diff --git a/src/test/java/java/packages/ImportTest.java b/src/test/java/packages/ImportTest.java similarity index 100% rename from src/test/java/java/packages/ImportTest.java rename to src/test/java/packages/ImportTest.java diff --git a/src/test/java/java/packages/LoadDefaultPackageClassesTest.java b/src/test/java/packages/LoadDefaultPackageClassesTest.java similarity index 100% rename from src/test/java/java/packages/LoadDefaultPackageClassesTest.java rename to src/test/java/packages/LoadDefaultPackageClassesTest.java diff --git a/src/test/java/java/packages/OLOneFileTest.java b/src/test/java/packages/OLOneFileTest.java similarity index 100% rename from src/test/java/java/packages/OLOneFileTest.java rename to src/test/java/packages/OLOneFileTest.java diff --git a/src/test/java/java/packages/OLTest.java b/src/test/java/packages/OLTest.java similarity index 100% rename from src/test/java/java/packages/OLTest.java rename to src/test/java/packages/OLTest.java diff --git a/src/test/java/java/packages/ParsePackageName.java b/src/test/java/packages/ParsePackageName.java similarity index 100% rename from src/test/java/java/packages/ParsePackageName.java rename to src/test/java/packages/ParsePackageName.java diff --git a/src/test/java/java/packages/mathStrucMatrixOPTest.java.txt b/src/test/java/packages/mathStrucMatrixOPTest.java.txt similarity index 100% rename from src/test/java/java/packages/mathStrucMatrixOPTest.java.txt rename to src/test/java/packages/mathStrucMatrixOPTest.java.txt diff --git a/src/test/java/java/packages/mathStrucVectorTest.java b/src/test/java/packages/mathStrucVectorTest.java similarity index 100% rename from src/test/java/java/packages/mathStrucVectorTest.java rename to src/test/java/packages/mathStrucVectorTest.java diff --git a/src/test/java/java/parser/AntlrTest.jav b/src/test/java/parser/AntlrTest.jav similarity index 100% rename from src/test/java/java/parser/AntlrTest.jav rename to src/test/java/parser/AntlrTest.jav diff --git a/src/test/java/java/parser/BoundedParameter.jav b/src/test/java/parser/BoundedParameter.jav similarity index 100% rename from src/test/java/java/parser/BoundedParameter.jav rename to src/test/java/parser/BoundedParameter.jav diff --git a/src/test/java/java/parser/CastTest.jav b/src/test/java/parser/CastTest.jav similarity index 100% rename from src/test/java/java/parser/CastTest.jav rename to src/test/java/parser/CastTest.jav diff --git a/src/test/java/java/parser/ExtendsTest.jav b/src/test/java/parser/ExtendsTest.jav similarity index 100% rename from src/test/java/java/parser/ExtendsTest.jav rename to src/test/java/parser/ExtendsTest.jav diff --git a/src/test/java/java/parser/FeatherWeightJava.jav b/src/test/java/parser/FeatherWeightJava.jav similarity index 100% rename from src/test/java/java/parser/FeatherWeightJava.jav rename to src/test/java/parser/FeatherWeightJava.jav diff --git a/src/test/java/java/parser/FieldInitializationTest.jav b/src/test/java/parser/FieldInitializationTest.jav similarity index 100% rename from src/test/java/java/parser/FieldInitializationTest.jav rename to src/test/java/parser/FieldInitializationTest.jav diff --git a/src/test/java/java/parser/FieldVarTest.jav b/src/test/java/parser/FieldVarTest.jav similarity index 100% rename from src/test/java/java/parser/FieldVarTest.jav rename to src/test/java/parser/FieldVarTest.jav diff --git a/src/test/java/java/parser/GeneralParserTest.java b/src/test/java/parser/GeneralParserTest.java similarity index 100% rename from src/test/java/java/parser/GeneralParserTest.java rename to src/test/java/parser/GeneralParserTest.java diff --git a/src/test/java/java/parser/GenericFieldVarTest.jav b/src/test/java/parser/GenericFieldVarTest.jav similarity index 100% rename from src/test/java/java/parser/GenericFieldVarTest.jav rename to src/test/java/parser/GenericFieldVarTest.jav diff --git a/src/test/java/java/parser/ImportTest.jav b/src/test/java/parser/ImportTest.jav similarity index 100% rename from src/test/java/java/parser/ImportTest.jav rename to src/test/java/parser/ImportTest.jav diff --git a/src/test/java/java/parser/ImportTest2.jav b/src/test/java/parser/ImportTest2.jav similarity index 100% rename from src/test/java/java/parser/ImportTest2.jav rename to src/test/java/parser/ImportTest2.jav diff --git a/src/test/java/java/parser/ImportTestGeneric.jav b/src/test/java/parser/ImportTestGeneric.jav similarity index 100% rename from src/test/java/java/parser/ImportTestGeneric.jav rename to src/test/java/parser/ImportTestGeneric.jav diff --git a/src/test/java/java/parser/NewTest.jav b/src/test/java/parser/NewTest.jav similarity index 100% rename from src/test/java/java/parser/NewTest.jav rename to src/test/java/parser/NewTest.jav diff --git a/src/test/java/java/parser/OpratorTest.jav b/src/test/java/parser/OpratorTest.jav similarity index 100% rename from src/test/java/java/parser/OpratorTest.jav rename to src/test/java/parser/OpratorTest.jav diff --git a/src/test/java/java/parser/PackageNameTest.jav b/src/test/java/parser/PackageNameTest.jav similarity index 100% rename from src/test/java/java/parser/PackageNameTest.jav rename to src/test/java/parser/PackageNameTest.jav diff --git a/src/test/java/java/parser/StatementsTest.jav b/src/test/java/parser/StatementsTest.jav similarity index 100% rename from src/test/java/java/parser/StatementsTest.jav rename to src/test/java/parser/StatementsTest.jav diff --git a/src/test/java/java/parser/StructuralTypes.jav b/src/test/java/parser/StructuralTypes.jav similarity index 100% rename from src/test/java/java/parser/StructuralTypes.jav rename to src/test/java/parser/StructuralTypes.jav diff --git a/src/test/java/java/parser/WhileTest.jav b/src/test/java/parser/WhileTest.jav similarity index 100% rename from src/test/java/java/parser/WhileTest.jav rename to src/test/java/parser/WhileTest.jav diff --git a/src/test/java/java/typeinference/JavaTXCompilerTest.java b/src/test/java/typeinference/JavaTXCompilerTest.java similarity index 100% rename from src/test/java/java/typeinference/JavaTXCompilerTest.java rename to src/test/java/typeinference/JavaTXCompilerTest.java diff --git a/src/test/java/java/typeinference/Meth_GenTest.java b/src/test/java/typeinference/Meth_GenTest.java similarity index 100% rename from src/test/java/java/typeinference/Meth_GenTest.java rename to src/test/java/typeinference/Meth_GenTest.java diff --git a/src/test/java/java/typeinference/UnifyTest.java b/src/test/java/typeinference/UnifyTest.java similarity index 100% rename from src/test/java/java/typeinference/UnifyTest.java rename to src/test/java/typeinference/UnifyTest.java diff --git a/src/test/java/java/visualisation/ToString.java b/src/test/java/visualisation/ToString.java similarity index 100% rename from src/test/java/java/visualisation/ToString.java rename to src/test/java/visualisation/ToString.java From 291fee12db5dc50dbdf353c0a0e776f102625303 Mon Sep 17 00:00:00 2001 From: "pl@gohorb.ba-horb.de" Date: Mon, 21 Nov 2022 23:51:06 +0100 Subject: [PATCH 09/10] new file: ../../AllgemeinTest/VectorConstAdd.jav modified: ../../bytecode/javFiles/VectorAdd.jav new file: ../../../src/test/java/AllgemeinTest.java wieder hergestellt. --- resources/AllgemeinTest/VectorConstAdd.jav | 15 +++++ resources/bytecode/javFiles/VectorAdd.jav | 27 -------- src/test/java/AllgemeinTest.java | 72 ++++++++++++++++++++++ 3 files changed, 87 insertions(+), 27 deletions(-) create mode 100644 resources/AllgemeinTest/VectorConstAdd.jav create mode 100644 src/test/java/AllgemeinTest.java diff --git a/resources/AllgemeinTest/VectorConstAdd.jav b/resources/AllgemeinTest/VectorConstAdd.jav new file mode 100644 index 000000000..b179bdccf --- /dev/null +++ b/resources/AllgemeinTest/VectorConstAdd.jav @@ -0,0 +1,15 @@ +import java.util.Vector; +import java.lang.Integer; + + +public class VectorConstAdd { + vectorAdd(v1) { + var i = 0; + var erg = new Vector<>(); + while (i < v1.size()) { + erg.addElement(v1.elementAt(i) + 1); + i++; + } + return erg; + } +} diff --git a/resources/bytecode/javFiles/VectorAdd.jav b/resources/bytecode/javFiles/VectorAdd.jav index af44a8231..49193e9b2 100644 --- a/resources/bytecode/javFiles/VectorAdd.jav +++ b/resources/bytecode/javFiles/VectorAdd.jav @@ -1,26 +1,6 @@ import java.util.Vector; import java.lang.Integer; -import java.lang.String; -import java.lang.Byte; -import java.lang.Boolean; -//import java.util.Vector; -//import java.util.Collection; -/* -public class VectorAdd { - add(v1, v2) { - var ret = new Vector(); - var i = 0; - var erg; - while(i < v1.size()) { - erg = v1.elementAt(i) + v2.elementAt(i); - ret.addElement(erg); - } - v1.addAll - return ret; - } -} -*/ public class VectorAdd { vectorAdd(v1, v2) { @@ -32,11 +12,4 @@ public class VectorAdd { } return erg; } - -//addEle(z) { -// var x; -// var y; -// x.add(y); -// z = x; -// } } diff --git a/src/test/java/AllgemeinTest.java b/src/test/java/AllgemeinTest.java new file mode 100644 index 000000000..462033619 --- /dev/null +++ b/src/test/java/AllgemeinTest.java @@ -0,0 +1,72 @@ + + +import static org.junit.Assert.*; + +import java.io.File; +import java.lang.reflect.Field; +import java.net.URL; +import java.net.URLClassLoader; +import java.util.Arrays; + +import org.junit.BeforeClass; +import org.junit.Test; + +import com.google.common.collect.Lists; + +import de.dhbwstuttgart.core.JavaTXCompiler; + +public class AllgemeinTest { + + private static String path; + private static File fileToTest; + private static JavaTXCompiler compiler; + private static ClassLoader loader; + private static Class classToTest; + private static String pathToClassFile; + private static Object instanceOfClass; + + + @Test + public void test() throws Exception { + //String className = "GenTest"; + //String className = "Overloading_Generics"; + //String className = "Generics"; + //String className = "OverloadingMain"; + //String className = "OverrideMain"; + //String className = "OverrideMainRet"; + //String className = "FCTest1"; + //String className = "FCTest2"; + //String className = "Pair"; + //String className = "FCTest3"; + //String className = "Var"; + //String className = "Put"; + //String className = "Twice"; + //String className = "TestSubTypless"; + //String className = "addList"; + //String className = "M"; + //String className = "Wildcard_Andi"; + //String className = "Box"; + //String className = "Box_Main"; + //String className = "wildcardPair"; + String className = "VectorConstAdd"; + //PL 2019-10-24: genutzt fuer unterschiedliche Tests + path = System.getProperty("user.dir")+"/resources/AllgemeinTest/" + className + ".jav"; + //path = System.getProperty("user.dir")+"/src/test/resources/AllgemeinTest/Overloading_Generics.jav"; + //path = System.getProperty("user.dir")+"/src/test/resources/bytecode/javFiles/mathStrucInteger.jav"; + //compiler = new JavaTXCompiler(Lists.newArrayList(new File(System.getProperty("user.dir")+"/src/test/resources/AllgemeinTest/Overloading_Generics.jav"))); + ///* + compiler = new JavaTXCompiler( + Lists.newArrayList(new File(path)), + Lists.newArrayList(new File(System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"))); + //*/ + compiler.generateBytecode(System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"); + pathToClassFile = System.getProperty("user.dir")+"/resources/testBytecode/generatedBC/"; + loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); + classToTest = loader.loadClass(className); + //classToTest = loader.loadClass("Overloading_Generics"); + //instanceOfClass = classToTest.getDeclaredConstructor().newInstance("A"); + //classToTest = loader.loadClass("Overloading_Generics1"); + //instanceOfClass = classToTest.getDeclaredConstructor(Object.class).newInstance("B"); + } + +} From 9310882a28eadb28cbeec0f73af8d453715046b6 Mon Sep 17 00:00:00 2001 From: "pl@gohorb.ba-horb.de" Date: Mon, 5 Dec 2022 17:22:35 +0100 Subject: [PATCH 10/10] modified: resources/bytecode/javFiles/VectorAdd.jav --- resources/bytecode/javFiles/VectorAdd.jav | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/bytecode/javFiles/VectorAdd.jav b/resources/bytecode/javFiles/VectorAdd.jav index 49193e9b2..d5e50157b 100644 --- a/resources/bytecode/javFiles/VectorAdd.jav +++ b/resources/bytecode/javFiles/VectorAdd.jav @@ -5,6 +5,7 @@ import java.lang.Integer; public class VectorAdd { vectorAdd(v1, v2) { var i = 0; + v1 = new Vector(); var erg = new Vector<>(); while (i < v1.size()) { erg.addElement(v1.elementAt(i) + v2.elementAt(i));